我已经获得了一个创作动画(在Mathematica中)的动画,该动画沿着由椭圆体和平面的公共部分创建的曲线移动。
我尽可能地做了以下事情,但我被困住了。
椭球表面和平面的公式(?):
x^2/4 + y^2/9 + z^2=1
z=-x+2y
答案 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}
]
然后各个帧看起来像这样:
此外,人们可以继续进行“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
坐标。