2013-10-08 5 views
0

Я хотел бы найти две точки пересечения, когда линейная линия проходит через центр круга (x, y).MATLAB: найти точки пересечения с «решаем» [круг + линейное уравнение]

r = 13 radius 
x = 0 x-coordinate 
y = 7 y-coordinate 
k = 9 slope value(?) y=kx+m y=9x+m 

Итак, сначала я рисую круг с r = 13 и центром (0,7).

Мне интересно, можно ли построить круг в более легком режиме? Что-то вроде

(x−cx)^2 + (y −cy)^2 = r^2 
(x-0)^2 + (y-7) = 13^2 

Я попытался это

plot((x−cx)^2 + (y −cy)^2 = r^2) 

Это ничего не делать вообще, так что код должен быть неправильным.

Ну, тогда я рисую линейное уравнение, вычисляя

y=kx+m 
k=9 

линия идет Копание (0,7)

7=9*0+m 
m=7 
y=9x+7 

так, так как я новичок в MatLab он взял меня а на самом деле провести линию. Я не нашел никакой легкой функции для построения графика, поэтому я построил такую ​​строку:

Я взял некоторые случайные значения для x или y и вычислил некоторые координаты.

(0,7) 
(2,25) 
(-2,-11) 

plot([-2,2],[-11,25]) 

изображение Результат: http://i.imgur.com/ag6HJlm.jpg

Так что теперь мне просто нужно решить точки пересечения с функцией «решения». Так что я бы очень признателен за помощь!

наилучшими пожеланиями

+0

Зачем использовать решение? Почему бы просто не решить его аналитически? – Dan

+0

Доступен ли набор инструментов отображения? Если да, используйте linecirc() – lhcgeneva

+0

Дэн это школьная задача «Я должен» использовать функцию решения ... lhcgeneva Вы могли бы объяснить немного подробнее? Что мне делать с linecirc(), поэтому я могу решить его с помощью решения()? [xout, yout] = linecirc (9, intercpt, 0,7,13) – user2857820

ответ

0

Вот один подход к нему:

%Place your lines and figures on the grid 
linexypos = eye(100); 
shapexypos = flipud(eye(100)) ; 

% Guess where they come together 
intersection = filter2(ones(3),linexypos + shapexypos); 
[quality, loc] = max(intersection(:)) 

Обратите внимание, что вы должны угадать, как две линии с шириной в 1 пиксель не может иметь точно такое же расположение. (рассмотрите [1 0; 0 1] и [0 1;1 0], они пересекаются, но точно не перекрываются).

Если вы хотите, чтобы визуализировать ситуацию, попробуйте contour(intersection)

Смежные вопросы