Antra

Standardbibliothek

Antra::Math

import Antra::Math

Überblick#

Für mathematische Hilfsfunktionen, wenn die Sprachoperatoren nicht mehr reichen.

import Antra::Math

println(Math.round(Math.cos(Math.deg2rad(60)) * 100))   # 50
println(Math.clamp(12, 0, 10))                           # 10
println(Math.lerp(10, 20, 0.25))                         # 12.5
println(Math.TAU / Math.PI)                              # 2

Referenz#

M.sin(x)
M.cos(x)
M.tan(x)
M.sqrt(x)
M.pow(base, exp)
M.log(x)
M.floor(x)
M.ceil(x)
M.round(x)
M.idiv(a, b)   # 7 / 2 -> 3, -7 / 2 -> -4
M.abs(x)
M.sign(x)
M.min(a, b)
M.max(a, b)
M.clamp(x, lo, hi)   # 12 zwischen 0 und 10 -> 10
M.lerp(a, b, t)      # M.lerp(10, 20, 0.25) -> 12.5
M.deg2rad(deg)
M.rad2deg(rad)
M.PI                 # Konstanten: PI, TAU, E
M.pi()               # dasselbe als Funktion; ein nacktes M.pi ist die Funktion, nicht die Zahl

Funktionen#

fn abs(x :- Number) :- Number
fn acos(x :- Number) :- Float
fn asin(x :- Number) :- Float
fn atan(x :- Number) :- Float
fn atan2(y :- Number, x :- Number) :- Float
fn cbrt(x :- Number) :- Float
fn ceil(x :- Number) :- Int
fn clamp(x, lo, hi)

x held between lo and hi (both included).

Example:

Math.clamp(12, 0, 10)   # 10
fn cos(x :- Number) :- Float
fn cube(n :- Number) :- Number
fn deg2rad(deg :- Number) :- Number

Degrees to radians: Math.cos(Math.deg2rad(60)) is about 0.5.

fn double(n :- Number) :- Number
fn e() :- Float
fn exp(x :- Number) :- Float
fn floor(x :- Number) :- Int
fn hypot(a :- Number, b :- Number) :- Float
fn idiv(a :- Number, b :- Number) :- Int
fn lerp(a, b, t)

The value a fraction t of the way from a to b (t = 0 gives a, 1 gives b; outside 0..1 it extrapolates).

Example:

Math.lerp(10, 20, 0.25)   # 12.5
fn log(x :- Number) :- Float
fn log10(x :- Number) :- Float
fn log2(x :- Number) :- Float
fn max(a :- Number, b :- Number) :- Number
fn min(a :- Number, b :- Number) :- Number
fn pi() :- Float
fn pow(base :- Number, exp :- Number) :- Number
fn rad2deg(rad :- Number) :- Number

Radians to degrees: Math.rad2deg(Math.PI) is 180.

fn round(x :- Number) :- Int
fn sign(x :- Number) :- Int
fn sin(x :- Number) :- Float
fn sqrt(x :- Number) :- Float
fn square(n :- Number) :- Number
fn tan(x :- Number) :- Float
fn tau() :- Float
fn trunc(x :- Number) :- Int

Quelle dieser Seite