필터 지우기
필터 지우기

sphere made of 2d circles in 3d plot

조회 수: 5 (최근 30일)
reza
reza 2014년 1월 2일
편집: Roger Stafford 2014년 1월 2일
hi i made the code below the create a sphere using 2d circles in a 3d plot:
r=1
teta=-pi:0.01:pi
x=r*cos(teta);
y=r*sin(teta);
axis square
for i=0.0:0.1:1
z=i*sin(teta);
plot3(x,y,z);
hold on
end
for i=0.0:-0.1:-1
z=i*sin(teta);
plot3(x,y,z);
hold on
end
for i=0.0:0.1:1
y=i*sin(teta);
plot3(x,y,z);
hold on
end
for i=0.0:-0.1:-1
y=i*sin(teta);
plot3(x,y,z);
hold on
end
however it doesn't create a clear sphere from some views it shows sphere from some views it shows something( i don't know what ).
anyway i want to creat a sphere using the code below to create a sphere using 2d circles(code below).
r=1
teta=-pi:0.01:pi
x=r*cos(teta);
y=r*sin(teta);
z=zeros(1,numel(x));
plot3(x,y,z);

답변 (2개)

Amit
Amit 2014년 1월 2일
You can use sphere function to create a sphere. Do you specifically need sphere from circles?
  댓글 수: 2
Amit
Amit 2014년 1월 2일
Moreover, the equation you have used does not represent a sphere.
Amit
Amit 2014년 1월 2일
If you really just want to use 2-D circles, the code will be something like this:
r=1;
teta=-pi:0.1:pi;
x=zeros(size(teta));
y=x;
z = x;
axis square
for i=(-1)*r:0.1:r
x = ((r^2-i^2)^0.5)*cos(teta);
y = ((r^2-i^2)^0.5)*sin(teta);
z = i*ones(size(teta));
plot3(x,y,z);
hold on;
end

댓글을 달려면 로그인하십시오.


Roger Stafford
Roger Stafford 2014년 1월 2일
편집: Roger Stafford 2014년 1월 2일
To use 'surf' do this:
r = 1;
[theta,phi] = ndgrid(linspace(0,pi),linspace(0,2*pi));
X = r*cos(phi).*sin(theta);
Y = r*sin(phi).*sin(theta);
Z = r*cos(theta);
surf(X,Y,Z)
or if you just want circles, do this:
r = 1;
[theta,phi] = ndgrid(linspace(0,pi),linspace(0,2*pi));
X = r*cos(phi).*sin(theta);
Y = r*sin(phi).*sin(theta);
Z = r*cos(theta);
for k = 1:numel(theta)
plot3(X(k,:),Y(k,:),Z(k,:))
hold on
end
(Corrected)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by