NitroMath 是一组用于 C、C++ 和 ObjC 的数学工具,旨在提高编码性能。
通常,人们会反复在许多项目中重新声明和实现一些简单的数学函数,因为它们易于编写(您编写 lerp 函数多少次了?)。然而,这可能会变成一个维护噩梦:可能会有名称冲突,对同一函数的不同实现,做相同事情的函数有不同的名称,未使用的改进,可执行的额外字节,更多的单元测试编写等等。
NitroMath 尝试将我与我的同事在制作几乎每个游戏/应用时使用的一些数学函数组合在一起。所有函数都符合 C、C++ 和 ObjC。它们也是内联函数,这为编译器提供额外的提示以优化它们。
您将找到的内容:
lerp(浮点型和整型版本):线性插值 - 用于许多动画中;
clamp(浮点型和整型版本):保持值在区间 [min, max] 内;
luminance(浮点型和整型版本):RGB 颜色的亮度 - 对于深褐色、灰度、处理在背景上有不同颜色的图像的轮廓等非常有用
degreesToRadians(仅浮点型版本)
radiansToDegrees(仅浮点型版本)
浮点数绝对误差比较实用工具:只有在两个浮点数之间的差值大于 epsilon 时才将它们视为不同。有关深入讨论,请参阅http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
NitroMath 通过 CocoaPods 提供,要安装它,只需将以下行添加到您的 Podfile 中
pod "NitroMath"
NitroMath 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。