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?
0 个评论
回答(1 个)
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!