math - 使用贝塞尔曲线的圆近似

标签 math graphics bezier openjdk renderer

我有 2 个关于贝塞尔曲线的问题,以及使用它们来近似圆的部分。

  1. 给定单位圆弧 (1,0)->(cos(a),sin(a)) 其中 0 < a < pi/2,是否会得到 通过求解要求 B(1/3) = (cos(a/3), sin(a/3)) 强加的方程,可以很好地近似这条弧来找到贝塞尔曲线的控制点 p1、p2 B(2/3) = (cos(2a/3), sin(2a/3))。 (换句话说,要求 贝塞尔曲线穿过圆弧上两个等距点)。

  2. 如果我们有一个仿射变换 A 将圆弧旋转成 椭圆弧将变换后的控制点 Ap0、Ap1、Ap2、Ap3 定义 椭圆弧的良好贝塞尔曲线近似?

p0和p3当然是曲线的起点和终点:(1,0)和(cos(a), sin(a))。

谢谢

最佳答案

这是一个 general solution for any elliptical arc作为三次贝塞尔曲线。

误差主要取决于开始角度和结束角度的差异。通过将角度差限制为 60°,我取得了很好的成功。也就是说,我为每 60°(或其分数)制作一个单独的立方体段并将它们链接在一起。

关于math - 使用贝塞尔曲线的圆近似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3096806/

相关文章:

c - 矩阵的逆不准确

matlab - 如何从 Scope 获取最大值 (Simulink)

MySQL矩阵乘法

c# - 帮助优化整数数学

java - TransformGroup 的正确用法

c++ - Blt() 创建图层效果。不工作。我是在使用错误的逻辑函数还是什么?

javascript - 在浏览器 Canvas 上绘制 Hermite 曲线 (javascript)

LibGDX 指导—— Sprite 追踪 2D 无限随机贝塞尔曲线

ios - 四点曲线怎么画

image - Qt 图形 View ,显示图像! , 小部件