#vector #vector-graphics #animation #sdl2 #lerp #graphical #created

bin+lib vectorlib

以下库是为处理动画库中的 vector 而创建的,应该适用于任何图形库,如 rylib 或 sdl2

2 个版本

0.1.2 2023 年 7 月 13 日
0.1.1 2023 年 7 月 13 日
0.1.0 2023 年 7 月 13 日

#282图形 API

MIT 许可证

41KB
802

Vector2d 库

以下库是为处理动画库中的 vector 而创建的,其中我们放置我们的 engine。该库有多个模块和支持

变更日志

  • 2023-07-13 20:32:

    • vectorlib 已准备部署。
  • 2023-07-12 22:53:

    • 现在已完成了对 .add() 方法和所有给定操作(加法、减法、乘法、除法)的操作符的实现
  • 2023-07-12 23:22:

    • 已完成添加 verboseVectors,这将让我们知道当向量从内存中释放时(对于调试很有用)。
    • 实现所有相关方法的测试。
  • 2023-07-10 21:36:30:

    • 创建 vectorlib 的结构体
    • 支持单元测试和库文档测试。
    • 导入到 Engine crate 中,用于我们的动画平台。

备注

  • 2023-07-12 22:24:

    • 对于 verboseVectors,我使用了 vector2d 的组合和构建,这是必要的,因为我不能为 Vector2d 的结构体添加另一个名为 verbose 的字段(例如,AddSubDivMul 只需要两个字段)。
    • 为了实现 verboseVectorsstd::fmt::Display,我找到了一种创造性的方法来提取 Some(vector),因为 Option 没有实现 Display 特性,请查看 verbose_vector2d_module.rs 模块末尾的 std::fmt::Display 特性。
  • 2023-07-10 22:49:26:

    • 到目前为止,Vector2d 支持
      • 向量的(+,-,*,/)运算符
        • 输入可以是向量或标量
      • .add().div().mul().sub()只接受Vector2d,不能接受标量
        • 这意味着let s = v.div(8.0)将不会工作。

特性

  • 向量的通用格式
  • 日志记录和错误处理,例如检查vectorResult
  • 支持在调试模式中显示的特性。
  • 对向量的(+)/(-)/(/)/(*)运算符进行重载。
  • 添加对其他向量方法的支持 - 进行中
    • lerp函数。
    • 两个向量之间的distance
    • 与点积类似的双向量积cross
    • 取反
    • zero向量初始化器。
    • ones向量初始化器。

欢迎信息

  • 您可以使用命令运行,启动src/main.rs,这不是必需的,但我是为了演示目的创建的。
cargo run --quiet
# or
cargo run -j 10 --quiet

测试模块

  • 使用下面的测试命令将运行test/tests.rs脚本,以及每个vectorlib::math::vector_module::Vector2d的文档脚本。
cargo test
  • 有时我们想通过指定的test查看某些变量的输出结果。要在执行cargo test时查看打印的值,可以使用--nocapture标志。此标志防止测试框架捕获输出,允许打印的值在控制台上显示。
cargo test -- --nocapture
# Or
cargo test -j 8 -- --nocapture

依赖关系

~0.4–10MB
~61K SLoC