码迷,mamicode.com
首页 > 其他好文 > 详细

展平splineshape

时间:2014-09-30 21:25:30      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   for   数据   sp   

通过for循环的嵌套来来展平Splineshape中顶点

1.判定选中的样条曲线是否符合要求

2.通过循环来计算曲线中每个顶点

3.将计算到的顶点的Z坐标位置设置成和曲线本身的Z坐标一致

4.执行完以上操作后 使用UpdateShape()更新曲线

 

--判断选择的曲线是否是可编辑样条曲线 曲线的数量是1 并且没有添加任何修改器
if
    (
        selection.count==1 and
        (classof selection[1]==SplineShape or classof selection[1]==line)
        and selection[1].modifiers.count==0
    )
do
    (
        posZ=$.pos.z --声明一个变量 存储当前物体的Z坐标
        for splines=1 to (numSplines $) do --在for循环中计算从1到选定对象中的样条线数
        (
            for knots=1 to (numKnots $ splines) do --计算选中样条线的点
            (
                --将当前样条线中的点的Point3的世界坐标存到变量中
                knt = getKnotPoint $ splines knots 
                
                --读取选定当前选中线条中的点矢量 将Point3直接坐标存到变量中
                in_vec = getInVec $ spines konts
                
                --读取出当前循环到的样条线的点的矢量 将Point3直接坐标存到变量中
                out_vec = getOutVec $ spines knots
                
                --将向量和点的Z坐标设置为 posZ变量中存储的新值
                knt.z = in_vec.z = out_vec.z = new_z
                
                --指定新进出矢量重置为各自的节点和样条线
                setInVec $ s k in_vec
                setOutVec $ s k out_vec
                
                --将回存到各自的节点和样条线指定新的节点位置
                setKnotPoint $ s k knt
            )--end knots loop
        )--end splines loop
    )--end if 
    
    updateshape $--更新的内部数据结构进行的所有更改

 

展平splineshape

标签:style   blog   color   io   os   使用   for   数据   sp   

原文地址:http://www.cnblogs.com/amixc/p/4002419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!