【微分几何】怎么实现3D图形的旋转

2025-06-21 23:35:38

1、首先,用参数方程来绘制一个3D曲面:aa=ParametricPlot3D[{2 Cos[u], Cos[v], Sin[u] Sin[v]*7/10}, {u, 0, 2 Pi}, {v, 0, Pi}, PlotRange -> All, Axes -> False, Boxed -> False, ImageSize -> {365, 365}, PlotPoints -> 100]这个曲面看起来像是一个枕头。

【微分几何】怎么实现3D图形的旋转

2、查看曲面的时候,用Show来重新展示这个曲面:Show[aa, ImageSize -> {365, 365}]

【微分几何】怎么实现3D图形的旋转

3、让曲面绕着z轴旋转一周:Manipulate[Show[aa, ImageSize -> {365, 365}, ViewPoint -> 2 {Cos[u], Sin[u], 0}, SphericalRegion -> True], {u, 0, 2 Pi}]这里采用交互模式,展示动画效果。

【微分几何】怎么实现3D图形的旋转

4、绕着y轴旋转一周,初步修改代码:Manipulate[Show[aa, ImageSize -> {365, 365}, ViewPoint -> 2 {Cos[u], 0, Sin[u]}, SphericalRegion -> True], {u, 0, 2 Pi}]明显地,这个不是真正的旋转一周,中途,曲面发生了翻转。

【微分几何】怎么实现3D图形的旋转

5、加入额外的观察限制条件:Manipulate[Show[aa, ImageSize -> {365, 365}, ViewPoint -> 2 {Cos[u], 0, Sin[u]}, ViewVertical -> {0, 1, 0}, SphericalRegion -> True], {u, 0, 2 Pi}]这时候曲面不会发生翻转。

【微分几何】怎么实现3D图形的旋转

6、ViewPoint指定的是观察点;ViewVertical指定的是观察方向,这个方向始终是朝向正上方。这两个观察限制条件,都可以用参数来表示:Manipulate[Show[aa, ImageSize -> {365, 365}, ViewPoint -> 2 {Cos[u], 0, Sin[u]}, ViewVertical -> {-Sin[u], 0, Cos[u]}, SphericalRegion -> True], {u, 0, 2 Pi}]

【微分几何】怎么实现3D图形的旋转
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢