Both sides previous revisionPrevious revisionNext revision | Previous revision |
math [2019/08/26 18:22] – [Vector math] korshun | math [2019/08/26 18:26] (current) – [Length] korshun |
---|
==== Length ==== | ==== Length ==== |
| |
* 2D: [[zdoom>VectorLength]] -- already provided by ZDoom. | * 2D: [[zdoom>VectorLength]] -- already built into ZDoom. |
* 3D: ''fixed VectorLength3D(fixed x, fixed y, fixed Z)'' | * 3D: ''fixed VectorLength3D(fixed x, fixed y, fixed Z)'' |
| |
''VectorLength3D'' is implemented efficiently as ''VectorLength(VectorLength(x, y), z)''. | These functions return the length of the input vector. ''VectorLength3D'' is implemented efficiently as ''VectorLength(VectorLength(x, y), z)''. |
| |
==== Dot product ==== | ==== Dot product ==== |
* 3D: ''fixed dot3(fixed x1, fixed y1, fixed z1, fixed x2, fixed y2, fixed z2)'' | * 3D: ''fixed dot3(fixed x1, fixed y1, fixed z1, fixed x2, fixed y2, fixed z2)'' |
| |
These functions return the [[wp>dot product]] of two vectors. They are shorthands for writing out ''FixedMul(x1, x2) + FixedMul(y1, y2) + ...''. | These functions return the sum of components of a vector obtained by componentwise multiplication of the two input vectors, also known as the [[wp>dot product]]. They are shorthands for writing out ''FixedMul(x1, x2) + FixedMul(y1, y2) + ...''. |
| |
==== Normalization ==== | ==== Normalization ==== |
* 3D: ''fixed, fixed, fixed normalize3d(fixed x, fixed y, fixed z)'' | * 3D: ''fixed, fixed, fixed normalize3d(fixed x, fixed y, fixed z)'' |
| |
These functions [[wp>Normalized vector|Normalize]] the input vector and return the result using [[multiple return values]]. | These functions return the input vector scaled to have length ''1.0'', also known as [[wp>Normalized vector|normalizing]] the input vector, and return the result using [[multiple return values]]. |
| |
=== Example usage === | === Examples === |
<code> | <code> |
normalize3d(x, y, z); | normalize3d(x, y, z); |