Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.
дык пощитай растояние от центра до прямой. Длину перпендикуляра. А потом сравни его с радиусом. вот тебе и как близко
Здравствуйте, Flem1234, Вы писали:
F>Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.
Здравствуйте, Flem1234, Вы писали:
F>Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.
Есть прямая y = ax + b. Коэффициенты можно вывести без особых затруднений
Если а == оо , т.е. прямая вертикальная то расстояние ( d ) определяется как разность коэффициента b (координата х точки прямой) и координаты х центра окружности.
Иначе
Здравствуйте, Flem1234, Вы писали:
F>Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.
В свое время я тоже решал эту задачу, и оказалось, что через векторное произведение проще всего:
Пусть
(0,0) — одна из точек прямой
(x1,y1) — вторая точка прямой
(x2,y2) — центр окружности
Здравствуйте, Flem1234, Вы писали:
F>Здравствуйте, Socrat, Вы писали:
S>>Пусть S>>(0,0) — одна из точек прямой S>>(x1,y1) — вторая точка прямой S>>(x2,y2) — центр окружности
S>>D = |(x1y2 — x2y1)/sqrt(x1^2+y1^2)|
F>А что если прямая не проходит через центр координат, как изменится формула?
Элементарно. Пусть (x,y) — первая точка, тогда
D = |((x1-x)(y2-y) — (x2-x)(y1-y))/sqrt((x1-x)^2 + (y1-y)^2)|