When r,g,b are equal, delta will be zero and hue will be nan due to divide by zero. This is also an issue with the reference C++ code: https://tio.run/##Sy4o0E3OScxL//9fOTMvOac0JVXBJjO/uKQoNTHXjiszr0QhNzEzT0NToZqLs7gkxcoqOb@0RMHGRkHJIzUnJ19HITy/KCdFUQkkBJZPzUvJseaq/f8fAA An alternative approach is to always add epsilon or use a different hue calculation: http://web.archive.org/web/20210515082154/http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv
Cirno's Perfect Math Library
Various useful bits of game math. 3D line intersections, ray casting, 2d/3d vectors, 4x4 matrices, quaternions, etc.
Intended to be used with LuaJIT and LÖVE (this is the backbone of LÖVE3D).
Online documentation can be found here or you can generate them yourself using ldoc -c doc/config.ld -o index .
Installation
Clone the repository and require it, or if you prefer luarocks: $ luarocks install --server=http://luarocks.org/dev cpml
. Add --tree=whatever
for a local install.
Versions
This library has a major compatibility break at version 1.0. Up to version 0.10, composition ab means "apply b, then a" for quaternions and "apply a, then b" for matrices. Now as of version 1.0, the two are consistent and matrix ab means "apply b, then a".
Description
Languages
Lua
100%