本人学习一般,没有太多计算机语言的知识,只是二级水平。在读者面前班门弄斧,见笑了!【抱拳】
2020年期末,复习高等数学中的三维曲面时,回忆起三维图形的一些性质,解决了那个想法的绊脚石。这个想法是啥呢?就是绘制管道时,让圆的中心沿着曲线平移很容易,但想要它像个管子,那么每个圆的法线应该和曲线该点处的切线方向一致。
我的基本想法,就是在一条空间曲线的每一个点上计算切向量,进而获取法平面。然后在每一个法平面上画圆,只要足够多就是一条平滑的管子。
我选的曲线是比较简单的正弦曲线,参数方程:x=t,y=sint,z=0;切向量:(1,cost,0);法平面:(X-t)+cost*(Y-sint)=0
法平面上的圆,取半径为1,实际上就是法平面与一个球的截面。其方程:
{ (X-t)+cost*(Y-sint)=0
{ (X-t)^2+(Y-sint)^2+Z^2=1
解得圆得参数方程为:X=cosu/(1+(sec t)^2)+t
Y=sin t -cos u/( 1+ (cos t)^2)
Z=sin u
u为参数,t为曲线上任意一点的参数坐标。
计算圆得参数方程时,当 -pi/2< t <pi/2 时,X为X= t - cosu/(1+(sec t)^2);其他情况 X=cosu/(1+(sec t)^2)+t 所以用了条件vi进行判断。
程序:
结果: