首页 > 解决方案 > 如何链接曲线

问题描述

首先,让我明确一点,我对编程知之甚少。所以在我解决这个问题之后,感谢您阅读我的问题。

所以我目前想在我的小 C# 程序中填入以下内容:

我的问题如下:

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

如果有人能帮我解决这个问题,我会非常高兴。

来自比利时的问候,

-g2609

标签: c#mathlinebeziercurve

解决方案


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

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

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

AX 线、三次贝塞尔 XY 线、YZ 线的伪代码。

 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

推荐阅读