一半君的总结纸

听话只听一半君

#20 如何得到NURBS曲面上surface edit points的世界坐标系坐标?

为了得到edit point的 U 和 V 值 . 可以这样:

创建一个 surfaceInfo node 并把他连接到 NURBS surface, 然后查询他的 ‘.knotsU’ 和 ‘.knotsV’ attributes:

createNode surfaceInfo;
// Result: surfaceInfo1 //

connectAttr -f nurbsPlane1.worldSpace surfaceInfo1.inputSurface;

getAttr surfaceInfo1.knotsU;
// Result: 0 0 0 0.333333 0.6666667 1 1 1 //

getAttr surfaceInfo1.knotsV;
// Result: 0 0 0 0.25 0.5 0.75 1 1 1 //

上面的例子用的事一个在U方向有3个spans,在V方向有4个spans的 nurbsPlane. 不用管前两个0,和最后两个1 (对不同的surface可能会不一样). 所以, 第2个U span和第二个V span的交点处的edit point应该是:

U = 0.33333 V = 0.25

在这个坐标点创建一个 pointOnSurface node :

string $posNode = `pointOnSurface -ch on -u 0.3333 -v .25 nurbsSurface1`;

查询pointOnSurface node的position:

float $posCoord = `getAttr ( $posNode + ".position" )`;
Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: