1

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

在此处输入图像描述

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

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

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

4

1 回答 1

4

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

为了清楚起见:

参考图片

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

注意:使用红线的交点会给你一个完美的平滑过渡;其他点不会。

于 2013-06-23T02:55:23.427 回答