| Математический форум Math Help Planet http://mathhelpplanet.com/ |
|
| Полигон, найти координату точки http://mathhelpplanet.com/viewtopic.php?f=33&t=21690 |
Страница 1 из 1 |
| Автор: | nerozero [ 25 янв 2013, 23:04 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
Li6-D Спасибо за ответ, делаю именно так, вот только застопорился на углах. в примере который я привел у двух перпендикулярных друг другу отрезков с осью OX получается один угол. Координаты прямых A(2,4), B(5,7), C(8,4). Единичный вектор: OX(0,0)(1,0) Ищем углы с осью и прямойAB и OX, BC и OX ![]() подставляем в формулу: [math]cos \varphi = \frac{ A1 \cdot A2+B1 \cdot B2 }{ \sqrt{A1^{2}+B1^{2} } \sqrt{A2^{2} +B2^{2} } }[/math] И получаем что угол между AB и OX = 45° и угол между BC и OX = 45° ??!?! Поправьте меня пожалуйста. |
|
| Автор: | vvvv [ 26 янв 2013, 04:46 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
Можно по-другому. По координатам заданных точек образуете вектора, направленные по сторонам многоугольника.Нормируете их.Складываете попарно и получаете вектор, направленный по биссектрисе соответствующего угла.Умножаете найденный вектор на постоянный множитель (чтобы получить нужное расстояние). Складываете, найденные вектора, с координатами заданных точек-получаете искомое. |
|
| Автор: | vvvv [ 26 янв 2013, 11:46 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
Вот пример для первой тройки точек.
|
|
| Автор: | erjoma [ 26 янв 2013, 13:36 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
nerozero писал(а): Li6-D Спасибо за ответ, делаю именно так, вот только застопорился на углах. в примере который я привел у двух перпендикулярных друг другу отрезков с осью OX получается один угол. Координаты прямых A(2,4), B(5,7), C(8,4). Единичный вектор: OX(0,0)(1,0) Ищем углы с осью и прямойAB и OX, BC и OX ![]() подставляем в формулу: [math]cos \varphi = \frac{ A1 \cdot A2+B1 \cdot B2 }{ \sqrt{A1^{2}+B1^{2} } \sqrt{A2^{2} +B2^{2} } }[/math] И получаем что угол между AB и OX = 45° и угол между BC и OX = 45° ??!?! Поправьте меня пожалуйста. Между двумя прямыми существует два угла. Сумма этих углов равна [math]{180^\circ }[/math].Вы нашли острые углы между прямыми AB и OX, BC и OX. Предложу другой способ нахождения угла. тангенс угла наклона биссектрисы [math]\tan \alpha = \frac{{\left| {BC} \right|{y_1} + \left| {AB} \right|{y_3} - \left( {\left| {BC} \right| + \left| {AB} \right|} \right){y_2}}}{{\left| {BC} \right|{y_1} + \left| {AB} \right|{y_3} - \left( {\left| {BC} \right| + \left| {AB} \right|} \right){y_2}}}[/math], [math]\alpha \in \left[ {0^\circ ,180^\circ } \right)[/math]. Вычислив [math]\alpha[/math], можно найти координаты точек [math]{P_1}\left( {{x_2} - d\cos \alpha ,{y_2} - d\sin \alpha } \right),{P_2}\left( {{x_2} + d\cos \alpha ,y + d\sin \alpha } \right)[/math] |
|
| Автор: | vvvv [ 26 янв 2013, 17:45 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
Когда два отрезка лежат на одной прямой, тогда просто поворачиваем вектор на 90 градусов.
|
|
| Автор: | erjoma [ 26 янв 2013, 17:49 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
erjoma писал(а): Предложу другой способ нахождения угла. тангенс угла наклона биссектрисы [math]\tan \alpha = \frac{{\left| {BC} \right|{y_1} + \left| {AB} \right|{y_3} - \left( {\left| {BC} \right| + \left| {AB} \right|} \right){y_2}}}{{\left| {BC} \right|{y_1} + \left| {AB} \right|{y_3} - \left( {\left| {BC} \right| + \left| {AB} \right|} \right){y_2}}}[/math], [math]\alpha \in \left[ {0^\circ ,180^\circ } \right)[/math]. Вычислив [math]\alpha[/math], можно найти координаты точек [math]{P_1}\left( {{x_2} - d\cos \alpha ,{y_2} - d\sin \alpha } \right),{P_2}\left( {{x_2} + d\cos \alpha ,y + d\sin \alpha } \right)[/math] [math]\tan \alpha = \frac{{\left| {BC} \right|{y_1} + \left| {AB} \right|{y_3} - \left( {\left| {BC} \right| + \left| {AB} \right|} \right){y_2}}}{{\left| {BC} \right|{x_1} + \left| {AB} \right|{x_3} - \left( {\left| {BC} \right| + \left| {AB} \right|} \right){x_2}}}[/math] |
|
| Автор: | nerozero [ 26 янв 2013, 18:20 ] |
| Заголовок сообщения: | Re: Полигон, найти координату точки |
Всем большое спасибо! Решил так, использую вышеупомянутую формулу для нахождения косинуса угла, а дальше в зависимости от значений x2-x1<0 и y2-y1<0 прибавляю/отнимаю Pi, 4 возможных варианта. Тут незаметно всплыла схожая задача, если дозволят модераторы выскажусь в этой ветке. ![]() Потребовалось найти координаты центра вписанной в угол окружности. Очевидно что центр окружности будет лежать на той-же биссектрисе. Решение оказалось (как мне пока кажется решением) тривиально простым, найти уравнения пары параллельных прямых для AB и BC удаленных на расстояние r, далее найти координаты их пересечения. Решение: Исходя из формулы расстояния (+/- тут указывают на первую либо вторую параллельную прямую): [math]\pm d= \frac{ Ax+By+C }{ \sqrt{A^{2}+B^{2} } }[/math] Получим уравнение параллельной прямой удаленной на расстояние r: [math]Ax+By+C \pm r\sqrt{A^{2}+B^{2} }=0[/math] Очевидно что изменяется коэффициент C, как собственно и должно быть. Координаты точки пересечения прямых: [math]X= \frac{ C2B1-C1B2 }{ A1B2-A2B1 }[/math] [math]Y= \frac{ C2A2-C1A1 }{ A1B2-A2B1 }[/math] Подставляем: [math]X= \frac{ (C2 \pm r\sqrt{A2^{2}+B2^{2} })B1 - (C1 \pm r\sqrt{A1^{2}+B1^{2} })B2}{ A1B2 - A2B1 }[/math] [math]Y= \frac{ (C1 \pm r\sqrt{A1^{2}+B1^{2} })A2 - (C2 \pm r\sqrt{A2^{2}+B2^{2} })A1}{ A1B2 - A2B1 }[/math] Получаем x1,y1 пр при положительном r и x2,y2 - при отрицательном Если кому понадобиться ... |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|