Ответы от Джейкоба и Амро являются очень хорошими примерами для вычисления и построения точек для эллипса. Я расскажу о некоторых простых способах, которыми вы можете построить эллипсоид ...
Во-первых, MATLAB имеет встроенную функцию ELLIPSOID , которая генерирует набор точек сетки с учетом центра эллипсоида и длины полуоси. Далее создаются матрицы x
, y
и z
для эллипсоида с центром в начале координат с длинами полуосей 4, 2 и 1 для направлений x, y и z соответственно:
[x, y, z] = ellipsoid(0, 0, 0, 4, 2, 1);
Затем вы можете использовать функцию MESH для ее построения, возвращая дескриптор объекта с нанесенной на поверхность поверхностью:
hMesh = mesh(x, y, z);
Если вы хотите повернуть построенный эллипсоид, вы можете использовать функцию ROTATE . Следующее применяется вращение на 45 градусов вокруг оси Y:
rotate(hMesh, [0 1 0], 45);
Затем вы можете настроить внешний вид графика, чтобы получить следующий рисунок:
axis equal; %# Make tick mark increments on all axes equal
view([-36 18]); %# Change the camera viewpoint
xlabel('x');
ylabel('y');
zlabel('z');
Кроме того, если вы хотите использовать повернутые точки графика для дальнейших вычислений, вы можете получить их из объекта построенной поверхности:
xNew = get(hMesh, 'XData'); %# Get the rotated x points
yNew = get(hMesh, 'YData'); %# Get the rotated y points
zNew = get(hMesh, 'ZData'); %# Get the rotated z points