вы могли бы использовать 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
.
алгебраически решается для 'x', примечание y должно находиться в диапазоне' +/- 3 Sqrt [5/41] 'и генерировать« таблицу »точек. Это может показаться немного неуклюжим, но я не вижу более элегантного подхода. – agentp
Я думаю, что уравнение плоскости 'z = -x + 2 * y' скорее соответствовало бы' InfinitePlane [{{1, 0, -1}, {0, 0, 0}, {0, 1, 2}} ] ', так как в этом виде' InfinitePlane' ожидает три точки, определяющие плоскость – ewcz