vec2¶
Quelle: base/tealdef/scripts/vec2.d.tl
Hinweise
Typen der reinen Lua-Bibliothek für 2D-Vektoren /scripts/vec2.tl (Vec2Serialized). Anders als
api.type.Vec2f der Engine sind diese Vektoren gewöhnliche Lua-Tabellen {x = ..., y = ...} mit
Rechen-Metamethoden. Deshalb kannst du sie im Skriptzustand und in Konstruktionsergebnissen speichern.
Du lädst sie mit local vec2 = ug_require "/scripts/vec2.tl" as Vec2Serialized.
Vec2iSerialized¶
record global base/tealdef/scripts/vec2.d.tl:3
global record Vec2iSerialized
Hinweise
Namensraum des ganzzahligen 2D-Vektortyps Vec2i.
Vec2iSerialized.Vec2i¶
record base/tealdef/scripts/vec2.d.tl:4
record Vec2i
Hinweise
2D-Vektor mit ganzzahligen Komponenten als einfache Tabelle {x = ..., y = ...}.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
x |
integer |
X-Komponente. |
y |
integer |
Y-Komponente. |
Vec2Serialized¶
record global base/tealdef/scripts/vec2.d.tl:10
global record Vec2Serialized
Laden: local vec2 = ug_require "::/scripts/vec2.tl" as Vec2Serialized
Hinweise
Die 2D-Vektorbibliothek, die ug_require "/scripts/vec2.tl" zurückgibt, und der Namensraum ihres Typs Vec2.
Funktionen
new(x : number, y : number) : Vec2 base/tealdef/scripts/vec2.d.tl:23
Aufruf: vec2.new(…)
Hinweise
Erzeugt einen 2D-Vektor mit Rechenoperatoren.
| Parameter | Typ | Beschreibung |
|---|---|---|
x |
number |
X-Komponente. |
y |
number |
Y-Komponente. |
Rückgabe Vec2: Der neue Vektor.
Im Basisspiel verwendet: 26-mal in 7 Dateien
base/content/climates/climates/gen/mapgenutil.tl:11
local newStart = vec2.new(math_util.randf(bounds.min.x, bounds.max.x), math_util.randf(bounds.min.y, bounds.max.y))
base/content/climates/climates/gen/rivermapgenutil.tl:147
local rot = vec2.mul(math_util.mapClamp(math.abs(theta), 0, 2.3, 1, 5.0), vec2.new(tg.x * math.cos(theta) - tg.y * math.sin(theta), tg.x * math.sin(theta) + tg.
base/content/gui/gui/node_editor/layer_nodes.script.tl:313
base/content/landmarks/hq/hq/headquarter.script.tl:10
base/content/stations/rail/rail/modular_station/modular_station.script.lua:631
base/content/stations/water/water/harbor_modular.script.lua:113
… und 1 weitere Dateien.
add(v1 : Vec2, v2 : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:25
Aufruf: vec2.add(…)
Hinweise
Gibt v1 + v2 zurück.
Rückgabe Vec2
Im Basisspiel verwendet: 12-mal in 2 Dateien
base/content/climates/climates/gen/mapgenutil.tl:22
base/content/climates/climates/gen/rivermapgenutil.tl:154
sub(v1 : Vec2, v2 : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:26
Aufruf: vec2.sub(…)
Hinweise
Gibt v1 - v2 zurück.
Rückgabe Vec2
mul(f : number, v : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:27
Aufruf: vec2.mul(…)
Hinweise
Gibt den Vektor v mit der Zahl f skaliert zurück.
Rückgabe Vec2
Im Basisspiel verwendet: 14-mal in 2 Dateien
base/content/climates/climates/gen/mapgenutil.tl:22
base/content/climates/climates/gen/rivermapgenutil.tl:147
div(v : Vec2, f : number) : Vec2 base/tealdef/scripts/vec2.d.tl:28
Aufruf: vec2.div(…)
Hinweise
Gibt den Vektor v zurück, jede Komponente durch f geteilt.
Rückgabe Vec2
componentwiseMul(v1 : Vec2, v2 : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:29
Aufruf: vec2.componentwiseMul(…)
Hinweise
Gibt {x = v1.x * v2.x, y = v1.y * v2.y} zurück.
Rückgabe Vec2
Details
Das Ergebnis ist eine einfache Tabelle ohne die Operator-Metatabelle. Wenn du +/- brauchst, gib es in new.
componentwiseDiv(v1 : Vec2, v2 : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:30
Aufruf: vec2.componentwiseDiv(…)
Hinweise
Gibt {x = v1.x / v2.x, y = v1.y / v2.y} zurück.
Rückgabe Vec2
Details
Das Ergebnis ist eine einfache Tabelle ohne die Operator-Metatabelle. Wenn du +/- brauchst, gib es in new.
length(v : Vec2) : number base/tealdef/scripts/vec2.d.tl:35
Aufruf: vec2.length(…)
Get the length (magnitude) of the vector.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec2 |
vector |
Rückgabe number: length of the vector
distance(v1 : Vec2, v2 : Vec2) : number base/tealdef/scripts/vec2.d.tl:40
Aufruf: vec2.distance(…)
Get the distance between two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec2 |
first vector |
v2 |
Vec2 |
second vector |
Rückgabe number: distance between the vectors
dot(v1 : Vec2, v2 : Vec2) : number base/tealdef/scripts/vec2.d.tl:45
Aufruf: vec2.dot(…)
Compute the dot product of two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec2 |
first vector |
v2 |
Vec2 |
second vector |
Rückgabe number: dot product
angle(v1 : Vec2, v2 : Vec2) : number base/tealdef/scripts/vec2.d.tl:50
Aufruf: vec2.angle(…)
Get the angle between two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec2 |
first vector |
v2 |
Vec2 |
second vector |
Rückgabe number: angle in radians
normalize(v : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:55
Aufruf: vec2.normalize(…)
Normalize the vector (make it unit length).
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec2 |
vector to normalize |
Rückgabe Vec2: normalized vector
rotate90(v : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:59
Aufruf: vec2.rotate90(…)
Rotate the vector by 90 degrees.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec2 |
vector to rotate |
Rückgabe Vec2: rotated vector
lerp(v1 : Vec2, v2 : Vec2, s : number) : Vec2 base/tealdef/scripts/vec2.d.tl:65
Aufruf: vec2.lerp(…)
Linear interpolation between two vectors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v1 |
Vec2 |
first vector |
v2 |
Vec2 |
second vector |
s |
number |
interpolation factor [0, 1] |
Rückgabe Vec2: interpolated vector
herp(p0 : Vec2, p1 : Vec2, t0 : Vec2, t1 : Vec2, s : number) : Vec2 base/tealdef/scripts/vec2.d.tl:73
Aufruf: vec2.herp(…)
Hermite interpolation between two points with tangents.
| Parameter | Typ | Beschreibung |
|---|---|---|
p0 |
Vec2 |
start point |
p1 |
Vec2 |
end point |
t0 |
Vec2 |
start tangent |
t1 |
Vec2 |
end tangent |
s |
number |
interpolation factor [0, 1] |
Rückgabe Vec2: interpolated vector
herpPrime(p0 : Vec2, p1 : Vec2, t0 : Vec2, t1 : Vec2, s : number) : Vec2 base/tealdef/scripts/vec2.d.tl:81
Aufruf: vec2.herpPrime(…)
Derivative of Hermite interpolation.
| Parameter | Typ | Beschreibung |
|---|---|---|
p0 |
Vec2 |
start point |
p1 |
Vec2 |
end point |
t0 |
Vec2 |
start tangent |
t1 |
Vec2 |
end tangent |
s |
number |
interpolation factor [0, 1] |
Rückgabe Vec2: derivative vector
fromAngle(a : number) : Vec2 base/tealdef/scripts/vec2.d.tl:85
Aufruf: vec2.fromAngle(…)
Create a unit vector from an angle.
| Parameter | Typ | Beschreibung |
|---|---|---|
a |
number |
angle in radians |
Rückgabe Vec2: unit vector
toArray(v : Vec2) : Table2 base/tealdef/scripts/vec2.d.tl:90
Aufruf: vec2.toArray(…)
Convert vector to an array of two numbers.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec2 |
vector |
Rückgabe Table2: array with x and y components
fromArray(t : Table2) : Vec2 base/tealdef/scripts/vec2.d.tl:94
Aufruf: vec2.fromArray(…)
Create vector from an array of two numbers.
| Parameter | Typ | Beschreibung |
|---|---|---|
t |
Table2 |
array with x and y components |
Rückgabe Vec2: vector
print(v : Vec2) : string base/tealdef/scripts/vec2.d.tl:99
Aufruf: vec2.print(…)
Convert vector to a string representation.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec2 |
vector |
Rückgabe string: string representation
Vec2Serialized.Table2¶
record base/tealdef/scripts/vec2.d.tl:11
record Table2 is {number}
of lenght 2
Im Basisspiel verwendet: 2-mal in 1 Datei
base/content/scripts/scripts/vec2.tl:116
Vec2Serialized.Vec2¶
record base/tealdef/scripts/vec2.d.tl:13
record Vec2
Hinweise
2D-Vektor als einfache Tabelle {x = ..., y = ...}. Vektoren aus new (und aus den Operatoren) haben
eine Metatabelle, deshalb funktionieren v1 + v2, v1 - v2, f * v und v / d.
Im Basisspiel verwendet: 96-mal in 6 Dateien
base/content/climates/climates/gen/mapgenutil.tl:59
function data.makeRivers(valleys : {RiverResult}, config : RiverBuilderConfig, startLength : number, startPosition : Vec2Serialized.Vec2,
base/content/gui/gui/map_editor/map_editor.tl:1721
base/content/gui/gui/node_editor/layer_nodes.script.tl:241
base/content/landmarks/hq/hq/headquarter.script.tl:86
local encodeSlotId = function(coord : Vec2Serialized.Vec2, slotType : string, orientation? : integer, variant? : integer) : integer
base/content/landmarks/hq/hq/headquarter_addon.script.tl:70
base/content/scripts/scripts/vec2.tl:3
Felder
| Name | Typ | Beschreibung |
|---|---|---|
x |
number |
X-Komponente. |
y |
number |
Y-Komponente. |
Funktionen
metamethod __add(v1 : Vec2, v2 : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:17
Hinweise
Komponentenweise Summe v1 + v2.
Rückgabe Vec2
metamethod __sub(v1 : Vec2, v2 : Vec2) : Vec2 base/tealdef/scripts/vec2.d.tl:18
Hinweise
Komponentenweise Differenz v1 - v2.
Rückgabe Vec2