今天咱们继续来学rhinopython101的案例,今天的案例是生成曲线的曲率梳图像,其实gh自带的curvature graph运算器就是用来显示曲线曲率图像的。
1.定义函数,根据曲线上的两个t值,对t值进行取样,生成曲线曲率线,由于后边调用该函数,输入的参数为曲线的节点值,而节点列表的前三个数值和最后三个数值是一样的,也就意味着有两个t值参数一样的情况,为了避免死循环,需要单独设置一个判断语句,如果两个t值相同,则直接跳出循环;
2.根据取样值求得t值的步进值,t值起始值为t0,利用while循环对t值进行递增,计算曲线在t处的曲率;
3.如果没有曲率,表示为直线,则直接添加曲线上的点,如果存在曲率,则根据设定的缩放值,对曲率向量进行缩放,然后将t值所在的点按照向量进行移动,移动前后的点构建直线,将直线添加到曲线列表,将移动后的但添加到点列表,最后根据所有点生成内插点曲线,作为曲率图形的外框线;
4.定义主函数,对曲线的节点进行循环遍历,首先得到曲线的节点,调用函数1,对曲线相邻节点进行细分得到曲率曲线,由于获得的曲线有可能是列表,也有可能是单根曲线,这里通过条件语句,采用了两种添加方法。
5.由于生成的曲线列表包含曲率曲线和外框线,利用不同类型曲线的名称不同,根据名称将曲线进行分流,最后根据长度对曲率曲线进行着色显示。
欢迎关注「颜犀设」知乎专栏和知识星球。