C# - 2点之间的曲线

时间:2013-06-23 02:49:44

标签: c# drawing line

我有两组平行线,当它们的角度不同时,我最终在一端有一个交叉点,另一端有一个开放的间隙。通过将line1的endPoint设置为与line2的起点相同,我已经处理了这个部分。像这样......

enter image description here

这是我到目前为止添加行的代码....

for (int i: 0; i < myLines.size() ; i++) {
   Line myLine = checkforInterection( myLines, i);
   myCanvas.Children.Add(myLine);
   myCanvas.Children.Add(createParallel(myLine));
}

我想通过一条可以跨越距离的弯曲线来缩小右手边的间隙。解决这个问题的最佳方式是什么?

1 个答案:

答案 0 :(得分:4)

使用BezierSegment获得平滑曲线。起点和终点应该是直线的起点和终点。控制点可能需要一些实验才能看起来像你想要的那样,因为这更像是一种偏好,但是将控制点设置为曲线所连接的两条线的投影交点将是一个很好的起点。如果你想在之后进行调整,你应该沿着从投影交叉点到左边两条线的实际交点的线移动它。

为清楚起见:

Reference picture

从绿点开始和结束点开始。从红线交叉处的控制点开始,如果要调整,请沿蓝线移动以保持对称曲线。

注意:使用红线的交点将为您提供完美平滑的过渡;其他要点不会。