在Mathematica曲线上的一个点的运动

时间:2016-09-06 19:01:37

标签: animation wolfram-mathematica curve plane

我已经获得了一个创作动画(在Mathematica中)的动画,该动画沿着由椭圆体和平面的公共部分创建的曲线移动。

我尽可能地做了以下事情,但我被困住了。

Image

椭球表面和平面的公式(?):

  • 椭圆体表面x^2/4 + y^2/9 + z^2=1
  • 飞机z=-x+2y

1 个答案:

答案 0 :(得分:2)

您可以使用ContourPlot生成曲线,然后提取表示曲线的点并使用Manipulate生成动画,即

P = ContourPlot[x^2/4 + y^2/9 + (-x + 2*y)^2 == 1, {x, -3, 3}, {y, -3, 3}];

(* let's (ab)use the points *)
pnts = P[[1, 1]];

Manipulate[
    Show[
         P,
         ListPlot[pnts[[i ;; i]], PlotStyle -> {PointSize -> Large, Red}]
    ], {i, 1, Length[pnts], 1}
 ]

然后各个帧看起来像这样:

enter image description here

此外,人们可以继续进行“3D”尝试

pnts3D = {#[[1]], #[[2]], -#[[1]] + 2*#[[2]]} & /@ pnts;
Animate[
    Graphics3D[{Opacity[0.5], Ellipsoid[{0, 0, 0}, {2, 3, 1}], 
    Opacity[0.75], InfinitePlane[{{1, 0, -1}, {0, 0, 0}, {0, 1, 2}}], 
    Opacity[1], Red, PointSize[Large], Point[pnts3D[[i ;; i]]]}]
, {i, 1, Length[pnts3D], 1}]

此处,使用平面的等式以便唯一地生成z坐标。