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

RMC Team

Hectopat
Katılım
14 Ağustos 2021
Mesajlar
1.180
Çözümler
2
Daha fazla  
Sistem Özellikleri
İşlemci: Intel Core i5 - 760
Ekran Kartı: Zotac GeForce GTX 470
Anakart: ASUS P7P55D-E LX
RAM: Patriot VIPER 1600MHz CL9 (8 + 8) 16GB
Kasa: Dark Racer Mavi LED
Mouse: Corsair Katar Pro Kablolu
Klavye: Gamenote KB487L
MousePad: Xrades 40x30
Kulaklık: Hadron HS312
İşlemtim Sistemi: Windows 10 64-Bit PRO
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:
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
 
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:
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: 35
  • RobloxStudioBeta_mMvOIrMd1R.png
    RobloxStudioBeta_mMvOIrMd1R.png
    112 KB · Görüntüleme: 32
  • RobloxStudioBeta_ut3kfSwcKN.png
    RobloxStudioBeta_ut3kfSwcKN.png
    263,1 KB · Görüntüleme: 29
  • 1664894126486.png
    1664894126486.png
    108,5 KB · Görüntüleme: 27
Son düzenleme:
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:
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:
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.
 

Yeni konular

Geri
Yukarı