多语言展示
当前在线:1671今日阅读:75今日分享:44

【Mathematica】关于ViewPoint的一点奇怪的地方

在Mathematica使用ViewPoint旋转曲面的时候,会发生一些奇怪的事情。曲面旋转到一半,又走了'回头路'。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

先来绘制一个三维曲线。tt={Cos[v] Cos[9 Sin[v]], Cos[v] Sin[9 Sin[v]], Sin[v]};a = ParametricPlot3D[tt, {v, 0, 2 Pi}, Axes -> False,   Boxed -> False]

2

观察者绕着Z轴转圈:x = Show[a, ViewPoint -> 2 {Cos[#], Sin[#], 0},      SphericalRegion -> True, ImageSize -> 365] & /@    Range[Pi/18, 2 Pi, Pi/18];

3

这些观察点的轨迹形成一个圆圈。

4

观察者绕着X轴旋转,似乎走到一半又走了回头路?

5

来看一个更加明显的例子:a = ParametricPlot3D[r[v, 2 Sin[v]], {v, 0, 2 Pi}, Axes -> False,   Boxed -> False];x = Table[   Show[a,     Graphics3D[{Green, PointSize[0.02], Point[{r[t, 2 Sin[t]]}]}],     ViewPoint -> 2 r[t, 2 Sin[t]], SphericalRegion -> True,     ImageSize -> 365], {t, Pi/180., 2 Pi, Pi/180.}];图中绿色点就相当于观察点吧,明显走了回头路啊。

6

但是,观察者应该遍历整个曲线啊。a = Show[ParametricPlot3D[r[v, 2 Sin[v]], {v, 0, 2 Pi}, Axes -> False,    Boxed -> False],   ListPointPlot3D[r[#, 2 Sin[#]] & /@ Range[0, 2 Pi, Pi/18],    PlotStyle -> Green]];图中红色点是观察点。而绿色点是在曲线上的采样点。注意,ViewPoint的坐标,是曲线上点坐标的二倍。

推荐信息