Draw surface of a football (American)
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Szabolcs Simon-Guth
el 5 de Nov. de 2021
Comentada: Szabolcs Simon-Guth
el 5 de Nov. de 2021
Hi everyone!
I got the following assignment:
Draw the surface of an american football which can be described with the following equation:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/790789/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/790794/image.png)
The surface should look like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/790799/image.png)
I have the following code:
r = linspace(-1,1,21);
a = linspace(0,2*pi,63);
[R,A] = meshgrid(r,a);
X = R.*cos(A);
Y = R.*sin(A);
Z = acos(R);
surf(X,Y,Z);
axis equal
But every time I run the code, I get the following surface:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/790804/image.png)
What is it that I am doing wrong?
Thank you for any help that anyone could provide, in advance!
0 comentarios
Respuesta aceptada
DGM
el 5 de Nov. de 2021
Editada: DGM
el 5 de Nov. de 2021
Two things to notice: note the way your points are spaced unevenly along z compared to the reference image. Also note the restricted domain of acos(). This problem would be easier approached by using z as the parameter instead of r.
z = linspace(-pi/2,pi/2,21);
th = linspace(0,2*pi,63).';
X = cos(z).*cos(th);
Y = cos(z).*sin(th);
Z = repmat(z,numel(th),1);
surf(X,Y,Z);
axis equal
colormap(jet)
If you really wanted to do it your way, you could ...
clf; % reset web-plot
r = linspace(0,1,21);
a = linspace(0,2*pi,63);
[R,A] = meshgrid(r,a);
X = R.*cos(A);
Y = R.*sin(A);
Z = acos(R);
surf(X,Y,Z); hold on
surf(X,Y,-Z)
axis equal
Más respuestas (1)
Yongjian Feng
el 5 de Nov. de 2021
Editada: Yongjian Feng
el 5 de Nov. de 2021
Hint: your assignment states z should be -Pi/2 < z < Pi/2.
But your r range is (-1, 1), which corresponds to z range 0<z< Pi
In other words, you plot the wrong range of Z. The first plot has Z from about -1.5 to 1.5.
Your plot has Z between 0 < Z < 3.
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!