math
Matematik kütüphanesi, sayıları işlemek için fonksiyonlar sağlayan standart bir Lua kütüphanesidir. Garry's Mod'da birkaç ek matematik fonksiyonu eklenmiştir.
Alanlar
Herhangi bir sayısal karşılaştırmada her sayının bundan daha küçük olacağı anlamında, etkin bir şekilde sonsuzluğu temsil eden bir değişken.
Örneğin, eğer x bir sayı ise, x > math.huge, taşma durumu (aşağıya bakınız) dışında ASLA doğru olmayacaktır.
Lua, 2^1024'e (bir double'ın üs limiti) eşit veya daha büyük olan herhangi bir sayıyı inf (sonsuz) olarak kabul edecek ve dolayısıyla buna eşit sayacaktır.
Matematiksel pi sabitini içeren bir değişken. (3.1415926535898)
Ayrıca bakınız: Trigonometri
Kayan noktalı sayıların doğası gereği, math.pi ile yapılan hesaplamaların sonuçlarının beklediğiniz gibi olmayabileceği unutulmamalıdır. Aşağıdaki ikinci örneğe bakın.
2*math.pi'ye eşdeğer olan matematiksel tau sabitini içeren bir değişken. (6.28318530718)
Ayrıca bakınız: Trigonometri
Kayan noktalı sayıların doğası gereği, math.tau ile yapılan hesaplamaların sonuçlarının beklediğiniz gibi olmayabileceği unutulmamalıdır. math.pi sayfasındaki ikinci örneğe bakın.
Metotlar
Bir sayının mutlak değerini hesaplar (etkin bir şekilde herhangi bir negatif işareti kaldırır).
İki açı arasındaki farkı hesaplar.
Belirtilen miktarda hedef değere kademeli olarak yaklaşır.
Bir açıyı, belirtilen oranda diğerine doğru artırır.
Bu fonksiyon, açıları temsil eden sayılar (0-360) içindir, Angle nesneleri için DEĞİLDİR!
math.atan(y / x) gibi işlev görür, ancak açının bulunduğu çeyreği de dikkate alır ve bu nedenle sınırlı bir çıktı aralığına sahip değildir.
Y argümanı önce gelir!
Bézier-Spline algoritması için temel kod.
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız.
Bunun yerine math.BSplinePoint kullanın.
Bezier-Spline algoritması için temel kod, math.BSplinePoint için yardımcı bir fonksiyondur.
Bir sayıyı yukarıya doğru yuvarlar.
Bu fonksiyonun tersi için math.floor'a bakın.
Kübik Hermite spline algoritması.
Bir sayıyı minimum ve maksimum bir değer arasında sınırlar.
Kübik bezier ile 4 kontrol noktası arasında Lerp noktası.
3 kontrol noktasıyla çalışan benzer bir fonksiyon için math.QuadraticBezier'e bakın.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bunun yerine math.Distance kullanmalısınız
2D uzaydaki iki nokta arasındaki farkı döndürür. math.Distance'ın takma adıdır.
2D uzaydaki iki nokta arasındaki farkı döndürür.
2D uzaydaki iki nokta arasındaki karesel farkı döndürür. Bu, hesaplama açısından math.Distance'dan daha hızlıdır.
Geri dönmeden önce yumuşatma yönünü hafifçe tersine çevirerek yumuşak bir başlangıç yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
Zıplayan bir top gibi yumuşak bir başlangıç yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
Dairesel bir fonksiyon kullanarak yumuşak bir başlangıç yapar.
Lastik bir bant gibi yumuşak bir başlangıç yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
2 tabanlı ve kesrin üs olarak kullanıldığı üstel bir denklem kullanarak yumuşak bir başlangıç yapar.
Her iki uçta da geri dönmeden önce yumuşatma yönünü hafifçe tersine çevirerek yumuşak bir başlangıç ve bitiş yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
Zıplayan bir top gibi yumuşak bir başlangıç ve bitiş yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
Dairesel bir fonksiyon kullanarak yumuşak bir başlangıç ve bitiş yapar.
Kesirin küpünü alarak yumuşak bir başlangıç ve bitiş yapar.
Lastik bir bant gibi yumuşak bir başlangıç ve bitiş yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
2 tabanlı ve kesrin üs olarak kullanıldığı üstel bir denklem kullanarak yumuşak bir başlangıç ve bitiş yapar.
Kesirin karesini alarak yumuşak bir başlangıç ve bitiş yapar.
Kesri 4. kuvvete yükselterek yumuşak bir başlangıç ve bitiş yapar.
Kesri 5. kuvvete yükselterek yumuşak bir başlangıç ve bitiş yapar.
math.sin kullanarak yumuşak bir başlangıç ve bitiş yapar.
Kesri 4. kuvvete yükselterek yumuşak bir başlangıç yapar.
Kesri 5. kuvvete yükselterek yumuşak bir başlangıç yapar.
Bitirmeden önce yumuşatma yönünü hafifçe tersine çevirerek yumuşak bir bitiş yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
Zıplayan bir top gibi yumuşak bir bitiş yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
Dairesel bir fonksiyon kullanarak yumuşak bir bitiş yapar.
Lastik bir bant gibi yumuşak bir bitiş yapar.
Bu, Lerp ile kullanıldığında düzgün çalışmaz, çünkü kesiri 0 ile 1 arasında sınırlar. Bunun yerine kendi sınırsız Lerp versiyonunuzu kullanmanız gerekir.
2 tabanlı ve kesrin üs olarak kullanıldığı üstel bir denklem kullanarak yumuşak bir bitiş yapar.
Verilen yumuşatma kesirlerini dikkate alarak bir değer kesirinin ilerlemesini hesaplar
Bir tam sayının faktöriyelini hesaplayan basit bir fonksiyondur.
Bir sayıyı aşağıya doğru yuvarlar.
Bu fonksiyonun tersi için math.ceil'e bakın.
Belirtilen değerlerin modülüsünü döndürür.
Bu, % operatörüne benzer olsa da, ilk argüman negatifse negatif bir değer döndürürken, % operatörü ilk işlenen negatif olsa bile pozitif bir değer döndürür.
Bu fonksiyon ayrıca % operatöründen daha yavaştır.
Lua referans açıklaması: x = m2e olacak şekilde m ve e döndürür, e bir tam sayıdır ve m'nin mutlak değeri ((0.5, 1) aralığındadır (veya x sıfır olduğunda sıfırdır).
Sayı değerini normalleştirilmiş bir kesir ve bir üs olarak ayırmak için kullanılır. İki değer döndürülür: ilki 1/2 (dahil) ile 1 (hariç) aralığında bir çarpan ve ikincisi bir tam sayı üssüdür.
Sonuç, x = m*2^e olacak şekildedir.
İki kayan noktalı sayının neredeyse eşit olup olmadığını kontrol eder.
Bu, kayan noktalı sayılardaki doğruluk sorunlarını azaltmak için kullanışlıdır. Aşağıdaki örneklere bakın.
Normalleştirilmiş bir sayı alır ve kayan noktalı gösterimini döndürür.
Etkin bir şekilde normalizedFraction * 2.0 ^ exponent sonucunu döndürür. math.frexp bu fonksiyonun tersidir.
Tek bir argümanla, x'in doğal logaritmasını (e tabanında) döndürür.
İki argümanla, x'in verilen tabandaki logaritmasını, log(x)/log(base) olarak hesaplayarak döndürür.
x'in 10 tabanındaki logaritmasını döndürür. Bu genellikle math.log(x, 10)'dan daha doğrudur.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu, GMod'un şu anda kullandığından daha yeni Lua sürümlerinde kaldırılmıştır. Bunun yerine % operatörünü veya math.fmod'u kullanmalısınız.
Belirtilen değerlerin modülüsünü döndürür. math.fmod ile aynıdır.
Açıyı normalleştirir, böylece -180 ile 180 arasında bir değer döndürür.
x'in y üssünü döndürür.
Özellikle, math.pow(1.0, x) ve math.pow(x, 0.0), x sıfır veya bir nan olsa bile her zaman 1.0 döndürür. Eğer hem x hem de y sonlu ise, x negatifse ve y bir tam sayı değilse, math.pow(x, y) tanımsızdır.
Kuadratik bezier ile 3 kontrol noktası arasında Lerp noktası.
4 kontrol noktasıyla çalışan bir fonksiyon için math.CubicBezier'e bakın.
min ve max arasında rastgele bir ondalıklı sayı (float) döndürür.
Ayrıca bakınız: math.random
Argümansız çağrıldığında, 0 dahil ancak 1 hariç olmak üzere 0 ile 1 aralığında tekdüze sözde rastgele bir gerçek sayı döndürür.
Bir tam sayı olan m ile çağrıldığında, 1 ile m (dahil) aralığında tekdüze sözde rastgele bir tam sayı döndürür.
İki tam sayı olan m ve n ile çağrıldığında, m ile n (dahil) aralığında tekdüze sözde rastgele bir tam sayı döndürür.
Ayrıca bakınız: math.Rand
math.randomseed( number seed )
Rastgele sayı üretecini tohumlar (seed). Aynı tohum, math.random ile her seferinde aynı sayı dizisini garanti edecektir.
Tahmin edilen alanlar (predicted realms) arasında paylaşılan rastgele değerler için util.SharedRandom kullanın.
Bu fonksiyonun yanlış kullanımı, oyundaki tüm rastgele sayıları etkileyecektir.
Değeri bir aralıktan diğerine yeniden eşler
Verilen değeri en yakın tam sayıya veya belirtilen ondalık basamağa yuvarlar.
Bir sayıyı, verilen sayının en yakın katına sabitler. Ayrıca bakınız: Angle:SnapTo.
Mevcut zamanın başlangıç ve bitiş zamanlarına göre nerede olduğunun kesirini döndürür
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord