Creating multiple cylinders in different coordinates
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
sevgi
el 27 de Feb. de 2024
Comentada: Star Strider
el 2 de Mzo. de 2024
I want to create cylinders with similar diameters and heights at various locations in x,y coordinates.
Could you help me
Thank you.
0 comentarios
Respuesta aceptada
Star Strider
el 27 de Feb. de 2024
Editada: Star Strider
el 1 de Mzo. de 2024
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 comentarios
Más respuestas (2)
Aquatris
el 27 de Feb. de 2024
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
Ver también
Categorías
Más información sobre Surface and Mesh Plots 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!