math.atan2

  number math.atan2( number y, number x )

Açıklama

math.atan(y / x) gibi işlev görür, ancak açının bulunduğu çeyreği de hesaba kattığı için sınırlı bir çıktı aralığına sahip değildir.

Y argümanı önce gelir!

Argümanlar

1 number y
Y koordinatı.
2 number x
X koordinatı.

Döndürülen Değer

1 number
(0, 0)'dan (x, y)'ye olan doğrunun (-pi, pi] sol-açık aralığındaki radyan cinsinden açısı.

Örnek

atan( 1 ) ve atan2( 1, 1 )'nin ikisi de math.pi / 4 değerini verir.

atan2( -1, -1 ) ise ( (-3) * math.pi ) / 4 değerine eşittir.

print( atan( 1 ) ) print( atan2( 1, 1 ) ) print( atan2( -1, -1 ) )
Çıktı: 0.7853981633974483

0.7853981633974483

-2.356194490192345

Örnek

Ekranın ortasına, imlecin konumuna göre dönen bir ikon çizer. Not: Bunu bir panelin içinde çizmek istiyorsanız Panel:LocalCursorPos kullanmanız gerekebilir.

local icon = Material("icon16/emoticon_smile.png", "smooth") local iconSize = 64 hook.Add("HUDPaint", "Atan2Example", function() -- Açının hesaplanacağı göreceli nokta -- Buranın bizim "sıfır" koordinatımız olduğunu varsayabiliriz local centerX, centerY = ScrW()/2, ScrH()/2 -- Açısını arayacağımız nokta local mouseX, mouseY = input.GetCursorPos() -- Açıyı radyan cinsinden al local angle = math.atan2( centerY - mouseY, mouseX - centerX ) -- Dereceye çevir local deg = math.deg(angle) surface.SetDrawColor(255, 255, 255, 255) surface.SetMaterial(icon) surface.DrawTexturedRectRotated(centerX, centerY, iconSize, iconSize, deg) -- Sadece hata ayıklama için draw.SimpleText(deg, "DermaDefault", centerX, centerY + 40, color_white, TEXT_ALIGN_CENTER) end)

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord