![]() |
1
2
控制以给定角度穿过Bezier点的点位于该角度的切线上。 选择的控制点越远,产生的弯曲越软,因此有许多不同的解决方案,具有相同的角度和不同的曲率。。
要找到两个贝塞尔点具有相同软曲率的控制点,只需找到两条切线的交点!将交叉点用作两段的公共控制点,即C1=C2。 对于任何类型的对称曲线,需要保持交叉点的偏差对称,即50%、10%等。。 注意,为了优化整体形状,还需要查看相邻点;一般来说,提供的GDI功能表现良好;因此,值得考虑简单地添加更多贝塞尔点来控制形状;当然,使用一组完美的控制点是最经济的解决方案。 更新: 我已经添加了一个示例,演示了中的数学如何很好地近似圆(橙色) this interesting post .
简而言之:精确的解决方案不太可能,但四分之一圆的最佳拟合是将控制点移动到交叉点的约0.55%。(
代码使用
顺便说一句:将椭圆/圆添加到
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |