how to draw a plane?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
bsd
el 21 de Sept. de 2011
Comentada: Matt J
el 5 de Oct. de 2024
Hai,
I am working on optics. I have plotted a lens in matlab. The rays of light emerging out of the lens, after undergoing refraction in the lens, needs to be projected on a square plane in front of the lens. How is it possible to draw a plane in matlab? Looking forward to hearing from you soon.
BSD
0 comentarios
Respuesta aceptada
Walter Roberson
el 21 de Sept. de 2011
You can use patch() to draw a shape embedded in 3D.
7 comentarios
Walter Roberson
el 24 de Sept. de 2011
Yup, you will be wanting non-zero z for that. The basic call will be as I gave above, patch([0 0 1 1 0], [0 1 1 0 0], [0 0 0 0 0]), but you will want different coordinates. The first parameter is a list of the x coordinates, the second parameter is a list of the corresponding y coordinates, and the third parameter is a list of the corresponding z coordinates.
You will also want to create a patch() for each of the apertures. You can use the usual sin() vs cos() coordinates if your square is perpendicular to one of the axes. For example,
sides = 17;
radius = 3;
angles = linspace(0,2*pi,sides+1) .';
coords = [radius * sin(angles), zeros(size(angles)), radius * cos(angles)];
xoff = 5; yoff = 2.8; zoff=3.3;
patch(xoff + coords(:,1), yoff + coords(:,2), zoff + coords(:,3));
and to draw the next circle, just change the xoff, yoff, zoff, and repeat the patch() command.
Más respuestas (2)
Sean de Wolski
el 21 de Sept. de 2011
You could also use a surf or a slice
1 comentario
Walter Roberson
el 21 de Sept. de 2011
If your plane was along the z axis, then surf would not be able to handle it, as surf requires unique (x,y) for every z value.
Adam Danz
el 4 de Oct. de 2024
Starting in MATLAB R2024b, you can use constantplane to create a 2D plane in 3D axes. However, unlike surfaces and patches, the ConstantPlane will extend infinitely in all directions within the axis limits.
For example, to create a flat plane along the z axis at z=0,
constantplane('z',0)
grid on
Ver también
Categorías
Más información sobre Polygons 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!