Нарисуйте линии углов по кругу и получите точки пересечения - PullRequest
0 голосов
/ 03 июля 2018

Я хочу нарисовать угловые линии по кругу (я изменяю углы в сценарии). Линия сюжета, которую я получаю, имеет угол 0, почему сценарий не показывает мне их все, и как я могу это исправить? Кроме того, как я могу рассчитать точки пересечения?

Сценарий:

clc;
clear;
close all;

r=1000;

% based on : https://stackoverflow.com/questions/29194004/how-to-plot-a-circle-in-matlab
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

1 Ответ

0 голосов
/ 03 июля 2018

Я думаю, что есть ошибка в определении вашего for цикла. Размер шага должен находиться в середине между началом и концом итерации:

for angle = 0:inceasedNumber:359

Кроме того, MATLAB использует радианы для задания угла, следовательно, 360 ° равняется 2pi, и вы должны соответствующим образом изменить свои входные данные.

Для пересечения линий и круга я бы рассмотрел геометрию до реализации;)

...