如何绘制近似于原始曲线的曲线
How to draw a curve approximated to original one
我有一组点,我想画一条曲线,它应该近似于原始曲线。
假设,在鹰眼系统(用于板球)中,我在整个球的飞行过程中都有一组球的坐标,现在我如何绘制这样一条穿过球的空间坐标并恰如其分地混合到原始曲线的曲线
我认为一种方法是获得大量积分,以便每两点
彼此非常接近,然后在它们之间画出一条直线光
曲线几乎总是分四个步骤呈现:
-
使用曲线或样条算法近似或插值一组点。选择可能包括:
- 三次样条曲线,穿过所有数据点并产生平滑曲线
- 贝塞尔曲线,它不穿过所有点,但位于围绕每个曲线部分的连续 4 个点组的包络内。
- Hermite 曲线,由一组点和一组切向量定义:您需要以某种方式生成一组切向量才能使用这种曲线。
- (可能还有更多我已经忘记了)
-
将您选择的任何表示转换为贝塞尔曲线:这可以通过从其他曲线类型进行简单的矩阵变换来实现。
-
反复细分贝塞尔曲线:控制点趋向于近似曲线。
-
绘制由直线连接的细分曲线的控制点。
如果你直接进入贝塞尔曲线,这可能是最简单的,那么有一些非常简单和优雅的方法来细分它。
我强烈推荐Catmull-Rom样条用于此目的,它们基于Hermite曲线。 它不使用 2 个点和 2 个切线,而是使用四个相邻的数据点进行插值,使其更适合/更简单的运动路径上采样。
相关文章:
- 将浮动的heightmap数组导出为16位原始值
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 有没有办法从非C/C++文件中读取C++原始字符串文字的内容
- 是否可以将llvm::FunctionType转换为C/C++原始函数指针
- 如何将原始字节附加到 std::vector?
- 从堆栈分配的原始指针构造智能指针
- 如何重写全局方法名称以在调用原始方法之前将我的代码推到前面
- 将unique_ptr分配给原始指针
- 是否可以从 OpenGL 缓冲区获取原始大小的像素?
- 使用 OpenSSL 从内存中读取原始 SSL/TLS 证书
- CGAL:如何创建填充边界曲线的曲面网格?
- 如何将唯一指针的 std::vector 转换为原始指针的 std::span?
- 从原始字节解码协议缓冲区(以 C++为单位)
- C ++如何在原始抽象类中创建一个函数,该函数接受派生类的输入
- C++:尝试使用等效的 STL 算法消除原始循环
- 如何在连接器 C++ 中将原始字节转换为字符串
- 通过引用传递类不会更改原始类
- 实现使用模板化类而不使原始类成为模板的类
- 如何在 2d 矢量 c++ 中复制元素并将其放在原始元素旁边
- 如何绘制近似于原始曲线的曲线