参数曲线绕坐标轴旋转形成的旋转曲面的动画

例 4.4.5 作出以下直线绕 z 轴旋转一周得到的旋转曲面的动画。
旋转曲面的参数方程为:
输入以下命令:

with(plots): x:=t->0: y:=t->1: z:=t->t: u:=sqrt(x(t)^ 2+y(t)^2):
a:=-1: b:=1: K:=20: for i from 1 to K do ti:=i2Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta), u(t)*sin(theta), z(t)],t=a…b, theta=0…ti) od:
L:=display(seq(qumian[i],i=1…K),insequence=true):
display(L,L, style=patch, lightmodel=light2, orientation=[45,70],
axes=frame,tickmarks=[2,2,2]);

输出动画(圆柱面 x^ 2+y^2=1):

输入以下命令:

with(plots):with(plottools):
x:=t->1: y:=t->0: z:=t->t: u:=t->sqrt(x(t)2+y(t)2):
Muxian:=spacecurve([x(t),y(t),z(t)],t=-1.8…1.8, thickness=3,color=red):
K:=30:
for i from 1 to K do ti:=i4Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta),u(t)*sin(theta),z(t)],t=-1.3…1.3,theta=0…ti,
scaling=constrained,style=patch):
muxian[i]:=rotate(Muxian,ti,[[0,0,0],[0,0,1]]) od:
L:=display(seq(qumian[i],i=1…K), insequence=true):
M:=display(seq(muxian[i],i=1…K), insequence=true):
display(L,M,orientation=[40,70],tickmarks=[1,1,1],axes=frame,
lightmodel=light1,scaling=unconstrained);

输出动画(含旋转直线):

例 4.4.6 作出以下直线绕 z 轴旋转一周得到的旋转曲面的动画。
旋转曲面的参数方程为:
输入以下命令:

with(plots): x:=t->1: y:=t->t: z:=t->t: u:=sqrt(x(t)^ 2+y(t)^2):
a:=-1: b:=1: K:=20: for i from 1 to K do ti:=i* 2*Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta), u(t)*sin(theta), z(t)],t=a…b, theta=0…ti) od:
L:=display(seq(qumian[i],i=1…K),insequence=true):
display(L,L, style=patch, lightmodel=light2, orientation=[45,70],
axes=frame,tickmarks=[2,2,2]);

输出动画(单叶双曲面):

但是以上曲面的一组母线不是旋转直线。
例 4.4.7 作出以下直线绕 z 轴旋转一周得到的旋转曲面的动画。
要求母线是旋转直线!

输入以下命令:

with(plots):with(plottools): x:=t->1: y:=t->t: z:=t->t:
r:=t->sqrt(x(t)^ 2+y(t)^2):
phi:=t->arctan(y(t)/x(t))+(1-signum(x(t)))* Pi/2:
a:=-1: b:=1:
K:=6: for i from 1 to K do ti:=i3Pi/K:
qumian[i]:=plot3d([r(t)*cos(theta+phi(t)), r(t)*sin(theta+phi(t)), z(t)],t=a…b,theta=0…ti):
quxian[i]:=rotate(spacecurve([x(t),y(t),z(t)],t=a-0.1…b+0.1,
thickness=3,color=red),ti,[[0,0,0],[0,0,1]]) od:
M:=display(seq(qumian[i],i=1…K),insequence=true):
L:=display(seq(quxian[i],i=1…K),insequence=true):
display(L,M,orientation=[40,70],axes=normal,tickmarks=[0,0,1], lightmodel=light1, scaling=constrained);

输出动画(母线是旋转直线):


输入以下命令:

with(plots):with(plottools): x:=t->1: y:=t->t: z:=t->2* t:
r:=t->sqrt(x(t)^ 2+y(t)^2):
phi:=t->arctan(y(t)/x(t))+(1-signum(x(t)))* Pi/2:
a:=-1: b:=1:
quxian:=spacecurve([x(t),y(t),z(t)],t=a-0.1…b+0.1,color=blue,thickness=2):
qumian:=plot3d([r(t)* cos(theta+phi(t)), r(t)* sin(theta+phi(t)), z(t)],
t=a…b,theta=0…2* Pi,color=yellow):
K:=24: for i from 1 to K do ti:=i* 2*Pi/K:
L[i]:=rotate(quxian,ti,[[0,0,0],[0,0,1]]) od:
L:=display(display(seq(L[i],i=1…K),insequence=false)):
display(L,qumian,orientation=[40,70],axes=normal,tickmarks=[0,0,0],
lightmodel=light1, scaling=constrained);

输出图形(母线是旋转直线):

例 4.4.7 作出以下圆绕 z 轴旋转一周得到的旋转曲面的动画。
旋转曲面的参数方程为:
输入以下命令:

with(plots):with(plottools): R:=3:r:=0.8:
x:=t->R+rsin(t): y:=t->0: z:=t->rcos(t): u:=t->sqrt(x(t)^ 2+y(t)^2):
a:=0: b:=2* Pi:
K:=30: for i from 1 to K do ti:=i* 3* Pi/K:
qumian[i]:=plot3d([u(t)*cos(theta+Pi/2),u(t)*sin(theta+Pi/2),z(t)],
t=0…b,theta=0…ti,style=patch) od:
L:=display(seq(qumian[i],i=1…K),insequence=true):
display(L,L,orientation=[40,70],axes=normal,tickmarks=[1,1,1],
lightmodel=light1, scaling=constrained);

输出动画(圆环面):

输入以下命令:

with(plots):with(plottools):
R:=3:r:=0.8:
x:=t->R+rsin(t):y:=t->0:z:=t->r cos(t):
u:=t->sqrt(x(t)^ 2+y(t)^2):
a:=0: b:=2* Pi:
Muxian:=spacecurve([x(t),y(t),z(t)],t=a…b,thickness=3,color=red):
K:=60:for i from 1 to K do ti:=i* 4* Pi/K:
qumian1[i]:=plot3d([u(t)*cos(theta+Pi/2),u(t)*sin(theta+Pi/2),z(t)],t=0…b,theta=0…ti,style=patch):
muxian[i]:=rotate(Muxian,ti+Pi/2,[[0,0,0],[0,0,1]]) od:
qumian1:=display(seq(qumian1[i],i=1…K),insequence=true):
muxian:=display(seq(muxian[i],i=1…K),insequence=true):
x_axis:=plot3d([u,0,0],u=-5…5,v=0…0.01,thickness=3):
y_axis:=plot3d([0,u,0],u=-5…5,v=0…0.01,thickness=3):
z_axis:=plot3d([0,0,u],u=-2…2.5,v=0…0.01,thickness=3):
xyz:=display(x_axis,y_axis,z_axis,thickness=3):
text:=textplot3d([-3,-3,-0.2,“SCUMATH 2008”],color=grey):
display(qumian1,muxian,text,xyz,orientation=[40,70],tickmarks=[4,4,4],title=“torus”,axes=none,lightmodel=light1,scaling=constrained);

输出动画(母线为旋转小圆):
输入以下命令:

with(plots):with(plottools): rr:=1:R:=3:
x:=t->0: y:=t->R+rr* cos(t): z:=t->R+rr* sin(t):
r:=t->sqrt(x(t)^ 2+y(t)^2):
a:=0: b:=2* Pi:
quxian:=spacecurve([x(t),y(t),z(t)],t=a…b,color=blue,thickness=2):
qumian:=plot3d([r(t)* cos(theta), r(t)* sin(theta), z(t)],
t=a…b,theta=0…2* Pi,color=yellow):
K:=24: for i from 1 to K do ti:=i2Pi/K:
L[i]:=rotate(quxian,ti,[[0,0,0],[0,0,1]]) od:
L:=display(display(seq(L[i],i=1…K),insequence=false)):
display(L,qumian,orientation=[40,70],axes=normal,tickmarks=[0,0,0],
lightmodel=light1, scaling=constrained);

输出图形(母线为旋转小圆):

返回《Maple图形与动画》目录

4.4 旋转曲面的动画(2)相关推荐

  1. 4.4 旋转曲面的动画 (1)

    坐标面上的平面曲线绕坐标轴旋转形成的旋转曲面的动画. 例 4.4.1 作出yOz坐标面上的抛物线 绕 z 轴旋转一周得到的旋转曲面的动画. 解 旋转曲面的方程是 旋转曲面的参数方程是: 下面用参数方程 ...

  2. matlab 旋转曲面,在matlab中实现旋转曲面的动画设计

    摘要 旋转曲面是工程设计与曲面造型中最为常见的曲面之一,在现代工业中,许多产品的形状都是由旋转曲面生成,直观动态演示这些旋转曲面工件造型就显得尤为重要,特别是考古学中计算机模拟复原技术中也用到旋转曲面 ...

  3. 2.4 旋转曲面 (1)

    旋转曲面的定义 空间一条曲线绕一直线旋转一周得到的曲面称为旋转曲面. (1) 坐标平面上一条曲线绕坐标轴旋转一周得到的旋转曲面. (i) yOz坐标面上的曲线 z=f(y) (a≤y≤b)绕 z 轴旋 ...

  4. 2.4 旋转曲面 (2)

    空间一条曲线绕坐标轴旋转一周得到的旋转曲面. 设有一空间曲线L,其参数方程为: L 绕 z 轴旋转一周得到的旋转曲面的参数方程是: 旋转曲面作图基本格式为: x:=t->x(t): y:=t-& ...

  5. Android Animation (安卓动画)概念简介

    Android Animation Android 四种动画分别为逐帧动画和补间动画.属性动画.过渡动画: Frame Animation (逐帧动画) 实现方式:xml 和 Java代码 图片跳转的 ...

  6. Android动画之帧动画和补间动画

    Android系统提供三种动画:帧动画.补间动画和属性动画.这里先分析总结帧动画和补间动画. FrameAnimation 帧动画,通俗来说就是按照图片动作顺序依次播放来形成动画,创建帧动画可以用 x ...

  7. Android 动画 ViewPropertyAnimator 的使用

    ViewPropertyAnimator 说明: ViewPropertyAnimator 可为View对象上的选择属性启用自动和优化的动画, ViewPropertyAnimator 不是由调用方构 ...

  8. Android ViewAnimationUtils (动画) 的使用

    先看下ViewAnimationUtils  实现的几个常见的效果图如下: ViewAnimationUtils  的作用: 设置剪切圆动画的动画制作器 一般的使用如下: Animator revea ...

  9. Android AnimationUtils (动画)的使用

    AnimationUtils  其实就是补间动画(Tween Animation) 在xml 中的写了动画java 中调用 这边打算就写一个demo 简答的记录下它的使用详细的请看 点击查看,这篇博客 ...

最新文章

  1. python的range()函数用法
  2. Hinge Loss
  3. SqlService 数据操作
  4. MIS 740: Software Concepts Use different GUI components i
  5. linux 性能调优
  6. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-1-举例说明
  7. U盘恢复软件,U盘格式化后怎么恢复数据
  8. 分享一个好用的网页pdf打印插件
  9. IT之路,从迷茫“愤青”到团队项目经理,他是如何一步步走出来的?
  10. python中分号中没内容_被“嫌弃”的分号的一生:不要在Python中使用无用分号了...
  11. 嘉兴学院计算机研究生导师,延安大学—嘉兴学院联合培养硕士研究生导师见面会召开...
  12. 积极的心态带动积极的行为
  13. 再读杨绛_RWERWERWE_96921_新浪博客
  14. 如何改变坏习惯,形成新习惯
  15. plt画网格图_matplotlib子图与多种图形绘制
  16. 二维码怎么制作?看完这篇你就会了
  17. unknown mutation type:
  18. 日志易日志平台使用了什么开源软件
  19. 用友通-财务报表维护
  20. java 车辆限行查询功能代码

热门文章

  1. 产品经理和项目经理的区别是什么? 来看看你适合做哪个PM?
  2. mysql多行多列转一行一列
  3. 抖音高贵气质的签名_抖音运营一些注意的事项
  4. 操作系统第一章知识点小结
  5. 16 NLP 走近自然语言处理
  6. 普通本科毕业一年,刷完这1000道JAVA面试题,成功逆袭上岸
  7. Python numpy.var函数方法的使用
  8. Java集合详解5:深入理解LinkedHashMap和LRU缓存
  9. 【自习任我行】任务跟踪2
  10. 组网胖模式_胖AP工作模式 | ZyXEL