Изменения

Перейти к: навигация, поиск

Упрощение полигональной цепи

114 байт убрано, 13:10, 20 мая 2012
Реализация
===Реализация===
[[Файл:DistancePtoS.png‎|400px|right]]
Даны точка <tex>(x_0, y_0)O</tex> и отрезок, заданный точками <tex>(x_1, y_1)A</tex> и <tex>(x_2, y_2)B</tex>.
Введём обозначения:
*<tex>R_1</tex> {{---}} отрезок <tex>[(x_0, y_0)O; (x_1, y_1)A]</tex>*<tex>R_2</tex> {{---}} отрезок <tex>[(x_0, y_0)O; (x_2, y_2)B]</tex>*<tex>R_{12}</tex> {{---}} отрезок <tex>[(x_1, y_1)A; (x_2, y_2)B]</tex>
Если:
*<tex>|R_1| \ge \sqrt{|R_2|^2+|R_{12}|^2}</tex>, то ответ это <tex>|R_2|</tex>, так как угол между <tex>R_2</tex> и <tex>R_{12}</tex> при данном условии <tex> \ge 90^{\circ}</tex>
*<tex>|R_2| \ge \sqrt{|R_1|^2+|R_{12}|^2}</tex>, то ответ это <tex>|R_1|</tex>, так как угол между <tex>R_1</tex> и <tex>R_{12}</tex> при данном условии <tex> \ge 90^{\circ}</tex>
*Оба предыдущих условия ложны, то <tex>\operatorname{abs} (\frac{| \overrightarrow{R_{12}} \times \overrightarrow{R_1}|}{|\overrightarrow{R_{12}}|})</tex>, где <tex> \overrightarrow{R_{12}} = (x_2 B -x_1, y_2 - y_1)A</tex> и <tex> \overrightarrow{R_1} = (x_1 - x_0, y_1 A - y_0)O</tex>. Это следует из формул для площади параллелограмма через векторное произведение и через произведения основания на высоту
<br clear="all"/>
Анонимный участник

Навигация