Plot a family of circles in 3D

조회 수: 2 (최근 30일)
Snirisa  Gödel
Snirisa Gödel 2013년 10월 2일
댓글: Snirisa Gödel 2013년 10월 3일
I have the following code for plotting 100 circles in separate height planes where the radius increases from 1 to 100.
if true
for r=1:1:100
t=linspace(0,2*pi);
x=r*cos(t);
y=r*sin(t);
for h=100:100:10000
z = 100 * r * ones(1, length(t));
plot3(x,y,z);
if r == 1 && h == 100
hold on;
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
end
drawnow;
end
end
Like this:
[1]: http://i.stack.imgur.com/dsPX1.png
*Question*
Now I want to change the code in order for the radius to *decrease* from 100 to 1, i.e turn the cone upside down. So the code should probably read like this but i can't get it to work:
for r=100:-1:1
t=linspace(0,2*pi);
x=r*cos(t);
y=r*sin(t);
for h=100:100:10000
z = 100 * r * ones(1, length(t));
plot3(x,y,z);
if r == 100 && h == 100
hold on;
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
end
drawnow;
end
end

채택된 답변

Harsheel
Harsheel 2013년 10월 3일
편집: Harsheel 2013년 10월 3일
The height is controlled by 'z' and not 'h'. In the first case, when r=1, z= 100*1*k (where k=ones(1, length(t))). If you want to reverse the cone then, z should be 100*1*k when r=100. Which means:
z = 100 * (101-r) * ones(1, length(t));
  댓글 수: 1
Snirisa  Gödel
Snirisa Gödel 2013년 10월 3일
Thank you, I appreciate it.

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

추가 답변 (1개)

Youssef  Khmou
Youssef Khmou 2013년 10월 3일
Sniriza,
I agree with Harsheel, or you can simply add a minus to z :
z = -(100 * r * ones(1, length(t)));

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by