Surface of a equation
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Daniel Jaló
am 15 Sep. 2012
Kommentiert: Walter Roberson
am 11 Nov. 2020
Hi.
I want to plot the quadratic surface of a sphere:
x^2 + y^2 + z^2 = r , where r is equal to 1. Therefore:
x^2 + y^2 + z^2 = 1, where x, y and z are values between -1.5 and 1.5
Can anyone explain me how to do this? I've looked into mesh surfaces but I can only plot functions ( f(x,y) )..
Any help will be highly appreciated. Thanks.
0 Kommentare
Akzeptierte Antwort
Wayne King
am 15 Sep. 2012
Bearbeitet: Wayne King
am 15 Sep. 2012
I think you meant to square r in your equation, and you cannot have a value between -1.5 and 1.5 if the radius is 1. The radius has to be 1.5. Think about what happens if x=0,y=0,z=1.5 as you stated must be a point that satisfies the equation x^2+y^2+z^2 = r^2
You should probably do it with spherical coordinates:
n = 100;
r = 1.5;
theta = (-n:2:n)/n*pi;
phi = (-n:2:n)'/n*pi/2;
cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0;
sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0;
x = r*cosphi*cos(theta);
y = r*cosphi*sintheta;
z = r*sin(phi)*ones(1,n+1);
surf(x,y,z)
xlabel('X'); ylabel('Y'); zlabel('Z')
Note that MATLAB has a function for this with a unit sphere, sphere.m
2 Kommentare
Varun Dogra
am 11 Nov. 2020
Develop a sweep surface by sweeping a circle P (r, θ) of radius 7.5
units with center at (4,3) along the positive z-axis by 10 units
Please help
Walter Roberson
am 11 Nov. 2020
Modifying some code from below, https://www.mathworks.com/matlabcentral/answers/48240-surface-of-a-equation#answer_243478
r = 7.5; xc = 4; yc = 3;
zl = 0; zh = 10;
fimplicit3(@(x,y,z) (x-xc).^2+(y-yc).^2-r^2,[xc-r xc+r yc-r yc+r zl zh], 'edgecolor', 'none')
Weitere Antworten (3)
Jürgen
am 15 Sep. 2012
[x,y,z] = sphere(); r = 5; figure,surf( r*x +cx, r*y+ cy, r*z +cz) wit (cx,,cy,cz) the center look at http://www.mathworks.com/matlabcentral/newsreader/view_thread/169373
0 Kommentare
Javier
am 15 Sep. 2012
Bearbeitet: Walter Roberson
am 11 Nov. 2020
Procedure done in Matlab R2012.
The problem that you want to solve gives complex solution for Z for arbitrary X and Y in [-1.5,1.5]. The square of X^2 + Y.^2 must be lower than 1, in other case,the solution for Z is a complex number (mesh function doesnt support complex data). To prove it, solve for Z. You get an square root of (1-(X.^2+Y.^2)). I show how to solve for arbitrary number X and Y lower than 0.70 (0.7071^2= 0.5).
Data=randn(10,10) % 10 is arbitrary. Matriz square.
u=find(Data>0.70);
d=find(Data<-0.70);
%Define limits of Data Matriz
Data(u)=0.70;
Data(d)=-0.70;
%Divide Data matriz in two
X=Data(:,1:5);
Y=Data(:,6:10);
%For arbitrary X and Y value Z must solve the equality
Z=feval(@(X,Y)[sqrt(1-(X.^2+Y.^2))],X,Y)
%Plot data
mesh(X,Y,Z)
If this solve your question please grade or make a comment to this answer. Best regards
Javier
0 Kommentare
auto2060
am 16 Nov. 2016
So
r = 1;
fimplicit3(@(x,y,z) x.^2+y.^2+z.^2-r^2,[-1.5 1.5 -1.5 1.5 -1.5 1.5])
0 Kommentare
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!