在圆上绘制角度线并获得相交点
Draw angles lines over circle and get the intersecting points
我想在圆上绘制角度线(我在脚本中更改了角度)。我得到的情节线是 0 角度,为什么脚本没有向我显示所有角度,我该如何解决?
另外,请问如何计算交点?
脚本:
clc;
clear;
close all;
r=1000;
% based on :
nCircle = 1000;
t = linspace(0,2*pi,nCircle);
xCircle = 0+ r*sin(t);
yCircle = 0+ r*cos(t);
line(xCircle,yCircle );
axis equal;
hold on;
nAngles = 45;
inceasedNumber = 360/nAngles;
lineLength = r+50;
for angle = 0:359:inceasedNumber
xLine(1) = 0;
yLine(1) = 0;
xLine(2) = xLine(1) + lineLength * cosd(angle);
yLine(2) = yLine(1) + lineLength * sind(angle);
plot(xLine, yLine);
end
我认为您的 for
循环定义有误。步长必须出现在迭代开始和结束之间的中间:
for angle = 0:inceasedNumber:359
此外,MATLAB 使用弧度指定角度,因此 360° 等于 2pi,您必须相应地更改输入。
对于直线和圆的交点,我会在实现之前考虑几何形状;)
我想在圆上绘制角度线(我在脚本中更改了角度)。我得到的情节线是 0 角度,为什么脚本没有向我显示所有角度,我该如何解决? 另外,请问如何计算交点?
脚本:
clc;
clear;
close all;
r=1000;
% based on :
nCircle = 1000;
t = linspace(0,2*pi,nCircle);
xCircle = 0+ r*sin(t);
yCircle = 0+ r*cos(t);
line(xCircle,yCircle );
axis equal;
hold on;
nAngles = 45;
inceasedNumber = 360/nAngles;
lineLength = r+50;
for angle = 0:359:inceasedNumber
xLine(1) = 0;
yLine(1) = 0;
xLine(2) = xLine(1) + lineLength * cosd(angle);
yLine(2) = yLine(1) + lineLength * sind(angle);
plot(xLine, yLine);
end
我认为您的 for
循环定义有误。步长必须出现在迭代开始和结束之间的中间:
for angle = 0:inceasedNumber:359
此外,MATLAB 使用弧度指定角度,因此 360° 等于 2pi,您必须相应地更改输入。
对于直线和圆的交点,我会在实现之前考虑几何形状;)