Другие языки программирования и технологии
Как найти ближайшую точку на окружности к той, что вне окружности???
Дана окружность (х,у,R) и точка вне окружности (х,у). Как найти х и у ближайшей точки на окружности к той точке, которая лежит вне окружности. (я знаю про "провести прямую из центра к точке) Мне нужен или алгоритм или формулы...
Формула окружности с центром Хц; Уц, заданным в системе координат, и радиусом R : (Х - Хц) в квадрате + (У - Уц) в квадрате = R в квадрате
Формула прямой через через центр окружности ( Хц; Уц ) и точку вне окружности ( Х1 У1) : У = k*Х + b,
- где k = (У1 - Уц) / (Х1 - Хц)
- b найдём, подставляя в формулу прямой координаты одной из точек и найденное значение "k". Например возьмём ( Хц; Уц ), получим:
....Уц = k*Хц + b, отсюда b = Уц - k*Хц
- и теперь в уравнении прямой У = k*Х + b известны k и b
Так как прямая и окружность пересекаются, то точка пересечения принадлежит и прямой и окружности.
Поэтому можно взять У из уравнения прямой и заменить им У в уравнении окружности, получим:
( Х - Хц )в квадрате + ( ( k*Х + b ) - Уц )в квадрате = R в квадрате
В этом уравнении неизвестно только Х. После раскрытия скобок и группировки подобных членов уравнения получится обыкновенное квадратное уравнение вида:
А*Хв квадрате + В*Х + С = 0, где
... А = k в квадрате + 1
... В = ( - 2*Хц + 2*k*( b - Уц) )
... С = ( Хц в квадрате + ( b - Уц) в квадрате - R в квадрате )
При решении уравнения получится 2 значения Х, потому что данная прямая пересекает окружность в двух точках. Можно сделать чертёж, чтобы посмотреть, какое значение Х следует взять.
Дальше подставить Х в уравнение прямой линии, и найдём У.
Формула прямой через через центр окружности ( Хц; Уц ) и точку вне окружности ( Х1 У1) : У = k*Х + b,
- где k = (У1 - Уц) / (Х1 - Хц)
- b найдём, подставляя в формулу прямой координаты одной из точек и найденное значение "k". Например возьмём ( Хц; Уц ), получим:
....Уц = k*Хц + b, отсюда b = Уц - k*Хц
- и теперь в уравнении прямой У = k*Х + b известны k и b
Так как прямая и окружность пересекаются, то точка пересечения принадлежит и прямой и окружности.
Поэтому можно взять У из уравнения прямой и заменить им У в уравнении окружности, получим:
( Х - Хц )в квадрате + ( ( k*Х + b ) - Уц )в квадрате = R в квадрате
В этом уравнении неизвестно только Х. После раскрытия скобок и группировки подобных членов уравнения получится обыкновенное квадратное уравнение вида:
А*Хв квадрате + В*Х + С = 0, где
... А = k в квадрате + 1
... В = ( - 2*Хц + 2*k*( b - Уц) )
... С = ( Хц в квадрате + ( b - Уц) в квадрате - R в квадрате )
При решении уравнения получится 2 значения Х, потому что данная прямая пересекает окружность в двух точках. Можно сделать чертёж, чтобы посмотреть, какое значение Х следует взять.
Дальше подставить Х в уравнение прямой линии, и найдём У.
Че тут думать? Проведи через центр окружности и твою точку отрезок. Точка пересечения его с окружностью - искомая.
Ну, извини, я не сразу заметил, что "ты знаешь". Так это и есть алгоритм.
Тебе лет-то сколько? Ты что-нибудь слыхал об аналитической геометрии? Все формулы - оттуда.
Ну, извини, я не сразу заметил, что "ты знаешь". Так это и есть алгоритм.
Тебе лет-то сколько? Ты что-нибудь слыхал об аналитической геометрии? Все формулы - оттуда.
Ответ снял.
Исмат Самедов
Так мне нужны Х и У этой точки.
Корень из (Х. точкиКвадрат+У. точкиКвадрат) - РАдиус
Исмат Самедов
И что это?
Похожие вопросы
- Си# Найти седловые точки матрицы седловой точкой называется элемент, являющийся миним в строке и максим в столбце
- общую окружность охватывающую все точки
- Pascal ABC! Анимация движения точки в пределах окружности!
- adobe illustrator/ как повернуть объект относительно центра окружности
- Класс: Окружность, заданная радиусом и координатами центра. Нужно узнать будут ли пересекатся две заданных окружности.
- Как в кореле объекты расположить по окружности?
- Есть некоторые данные (синяя линяя) . Каким алгоритмом можно найти где линия меняется (красные точки)?
- Как определить точку внутри треугольника? Turbo Delphi
- Delphi7 - как создать линии с единой точкой старта?
- Треугольники, круги, точки и линии