Расстояние прямой до окружности
От: Flem1234  
Дата: 13.07.07 09:36
Оценка:
Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.
Re: Расстояние прямой до окружности
От: c_o_d  
Дата: 13.07.07 09:44
Оценка:
дык пощитай растояние от центра до прямой. Длину перпендикуляра. А потом сравни его с радиусом. вот тебе и как близко

Здравствуйте, Flem1234, Вы писали:

F>Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.
Вот так вот.
Re: Расстояние прямой до окружности
От: tinytjan  
Дата: 13.07.07 09:52
Оценка: 1 (1)
Здравствуйте, Flem1234, Вы писали:

F>Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.


Есть прямая y = ax + b. Коэффициенты можно вывести без особых затруднений
Если а == оо , т.е. прямая вертикальная то расстояние ( d ) определяется как разность коэффициента b (координата х точки прямой) и координаты х центра окружности.
Иначе

d = abs(y0 — a*x0 — b)/sqrt(1 + a^2)

Или

dy = y0 — a*x0 — b

d^2 = dy^2/(1 + a2)

Дальше сравниваешь с радиусом и делаешь че надо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Расстояние прямой до окружности
От: Socrat Россия  
Дата: 13.07.07 10:34
Оценка: 3 (1)
Здравствуйте, Flem1234, Вы писали:

F>Прямая задана 2мя точками. Как определить ее расстояние до центра окружности? Посчитал по школьным формулам, какие помнил, но что-то очень громоздко получается. Мне нужно определить пересекается ли прямая с окружностью и если пересекается, то как близко от центра проходит.


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

Пусть
(0,0) — одна из точек прямой
(x1,y1) — вторая точка прямой
(x2,y2) — центр окружности

Тогда расстояние от центра окружности до прямой:

D = |(x1y2 — x2y1)/sqrt(x1^2+y1^2)|
Re[2]: Расстояние прямой до окружности
От: Flem1234  
Дата: 13.07.07 11:12
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Пусть

S>(0,0) — одна из точек прямой
S>(x1,y1) — вторая точка прямой
S>(x2,y2) — центр окружности


S>D = |(x1y2 — x2y1)/sqrt(x1^2+y1^2)|


А что если прямая не проходит через центр координат, как изменится формула?
Re[3]: Расстояние прямой до окружности
От: Sealcon190 Соломоновы острова  
Дата: 13.07.07 12:02
Оценка: 1 (1)
Здравствуйте, 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)|
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.