Draw sphere with slats
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
viet le
el 2 de Sept. de 2016
Comentada: Thorsten
el 2 de Sept. de 2016
I would like to draw a hemisphere with slats as attached figures. 12 identical slits created in hemisphere, and width slit and width slat are equal.
2 comentarios
Stephen23
el 2 de Sept. de 2016
Duplicate:
@viet le: please do not post duplicate questions. This actually makes it harder for us to help you, because it makes it hard for us to keep track of what information and explanations you have given, and also what answer and advice you have already been given.
If you want to add information to a question than please add comments to your original question.
Respuesta aceptada
Thorsten
el 2 de Sept. de 2016
Editada: Thorsten
el 2 de Sept. de 2016
function hemispherewithstripes
clf
Nstripes = 12;
stripecolor = 'r';
Nhemicircles = 2*Nstripes;
r = 1; % radius of half-sphere
Npoints = 100; % number of points along each hemicircle
angle = linspace(0, pi, Npoints);
% xyz coordinates of a single hemicircle
x = r*cos(angle) + 1;
y = zeros(size(angle));
z = r*sin(angle);
% rotate hemicirclec
%rotation angle:
theta = linspace(-pi/2, pi/2, Nhemicircles);
% xyz coordinates of rotated hemicircles; preallocate for speed
XYZ(Npoints, 3, Nstripes) = 0;
for i = 1:Nhemicircles
% rotation matrix along x-direction:
Rotx = [1 0 0;
0 cos(theta(i)) sin(theta(i));
0 -sin(theta(i)) cos(theta(i))];
XYZ(:,:,i) = [x(:) y(:) z(:)]*Rotx;
% uncomment to plot hemicircles
% plot3(XYZ(:,1,i), XYZ(:,2,i), XYZ(:,3,i), 'k'), hold on
end
hold on
% plot patch between every two hemicircles
for i=1:2:Nhemicircles
patch([XYZ(:,1,i)' flipud(XYZ(:,1,i+1))'],...
[XYZ(:,2,i)' flipud(XYZ(:,2,i+1))'],...
[XYZ(:,3,i)' flipud(XYZ(:,3,i+1))'],...
stripecolor, 'EdgeColor', stripecolor)
end
view(3) % set default 3D viewing axes
Más respuestas (0)
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!