.net 如何使用XAML创建简单的二维NURBS?
我需要创建具有两个端点和“n”个控制点的样条线。.net 如何使用XAML创建简单的二维NURBS?,.net,wpf,xaml,.net-3.5,bezier,.net,Wpf,Xaml,.net 3.5,Bezier,我需要创建具有两个端点和“n”个控制点的样条线。 据我所知,贝塞尔曲线只允许一个控制点,贝塞尔样条曲线允许两个控制点。但是,我需要能够添加尽可能多的控制点,而不限于一个或两个 下面是我想要实现的一个示例,有4个控制点: (来源:) 到目前为止,我只能像这样将一系列Bezier片段组合在一起: 不是开箱即用的,但看看这个问题,它将告诉您如何使用c#绘制NURBS,然后您可以将代码转换成一些东西,然后在WPF下实现使用它 尽管在标题中提到了NURBS,但您似乎在寻找一种方法来绘制一系列在连接点
据我所知,贝塞尔曲线只允许一个控制点,贝塞尔样条曲线允许两个控制点。但是,我需要能够添加尽可能多的控制点,而不限于一个或两个 下面是我想要实现的一个示例,有4个控制点:
(来源:)
到目前为止,我只能像这样将一系列Bezier片段组合在一起:
不是开箱即用的,但看看这个问题,它将告诉您如何使用c#绘制NURBS,然后您可以将代码转换成一些东西,然后在WPF下实现使用它 尽管在标题中提到了NURBS,但您似乎在寻找一种方法来绘制一系列在连接点处平滑的贝塞尔样条曲线线段
要实现这一点,您需要在第二段上设置点1,这样它将相对于段之间的连接点镜像第一段上的点2(即第一段上的点3)
在您的例子中,连接点是(3,3),第一段上的点2是(2,1),因此您需要在第二段(4,5)上创建点1,而不是代码中的(4,3)
将第三段上的相似性更改点1更改为(7,4),因此它将(5,2)与(6,3)相对照,您将得到以下可能解决问题的段:
BezierSegment Point1="1,2" Point2="2,1" Point3="3,3"
BezierSegment Point1="4,5" Point2="5,2" Point3="6,3"
BezierSegment Point1="7,4" Point2="8,1.75" Point3="9,2.5"
现在,如果您不喜欢我更改控制点,并且确实希望(4,3)和(7,2)成为控制点,请添加更多线段。只要记住,如果您想要与上一段平滑连接,您不需要决定点1是什么
注:
这看起来非常有用。谢谢
BezierSegment Point1="1,2" Point2="2,1" Point3="3,3"
BezierSegment Point1="4,5" Point2="5,2" Point3="6,3"
BezierSegment Point1="7,4" Point2="8,1.75" Point3="9,2.5"