
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.4 圆柱体模型
cylinder()函数用于圆柱体建模,举例如下:

上述语句的作用是以坐标(0,2,1)为底面圆心建立一个高度为5、半径为1的圆柱体,圆柱体的名称为rod,执行程序后显示的图形如图1-11所示。

图1-11
圆柱体函数的定义如图1-12所示。其中,pos为圆柱底面圆心位置,如图中红色箭头的起点,axis定义圆柱体的轴,如图中的红色箭头,包含轴方向和轴长度两层含义。在图1-12中,我们仅指定了x方向的轴长度5,对于该圆柱体来说,顶面圆心的坐标为(0,2,1)+(5,0,0)。
程序示例如下(完整的程序代码见“源代码\1-2-4.py”):

程序执行结果如图1-13所示。

图1-12

图1-13
上述程序段的作用是建立单摆的三维模型。下面对该段程序进行详细说明:第一行引入3D模块;第二行定义单摆的长度L;第三行定义单摆的摆角theta;第四行在原点处建立一个白色的长方体基座base;第五行在坐标(L*sin(theta),-L*cos(theta),0)处建立一个半径为1的红色小球;第六行在坐标原点即长方体的位置建立一个半径为0.2的蓝色圆柱体摆杆rod,该摆杆的轴为由长方体基座的位置点指向小球的位置点。