C# 贝塞尔曲线中加权控制点的补偿

C# 贝塞尔曲线中加权控制点的补偿,c#,geometry,bezier,C#,Geometry,Bezier,我有一条二次贝塞尔曲线,我试图计算出它的长度,或者把它转换成一条多段线,然后计算出长度。我可以找到很多算法来实现这一点,例如: 或 但这些似乎都没有考虑到控制点的权重,我认为这是NURBS线独有的功能,但基本上没有提到使用NURBS的任何这些技术 有人对如何解决这个问题有什么建议吗?贝塞尔技术会起作用吗?还是有办法适应它们?谢谢。将贝塞尔曲线转换为多段线时,通常使用两种不同的技术: 1) 从贝塞尔曲线上采样的点创建多段线 2) 使用通过de Casteljau算法或节点插入细化原始Bezie

我有一条二次贝塞尔曲线,我试图计算出它的长度,或者把它转换成一条多段线,然后计算出长度。我可以找到很多算法来实现这一点,例如:

但这些似乎都没有考虑到控制点的权重,我认为这是NURBS线独有的功能,但基本上没有提到使用NURBS的任何这些技术


有人对如何解决这个问题有什么建议吗?贝塞尔技术会起作用吗?还是有办法适应它们?谢谢。

将贝塞尔曲线转换为多段线时,通常使用两种不同的技术:

1) 从贝塞尔曲线上采样的点创建多段线
2) 使用通过de Casteljau算法或节点插入细化原始Bezier曲线的控制多边形而获得的控制点创建多段线


当采样点或应用de Casteljau算法(在同质坐标上)时,应考虑加权控制点。

普通贝塞尔曲线没有加权控制点,值直接插入贝塞尔函数,因此,如果希望使用算法展平NURBS线段,则可能搜索错误的内容。