2D Circle 3D Plot.

280 ビュー (過去 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 件のコメント
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

Community Treasure Hunt

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

Start Hunting!

Translated by