How to draw an Arc in the direction you want? (with known radius, centre and angle)

36 次查看(过去 30 天)
I'm trying to draw an arc between 350º and 0º angles, but the point is that I would like to draw it in counter-clock wise. What is the general method of drawing an arc in matlab in the direction you want?
The code I have written is the following:
hold on
grid
axis equal
angini=350; %initial angle of the arc in degrees
angfin=0; %final angle of the arc in degrees
rangini=deg2rad(angini); %initial angle of the arc in radians
rangfin=deg2rad(angfin); %final angle of the arc in radians
centre=[0;0]; %centre of the arc
radius=10; %radius of the arc
teta = linspace(rangini,rangfin);
xco = centre(1)+radius*cos(teta); %x coordinates
yco = centre(2)+radius*sin(teta); % y coordinates
plot(xco,yco,'g') %plot the arc
And the result, as you can see, is the following:
It drew the arc in a clockwise direction, not in a counterclock one. What is the general method of drawing an arc in matlab in the direction that you like?

回答(1 个)

Steven Lord
Steven Lord 2020-11-9
Use an ending angle of 360 degrees rather than an angle of 0 degrees. You can skip the deg2rad calls by using the degree-based trig functions cosd and sind. I also chose to change some of the variable names to make them a bit more descriptive. With those names you could argue the comments are unnecessary.
hold on
grid
axis equal
angleInitial=350; %initial angle of the arc in degrees
angleFinal=360; %final angle of the arc in degrees
centre=[0;0]; %centre of the arc
radius=10; %radius of the arc
theta = linspace(angleInitial,angleFinal);
xcoords = centre(1)+radius*cosd(theta); %x coordinates
ycoords = centre(2)+radius*sind(theta); % y coordinates
plot(xcoords,ycoords,'g') %plot the arc
  1 个评论
ErikJon Pérez Mardaras
编辑:ErikJon Pérez Mardaras 2020-11-9
Thanks for the repply, but I am looking for a general answer for a general issue. Imagine that, instead of wanting to draw an arc from 350º to 0º(or 360º) I would like to draw an arc from 170º to 220º but in a clockwise direction instead of a counterclock one (which is what Matlab would do in this case).
As you can see in the following image, Matlab draws me that arc in a counterclock wise direction.
Is the same case as before. How I could draw arcs in the directions I want? Is there any way?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by