养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

用Mathematica让3D图形动起来

时间:2024-10-13 13:15:36

绘制一个三维图形,如果能够让它动起来,就能够产生更好的3D效果。那么,怎么样能够使得用Mathematica画出来的图形动起来?请往下看。

用Mathematica让3D图形动起来

用Mathematica让3D图形动起来

用Mathematica让3D图形动起来

工具/原料

电脑

Mathematica(8.0以上版本)

步骤一

1、画一个单位正方体,再让它绕z轴旋转,代码如下:Animate[Graphics3D[Rotate[Cuboid[],nDegree,{0,0,1}]],{n,0,360,1}]

用Mathematica让3D图形动起来

2、让各面半透明化,可以更好地观察整个图形:Animate[Graphics3D[{Opacity[.5],Rotate[Cuboid[],nDegree,{0,0,1}]},Boxed->False],{n,0,360,1}]

用Mathematica让3D图形动起来

3、再画一个稍微复杂的图形:Animate[Graphics3D职邗珩垃[{PointSize[0.03],Opacity[.5],Rotate[{EdgeForm[Blue],Po造婷用痃lyhedronData["TruncatedDodecahedron","Faces"],Style[Point[PolyhedronData["TruncatedDodecahedron","VertexCoordinates"]],Opacity[1],Red]},nDegree,{0,0,1},{0.5,0.5,0}]},Boxed->False],{n,0,360,1}]

用Mathematica让3D图形动起来

4、Mathematica还能旋转文本:Animate[Rotate[Style[Sqrt[b^2-4ac],Bold,Red,30],nDegree],{n,0,360,1}]

用Mathematica让3D图形动起来

步骤二

1、可以把文字旋转60°:Rotate[把图形旋转60°,60Degree]运行以后:

用Mathematica让3D图形动起来

2、再旋转一次文字:Rotate[Style[把图形旋转60°,Bold,Green,90],60Degree]

用Mathematica让3D图形动起来

3、可以反复地旋转数学式子里的根号:Nest[Rotate[Sqrt[#],90°]&,2,8]运行结果是文本形式,下面是截图:

用Mathematica让3D图形动起来

4、图片也可以旋转:Rotate[pic,60Degree]只要把你的图片取代pic就可以旋转了!

用Mathematica让3D图形动起来

5、固定正方体的一条棱,让正方体绕着这条棱旋转:Manipulate[Graphics3D[Rotate[Cuboid[],nDegree,{0,0,1},{1,1,1}],Axes->True,AxesLabel->{X,Y,Z},PlotRange->{{0,2},{0,2},{0,2}}],{n,0,360,1}]有一段时间,正方体消失了一部分,这需要调整PlotRange。

用Mathematica让3D图形动起来

6、Manipulate[Graphics3D[Rotate[Cuboid[],nDegree,{0,0,1},{1,1,1}],Axes->True,AxesLabel->{X,Y,Z},PlotRange->{{-1,3},{-1,3},{-1.5,1.5}}],{n,0,360,1}]这个正方体是完整的。

用Mathematica让3D图形动起来

7、请思考一下下面这个圆柱体旋转轴是在哪里:Manipulate[Graphics3D[{Opacity[0.7],Rotate[Cylinder[],nDegree,{{1,1,0},{0,0,1}}]},Boxed->False],{n,0,360,1}]

用Mathematica让3D图形动起来

8、一个多边形的多次旋转的痕迹:Graphics[Outer[Rotate[Rotate[Line[{{1,0},{Sqrt[3],1}/2}],#,{0,0}],#2,{1,0}]&,Pi/6Range[12],Pi/6Range[12]]]

用Mathematica让3D图形动起来

步骤三

1、绘制旋转的彩色球体。先自定义四个函数:p1[\[The隋茚粟胫ta]_]:=RotationTransform[\[Theta],惺绅寨瞀{0,0,1}][{0,2,0}];p2[\[Theta]_]:=RotationTransform[\[Theta]+Pi/2,{1,0,1}][{0,2,0}];p3[\[Theta]_]:=RotationTransform[\[Theta]+Pi,{1,0,0}][{0,2,0}];p4[\[Theta]_]:=RotationTransform[\[Theta]+3Pi/2,{1,0,-1}][{0,2,0}];然后运行下面的代码:Animate[Graphics3D[Sphere[],Lighting->{{"Point",Red,p1[\[Theta]]},{"Point",Green,p2[\[Theta]]},{"Point",Blue,p3[\[Theta]]},{"Point",Yellow,p4[\[Theta]]}}],{\[Theta],0,2Pi},AnimationDirection->ForwardBackward,SaveDefinitions->True,AnimationRunning->False]

用Mathematica让3D图形动起来

2、绘制一个旋转的阴阳双鱼太极图:f[x_]:=Graphi罕铞泱殳cs[Rotate[{Disk[{0荑樊综鲶,0},1,{Pi/2,(3Pi)/2}],Disk[{0,1/2},1/2],{White,Disk[{0,-(1/2)},1/2]},{White,Disk[{0,1/2},0.1]},{Disk[{0,-(1/2)},0.1]},Circle[]},xDegree],Axes->False,PlotRange->1]Animate[f[a],{a,0,-359,1}]

用Mathematica让3D图形动起来

3、用ViewPoint使得一个半透明的贝壳旋转:Manipul瞢铍库祢ate[ParametricPlo墉掠载牿t3D[{1.16^vCos[v](1+Cos[u]),-1.16^vSin[v](1+Cos[u]),-21.16^v(1+Sin[u])},{u,0,2Pi},{v,-15,6},Mesh->None,PlotStyle->Opacity[0.6],PlotRange->All,PlotPoints->25,Boxed->False,Axes->False,ImageSize->{500,500},ViewPoint->{Cos@a,Sin@a,0.5}],{a,0,360Degree,10Degree}]

用Mathematica让3D图形动起来

© 一点知识