Creating multiple cylinders in different coordinates

조회 수: 11 (최근 30일)
sevgi
sevgi 2024년 2월 27일
댓글: Star Strider 2024년 3월 2일
I want to create cylinders with similar diameters and heights at various locations in x,y coordinates.
Could you help me
Thank you.

채택된 답변

Star Strider
Star Strider 2024년 2월 27일
편집: Star Strider 2024년 3월 1일
Perhaps this —
[X,Y,Z] = cylinder(1,20);
cm = colormap(turbo(10));
figure
hold on
for k = 1:10
ofst = randi(9,2);
surf(X+2*ofst(1), Y+2*ofst(2), Z*5, 'FaceColor',cm(k,:))
end
hold off
grid on
axis('equal')
view(-27,30)
I set them to be different colours. If you wnat them all the same colour, just use:
surf(X+2*ofst(1), Y+2*ofst(2), Z*5)
instead.
EDIT — (1 Mar 2024 at 19:30)
In response to the rpoated request —
[X,Y,Z] = cylinder(9,20);
ofst = [0 0; 20 0; 10 20];
a = linspace(0,2*pi);
xc = 9*cos(a);
yc = 9*sin(a);
figure
hold on
for k = 1:size(ofst,1)
surf(X+ofst(k,1), Y+ofst(k,2), Z*65, 'FaceColor','g', 'EdgeColor','g', 'FaceAlpha',0.25)
plot3(xc+ofst(k,1), yc+ofst(k,2), 65*ones(size(a)), '-k', 'LineWidth',1)
plot3(xc+ofst(k,1), yc+ofst(k,2), 0*ones(size(a)), '-k', 'LineWidth',1)
end
hold off
grid on
axis('equal')
view(-27,30)
.
  댓글 수: 2
sevgi
sevgi 2024년 3월 2일
thank you for your interest.
Star Strider
Star Strider 2024년 3월 2일
As always, my pleasure!

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

추가 답변 (2개)

Aquatris
Aquatris 2024년 2월 27일
Not sure how you want them to look or what you need but here is one simple way
[X,Y,Z] = cylinder(2); % create X,Y,Z coordinates for a cyclinder with a radius 2
% define center positions
cycPos1 = [1 1 1];
cycPos2 = [4 4 4];
cycPos3 = [-3 -3 -3];
figure(1)
plotCyclinder(cycPos1,X,Y,Z)
plotCyclinder(cycPos2,X,Y,Z)
plotCyclinder(cycPos3,X,Y,Z)
% function that draws the cyclinders
function plotCyclinder(pos,X,Y,Z)
surf(pos(1)+X,pos(2)+Y,pos(3)+Z)
hold on
end
  댓글 수: 1
sevgi
sevgi 2024년 3월 1일
I want to create three solid cylinder volumes with a radius of 9 mm and a height of 65 mm at positions [0 0 0], [20 0 0], [10 20 0].
After that, I want to examine the thermal situation in the case of natural convection by defining temperature to the surface. I want to make an unsteady solution.
Could you help me.
Thank you for your interest.

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


Matt J
Matt J 2024년 3월 1일
편집: Matt J 2024년 3월 1일
Using cylindricalFit() from this FEX download
centers={[0 0 0],[20 0 0],[10 20 0]};
for i=1:3
plot(cylindricalFit.groundtruth([],centers{i},9,65,[0,90]));hold on
end; hold off

카테고리

Help CenterFile Exchange에서 Green에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by