ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


math

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
math [2019/08/26 21:16] korshunmath [2019/08/26 21:26] (current) – [Length] korshun
Line 191: Line 191:
  
 ===== Vector math ===== ===== Vector math =====
 +
 +Vector math functions come in 2D and 3D versions. All vector math functions operate only on fixed-point vectors. No integer versions are available.
 +
 +Vectors are passed as arguments named ''x'', ''y'', ''z''.
 +
 +If a function returns a vector, it uses [[multiple return values]], returning vector components in the same XYZ order, so ''r1'' is X, ''r2'' is Y and ''r3'' is Z.
 +
 +If a function accepts more than one vector, the first vector is passed as ''x1'', ''y1'', ''z1'', and the second one as ''x2'', ''y2'', ''z2''.
 +
  
 ==== Length ==== ==== Length ====
  
-  * 2D: [[zdoom>VectorLength]]+  * 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 ====
Line 204: Line 213:
   * 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 ====
Line 211: Line 220:
   * 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 vectorand return the result using [[multiple return values]].
  
-=== Example usage ===+=== Examples ===
 <code> <code>
 normalize3d(x, y, z); normalize3d(x, y, z);
math.1566843384.txt.gz · Last modified: 2019/08/26 21:16 by korshun