how to draw a plane?
12 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Walter Roberson
2011 年 9 月 21 日
You can use patch() to draw a shape embedded in 3D.
7 件のコメント
Walter Roberson
2011 年 9 月 24 日
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.
その他の回答 (2 件)
Sean de Wolski
2011 年 9 月 21 日
You could also use a surf or a slice
1 件のコメント
Walter Roberson
2011 年 9 月 21 日
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
2024 年 10 月 4 日
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
参考
カテゴリ
Help Center および File Exchange で Polygons についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!