如何链接曲线

时间:2018-11-25 16:25:49

标签: c# math line bezier curve

首先,让我明确地说,我对编程知识不多。所以在我解决了这个问题之后,感谢您阅读我的问题。

因此,我目前要塞入我的C#小程序中的内容如下:

  • 在pA到pX之间画一条线
  • 绘制从pX到pY的曲线
  • 绘制从pY到pZ的曲线
  • 在pZ到pD之间画一条线

我的问题如下:

在地球上,我如何从一条线“切换”到另一条曲线,然后再回到C#中的一条线?

如果有人可以帮助我,我将非常高兴。

来自比利时的问候

-g2609

1 个答案:

答案 0 :(得分:0)

似乎要提供线段和曲线的平滑连接。

请注意,端点处的贝塞尔曲线具有到控制点的方向(切线)。因此,只需将控制点放在直线段的延续处即可。从点到控制点的距离是曲率的原因。尝试使用distXY / 3之类的值开始。

对于曲线-曲线连接,您必须定义一些规则。例如,定义切线方向(并再次指定处线)。如果需要平滑的曲线链,请考虑插值样条线-这种方法可以计算所有曲线的三次曲线参数并提供连续性。

A-X行,三次方Bezier X-Y,Y-Z行的伪代码。

 VecAX = X - A
 uAX = (VecAX.X / VecAX.Length, VecAX.Y / VecAX.Length)
 curveXY.P0 = X
 curveXY.P1 = X + uAX * VecAX.Length / 3
 curveXY.P2 = Y - uXZ * VecXZ.Length / 3
 curveXY.P3 = Y