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

2025-10-26 08:06:04

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。
猜你喜欢