Как определить, пересекается ли отрезок вертикальной линии с окружностью? - PullRequest
0 голосов
/ 04 октября 2010

Это домашнее задание по программированию, о котором я не сомневаюсь в том, чтобы сделать это сам, однако я довольно застрял в его геометрии.Мне нужно иметь возможность определить точную точку пересечения, учитывая центр и радиус круга и две конечные точки отрезка вертикальной линии, и поскольку геометрия не является моей сильной стороной, я надеялся на некоторую помощь (даже указатели справаруководство будет оценено!)

Возможно, это не лучшее место, чтобы задать такой вопрос, но я не совсем уверен, где еще искать помощь, мои извинения, если это противоречит правилам или что-то в этом роде.

edit:

Мои извинения, у меня действительно возникают проблемы с определением точек пересечения (и если есть одно или два пересечения). Я пробовал каждое данное решениеи они прекрасно работают, чтобы определить, есть ли пересечение или нет, но моя проблема все еще сохраняется, когда я неправильно сформулировал свой вопрос.Если кто-то может помочь с этим, это будет высоко ценится!

Ответы [ 3 ]

1 голос
/ 04 октября 2010

Если C = (x0, y0) - центр, r - радиус, а k - абсцисса линии, то y = y0 +/- sqrt (r ^ 2- (k-x0) ^ 2),но пересечения нет, если r

1 голос
/ 04 октября 2010

Попробуйте http://mathworld.wolfram.com/Circle-LineIntersection.html, это достаточно хорошо охватывает аспект вашей проблемы.

0 голосов
/ 04 октября 2010

используя центр [x, y] круга, найдите расстояние этой конкретной линии от центра. см. теперь, если это расстояние> радиус круга => линия не будет пересекаться. в противном случае это будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...