2D Circle 3D Plot.

54 ビュー (過去 30 日間)
reza
reza 2013 年 12 月 31 日
Hello, How can i draw a circle in a 3d plot? thanks,

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 12 月 31 日
編集済み: Azzi Abdelmalek 2013 年 12 月 31 日
r=1
teta=-pi:0.01:pi
x=r*cos(teta);
y=r*sin(teta)
plot3(x,y,zeros(1,numel(x)))
  6 件のコメント
Priodyuti Pradhan
Priodyuti Pradhan 2020 年 11 月 2 日
Thanks for sharing!
Tong Zhao
Tong Zhao 2021 年 9 月 13 日
編集済み: Tong Zhao 2021 年 9 月 13 日
The next question would be, how to draw a filled circle in 3D, parallel to say, x-y plane.
OK. I found an answer using patch at this thread.

サインインしてコメントする。

その他の回答 (2 件)

Image Analyst
Image Analyst 2021 年 9 月 13 日
Try this:
ellipsoid(0,-0.5,0.5,6,3.25,0.01)
zlim([0,1]);

Aaron T. Becker's Robot Swarm Lab
Aaron T. Becker's Robot Swarm Lab 2022 年 3 月 14 日
%A circle in 3D is parameterized by six numbers: two for the orientation of its unit normal vector, one for the radius, and three for the circle center.
function drawCircle(rad,pos,n,color)
%https://demonstrations.wolfram.com/ParametricEquationOfACircleIn3D/
%draws a 3D circle at position pos with radius rad, normal to the
%circle n, and color color.
phi = atan2(n(2),n(1)); %azimuth angle, in [-pi, pi]
theta = atan2(sqrt(n(1)^2 + n(2)^2) ,n(3));% zenith angle, in [0,pi]
t = 0:pi/32:2*pi;
x = pos(1)- rad*( cos(t)*sin(phi) + sin(t)*cos(theta)*cos(phi) );
y = pos(2)+ rad*( cos(t)*cos(phi) - sin(t)*cos(theta)*sin(phi) );
z = pos(3)+ rad*sin(t)*sin(theta);
plot3(x,y,z,color)
% then call the function as
pos = rand(3,1);rad = 1;R = eye(3);
drawCircle(rad,pos,R(:,1),'r')
hold on
drawCircle(rad,pos,R(:,2),'g')
drawCircle(rad,pos,R(:,3),'b')
axis equal

カテゴリ

Help Center および File ExchangeAxis Labels についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by