Мне нужно построить купол (или полусферу) с разными радиусами. Мне сказали, как нанести шпере на предыдущий вопрос:
[x,y,z] = sphere; %# Makes a 21-by-21 point sphere
x = x(11:end,:); %# Keep top 11 x points
y = y(11:end,:); %# Keep top 11 y points
z = z(11:end,:); %# Keep top 11 z points
r = 3; %# A radius value
surf(r.*x,r.*y,r.*z); %# Plot the surface
axis equal; %# Make the scaling on the x, y, and z axes equal
Но мне нужна высота x Компоненты Y и Z должны быть разными.
Как мне изменить код?
Назовем радиус по x, y и z rx
, ry
и rz
соответственно.
Затем вы вызываете функцию следующим образом
[x,y,z] = sphere; %# Makes a 21-by-21 point unit sphere
x = x(11:end,:); %# Keep top 11 x points
y = y(11:end,:); %# Keep top 11 y points
z = z(11:end,:); %# Keep top 11 z points
rx = 3;ry = 4;rz = 9; %# Define rx, ry, rz
surf(rx*x,ry*y,rz*z); %# Plot the surface, multiplying unit coordinates with radii
axis equal; %# Make the scaling on the x, y, and z axes equal