Найти точку касательной на круге?

Не идеальный, но Вы могли изменить идентификатор и название текстового поля каждый раз, когда Вы представляете его - необходимо было бы отследить его сторона сервера также, таким образом, Вы могли вывести данные.

Не уверенный, если это будет работать или нет, была просто мысль.

13
задан Argalatyr 31 August 2009 в 11:38
поделиться

5 ответов

Для прямой с первой конечной точкой P (x1, y1) другая конечная точка неизвестна, пересечься с окружностью, которая находится в начале координат с радиусом R только в одной точке (касательной) T (x2 , y2). Кто-нибудь знает, как понять точку T?

Некоторые другие решения кажутся немного излишними. Я думаю, что самый простой способ - просто заметить, что это прямоугольный треугольник с вершинами P, T и O (начало координат). Угловой ВОМ является прямым углом, потому что касательная всегда находится под прямым углом к ​​радиусу.

Вы знаете длину TO , потому что она имеет длину r и имеет вершина в начале координат; вы знаете OP , потому что знаете, где находятся O и P . Учитывая две стороны прямоугольного треугольника, легко определить длину и направление третьей стороны. Это домашнее задание,

38
ответ дан 1 December 2019 в 17:14
поделиться

Возьмем R в качестве радиуса окружности и D расстояние от внешней точки до центра окружности так, чтобы D > R .

Линия касания составляет угол \ alpha с линией, соединяющей внешнюю точку и центр, где

\alpha = arcsin(R/D)

Линия, соединяющая внешнюю точку ( P ), а центр ( C ) составляет угол с горизонталью

\beta = arctan((C_y - P_y)/(C_x - P_x))

, что дает вам угол касательной линии с горизонталью как

\theta = \beta +/- \alpha

Обратите внимание на неоднозначность.

Длина касательного сегмента составляет

L = sqrt(D^2 - R^2)

, и это все, что вам нужно.

9
ответ дан 1 December 2019 в 17:14
поделиться

Другое решение; менее элегантен, чем dmindreader`s, но, возможно, проще для понимания:

Вы знаете, что точка T находится на окружности, а линия OT перпендикулярна прямой ] PT

, который дает вам

abs(O - T) = R
dotProduct(O - T, P - T) = 0
0
ответ дан 1 December 2019 в 17:14
поделиться

Используйте координаты x, y пересекающихся уравнений (один из круга и один из прямых). В этом и суть.

Если у вас есть только одна конечная точка, из которой можно провести линию, вы получите две разные точки, так как будут две разные касательные линии, одна вверх и одна вниз.

1
ответ дан 1 December 2019 в 17:14
поделиться

Для меня не очевидно, что это домашнее задание, но мне нравится интуиция, что прямоугольный треугольник определен. Тем не менее, с этим решением будет некоторая алгебра.

Другой подход, который кажется жизнеспособным, - это просто определить проблему как решение двух уравнений с двумя неизвестными. То есть уравнение окружности с центром в точке (0,0) и радиусом R имеет вид

x^2 + y^2 = R^2

Уравнение прямой, проходящей через точку (xt, yt) с (неизвестным) наклоном S, равно

(y - yt) = S*(x - xt)

Решите систему двух уравнений относительно точки пересечения. В зависимости от значения S у этой пары уравнений будет ноль, одно или два решения. Также окажется, что существует два значения S, поэтому решение уникально. Найдите те два значения S, которые делают решение уникальным, затем восстановите точку пересечения (xt, yt). Я выиграл' Я подробно рассмотрю фактическое решение, если это домашнее задание, но эта часть - тривиальная алгебра.

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

Недостатком этого подхода является то, что не работает из-за особенности для НЕКОТОРЫХ проблем. То есть, если линия с наклоном S вертикальна, то S не определено. Другие подходы, основанные на простых расстояниях и теореме Пифагора, устойчивы к этому событию.

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

Недостатком этого подхода является то, что не работает из-за особенности для НЕКОТОРЫХ проблем. То есть, если линия с наклоном S вертикальна, то S не определено. Другие подходы, основанные на простых расстояниях и теореме Пифагора, устойчивы к этому событию.

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

Недостатком этого подхода является то, что не работает из-за особенности для НЕКОТОРЫХ проблем. То есть, если линия с наклоном S вертикальна, то S не определено. Другие подходы, основанные на простых расстояниях и теореме Пифагора, устойчивы к этому событию.

Недостатком этого подхода является то, что он не работает из-за особенности для НЕКОТОРЫХ проблем. То есть, если линия с наклоном S вертикальна, то S не определено. Другие подходы, основанные на простых расстояниях и теореме Пифагора, устойчивы к этому событию.

Недостатком этого подхода является то, что он не работает из-за особенности для НЕКОТОРЫХ проблем. То есть, если линия с наклоном S вертикальна, то S не определено. Другие подходы, основанные на простых расстояниях и теореме Пифагора, устойчивы к этому событию.

2
ответ дан 1 December 2019 в 17:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: