如何得到空间样条曲线的等分点?
www.dimcax.com
如何得到空间样条曲线的等分点?
对于一个任意的样条曲线,想得到其长度,并得到对其进行一定量的等分后得到的点集,不知用.net如何实现? 偶目前思路不是很清楚,感觉很简单的事情,查了spline类,没找到解决办法,请高人指点。谢谢
样条曲线的长度,请使用spline类getdistatpoint,其中的参数请使用spline的endpoint。一定量的等分后得到的点集,请使用spline类getsplitcurves,其中的点参数,请使用spline类getpointatdist
c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。
已经解决谢谢版主大人:)
原帖由 lemonlee 于 已经解决谢谢版主大人:)
能否发上来学习一下?
我对polyline实现了 polyline polyent;//先得到这条polyline int n=10;//等分数 double polylinelength = polyent.length; point3d[] pts = new point3d[n]; for (int k = 0; k < n; k++) { //等分线段,相当于divide pts[k] = polyent.getpointatdist(polylinelength * k / (n- 1)); }
如何得到闭合样条曲线的长度?
上述方法不适用于闭合的样条曲线,样条曲线没有length属性,用spline类的getdistatpoint(spline.endpoint)得到的长度为0,因为endpoint和起点的坐标是相同的,请问如何得到闭合样条曲线的长度?
期待高手关注一下。
原帖由 gyl 于 上述方法不适用于闭合的样条曲线,样条曲线没有length属性,用spline类的getdistatpoint(spline.endpoint)得到的长度为0,因为endpoint和起点的坐标是相同的,请问如何得到闭合样条曲线的长度?
double endparam = cur.endparam; // cur是曲线
double dis = cur.getdistanceatparameter(endparam);
ed.writemessage("\n曲线长度: " + dis.tostring());
复制代码
谢谢版主。还想问一下,getdistanceatparameter(param)中形参的含义是什么?