Uzunluğu bilinen dik üçgenin alfa açısı nasıl bulunur?

RMC Team

Decipat
Katılım
14 Ağustos 2021
Mesajlar
1.012
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Birkaç gündür araştırdığım ama hiçbir şey bulamadığım bir soru var. Uzunluğu bilinen bir dik açı var (a,b,c biliniyor), bu üçgenin A açısını nasıl bulabiliriz?

Not: Okul ile alakalı değildir matematik hocana sor vb. yazmanıza gerek yok.
images.png
 
Son düzenleyen: Moderatör:

Enes3078

Petapat
Süper Moderatör
Sosyal Tayfı
Katılım
28 Nisan 2020
Mesajlar
15.449
Makaleler
14
Çözümler
643
Yer
Malatya
Daha fazla  
Sistem Özellikleri
i5-12400F, RTX 3070
Cinsiyet
Erkek
Meslek
Bilgisayar Mühendisliği öğrencisi
Sinüs ya da cosinüs hesaplamalarından bulabilmelisiniz. İnternette şöyle bir görsel buldum, bir bakın isterseniz. Bahsettiğiniz alfa hangi taraf bilmesem de ikisi için de bu görselden yararlanabilirsiniz.

1664858225004.png
 

KITT

Gigapat
Katılım
5 Ağustos 2016
Mesajlar
3.476
Makaleler
6
Çözümler
270
Kosinüs teoremi ile bulabilirsin. Law of cosines olarak geçer.

Buraya teoremin formüllerini yazıp boğmak istemedim çünkü gönderdiğin görselde bir dik üçgen var. Dik üçgende de basit bir mantıkla bulabilirsin.

Anlatmadan önce kısaca arccos (cos tersi, cos^-1) mantığını göstereyim. Çünkü işin ucu arccos'a varacak.
cos(X) = Y
arccos(Y) = X

Örnek:
cos(60) = 1/2
arccos(1/2) = 60


Senin durumunda konudaki dik üçgene göre yapacak olursak mesela,
cos(A) = b/c
olur.

Daha sonra tersini alarak
arccos(b/c) = A
deriz.

Daha sonra arccos hesaplayıcı ile A değerini bulabilirsin. Aslında bu "cos değeri b/c olan açı kaçtır?" demekle aynıdır. Fakat bunun için arccos kullanılır. Ha tabii bilindik değerlerde yine o açıyı bilebilirsin ama bilinmedik değerlerde zor.

"cos değeri b/c olan açı kaçtır?" = "arccos(b/c) kaça eşittir?"

Aşağıdaki siteye girip konuda attığın üçgendeki b/c değerini "Inverse cosine calculator" kısmına girerek A açısını bulabilirsin. Eğer üçgendeki uzunluklar gerçekten doğru bir dik üçgenin uzunluklarıysa b/c'nin sonucu 1 ve -1 aralığında çıkacaktır. O sonucu girmen lazım.

Bu arada bunları temel trigonometriyi bildiğini varsayarak yazdım. Eğer verilen a, b, c, değerleri bilindik, klasik değerler ise A açısını zaten direkt bilebilirsin. Eğer temel olarak trigonometriyi bilmiyorsan, mesela sin, cos, tan gibi şeyleri bilmiyorsan zaten yazdığım şeyleri de anlamamışsındır. Bunun için önce trigonometriyi öğrenmen gerekir.
 
Son düzenleme:
KS
KS
RMC Team

RMC Team

Decipat
Katılım
14 Ağustos 2021
Mesajlar
1.012
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Hocam oyun motorunda lazımdı attığınız formülü denedim olmadı nerede hata yaptım acaba ?

Kod:
local target = workspace.Part2 -- Hedef
local obj = workspace.Part1 -- Obje

local x,y = obj.Position.X-target.Position.X,obj.Position.Z-target.Position.Z -- a,b uzunluğu
local hip = math.sqrt((x*x)+(y*y)) -- Hipotenüs
local a = math.acos(x/hip)*(180/math.pi) -- formül * [URL='https://x-engineer.org/degrees-radians/']radyanı dereceye çevirme[/URL]

print(x,y,hip,a)

obj.Orientation = Vector3.new(obj.Orientation.X,a,obj.Orientation.Z) -- Objeyi yönünü a açısı ile değiştirme

Çıkan değerler:
a uzunluğu = 7.342048645019531
b uzunluğu = 5.6826171875
hip uzunluğu = 9.284277915137157
A Açısı = 37.739244158805434
 

Dosya Ekleri

  • RobloxStudioBeta_7Xdnpxuug7.png
    RobloxStudioBeta_7Xdnpxuug7.png
    284,4 KB · Görüntüleme: 14
  • RobloxStudioBeta_mMvOIrMd1R.png
    RobloxStudioBeta_mMvOIrMd1R.png
    112 KB · Görüntüleme: 11
  • RobloxStudioBeta_ut3kfSwcKN.png
    RobloxStudioBeta_ut3kfSwcKN.png
    263,1 KB · Görüntüleme: 11
  • 1664894126486.png
    1664894126486.png
    108,5 KB · Görüntüleme: 8
Son düzenleme:

KITT

Gigapat
Katılım
5 Ağustos 2016
Mesajlar
3.476
Makaleler
6
Çözümler
270
Yazdığın dilin mantığını bilmediğim için tam olarak ne yapmak istediğini anlayamadım. Adım adım maddeler halinde ne yapmaya çalıştığını açıklayabilir misin?
 
KS
KS
RMC Team

RMC Team

Decipat
Katılım
14 Ağustos 2021
Mesajlar
1.012
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
x,y = obj.Position.X-target.Position.X,obj.Position.Z-target.Position.Z ==> x Uzunluğu, y Uzunluğu

hip = math.sqrt((x*x)+(y*y)) ==> Karekök( x Kare + y Kare ) -- Hipotenüsü bulma formülü

a = math.acos(x/hip)*(180/math.pi) ==> arccos( alfaya komşu köşe / hipotenüs ) * (180 / pi) Bu bölüm Radyanı dereceye çevirmek için

Matematiksel olarak:
x = 7.34
y = 5.68
hip = Karekök((x*x)+(y*y))
alfa = acos(x/hip)*(180/pi)
 
Son düzenleme:

KITT

Gigapat
Katılım
5 Ağustos 2016
Mesajlar
3.476
Makaleler
6
Çözümler
270
math.acos kodunun çalışma mantığı nedir tam olarak? Bildiğimiz arccos ama radyan olarak mı hesaplıyor? Detaylıca inceleyip yazacağım.
 
KS
KS
RMC Team

RMC Team

Decipat
Katılım
14 Ağustos 2021
Mesajlar
1.012
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
math.acos kodunun çalışma mantığı nedir tam olarak? Bildiğimiz arccos ama radyan olarak mı hesaplıyor? Detaylıca inceleyip yazacağım.
Hocam açıklamasında aynen böyle yazıyor.
x: number
"Returns the arc cosine of x"

math.acos(i/10)

0'dan 10'a kadar i'yi 0.5 artırınca çıkan sonuçlar

---- Saat --------- Çıkan Değer --- Önemli Değil
18:32:42.932 1.5207754699891267 - Edit
18:32:42.932 1.4706289056333368 - Edit
18:32:42.933 1.4202280540182106 - Edit
18:32:42.933 1.369438406004566 - Edit
18:32:42.933 1.318116071652818 - Edit
18:32:42.933 1.2661036727794992 - Edit
18:32:42.933 1.2132252231493863 - Edit
18:32:42.933 1.1592794807274085 - Edit
18:32:42.933 1.1040309877476002 - Edit
18:32:42.933 1.0471975511965979 - Edit
18:32:42.934 0.9884320889261531 - Edit
18:32:42.934 0.9272952180016123 - Edit
18:32:42.934 0.863211890069541 - Edit
18:32:42.934 0.7953988301841436 - Edit
18:32:42.934 0.7227342478134157 - Edit
18:32:42.934 0.6435011087932843 - Edit
18:32:42.934 0.5548110329800715 - Edit
18:32:42.934 0.45102681179626236 - Edit
18:32:42.934 0.3175604292915215 - Edit
18:32:42.934 0 - Edit
 
Son düzenleme:

KITT

Gigapat
Katılım
5 Ağustos 2016
Mesajlar
3.476
Makaleler
6
Çözümler
270
arccos ile radyan değerleri alıyorsun. Sonra da bu değerleri (180 / pi) ile çarparak dereceye dönüştürmeye çalışıyorsun. Buraya kadar bir sıkıntı yok. Bunu yapmaya çalışıyorsun ama olmuyor mu? Kodlarında bir sorun olabilir.
 
Yukarı