#curve #bezier #graphics

cubic-bezier

创建和修改三次贝塞尔曲线

1 个稳定版本

1.0.0 2024 年 2 月 7 日

#179 in 可视化

自定义许可证

19KB
265

cubic-bezier

此包提供用于处理三次贝塞尔曲线的功能,例如创建、操作和计算三次贝塞尔曲线上的点。

功能

  • 使用控制手柄创建三次贝塞尔曲线。
  • 通过添加、删除或修改控制手柄来操作曲线。
  • 在不修改曲线的情况下添加控制手柄。
  • 以自定义的详细程度计算曲线上的点。
  • 缓存计算点。

示例

use cubic_bezier::{point, Bezier, Handle};

let mut bezier = Bezier::new(10, 2);
bezier.push(Handle::mirrored(point!(-1.0, 1.0), point!(0.0, 0.0)));
bezier.push(Handle::mirrored(point!(1.0, 1.0), point!(2.0, 0.0)));

let points = bezier.calculate();

用法

使用 new 方法创建新的贝塞尔曲线。您指定详细程度和将要添加的手柄数量的估计值。

let mut bezier = Bezier::new(10, 2);

创建曲线后,您可以使用 push 方法添加控制手柄。

bezier.push(Handle::mirrored(point!(-1.0, 1.0), point!(0.0, 0.0)));
bezier.push(Handle::mirrored(point!(1.0, 1.0), point!(2.0, 0.0)));

要计算曲线上的点,请调用 calculate 方法。

let points = bezier.calculate();

这将返回表示曲线的点的向量。

插入手柄

您可以使用 knot_insert 方法插入手柄,而不会改变曲线的外观。

bezier.knot_insert(0.5);

调试

您可以使用 all_part_point 方法访问所有控制点以进行调试。

let control_points = bezier.all_part_point();

许可证

此库采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。

依赖项

~490KB