Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Медианы треугольника


Автор: 6TITLIZ 1.2.2006, 16:43
Здравствуйте! smile

Известны координаты трёх точек (треугольник), нужно провести биссектрисы.
Как узнать координаты биссектрис? smile

Автор: allex 1.2.2006, 16:52
6TITLIZ
Координаты середины отрезка посчитать сумеете? Уравнение прямой, проходящей через две точки с известными координатами, написать сумеете?

Автор: MBo 1.2.2006, 16:55
точки A,B,C
Медиана из вершины A - отрезок из A в ((B.x+C.x)/2, (B.y+C.y)/2)

Автор: 6TITLIZ 1.2.2006, 16:58
Извините за ошибку! smile
С медианами проблем нет!
Проблемы с биссектрисами и высотами!

Автор: Illuminaty 1.2.2006, 17:11
если вектора A и B образуют стороны треугольника, то биссектриса, делющая угол между ними (A+B)*0.5

Автор: Illuminaty 1.2.2006, 17:29
BO - вектор, ортогональный к B
Высота, опущенная на B = BO*(1/|B|)*|A|*|sin(A,B)|
Удачи!

Автор: Akina 1.2.2006, 17:36
Биссектриса считается так:

Берем вершину. Берем векторы к остальным вершинам. берем единичные векторы этих направлений. Складываем векторно. Получаем вектор биссектрисы. Зная вектор, вершину и противосторону, считаем точку пересечения с противоположной стороной.

Автор: Illuminaty 1.2.2006, 17:42
Цитата(Akina @ 1.2.2006, 18:36 Найти цитируемый пост)

считаем точку пересечения с противоположной стороной
Ничего считать не надо, так как
Цитата(Illuminaty @ 1.2.2006, 18:11 Найти цитируемый пост)

сли вектора A и B образуют стороны треугольника, то биссектриса, делющая угол между ними (A+B)*0.5



Автор: Akina 1.2.2006, 17:53
Цитата(Illuminaty @ 1.2.2006, 18:42 Найти цитируемый пост)

Ничего считать не надо, так как
Цитата(Illuminaty @ 1.2.2006, 18:11 )

сли вектора A и B образуют стороны треугольника, то биссектриса, делющая угол между ними (A+B)*0.5

не-а... складывать надо не векторы сторон, а единичные векторы. А это работает только для равнобедренного треугольника.

Автор: 6TITLIZ 2.2.2006, 10:12
Большое спасибо! smile
smile Но что такое "ортогональный"?
И как найти точку пересечения векторов?

Автор: Illuminaty 2.2.2006, 10:26
A ортогональнен к B <=> скалярное произведение A на B = 0
(для вклидовой геометрии сие означает, что угол между ними = 90)
точку пересечения нужно искать прямых

Автор: 6TITLIZ 12.5.2006, 17:01
Помогите найти точку пересечения двух (ну трёх) векторов.
Очень надо. 

Автор: poor_yorik 12.5.2006, 19:07
Предлагаю такой вариант... Найти координаты точки F пересечения биссектриссы с противоположной стороной, а дальше уже просто будет.
 Пускай вершины треугольника A(x1,y1), B(x2,y2), C(x3,y3).
 Найдем коодинаты точки F(x0,y0) пересечения биссектриссы из точки А со стороной ВС .
 По свойству биссктриссы:
  AB/AC=BF/FC.
 Отсюда
  AB/AC=(y2-y0)/(y0-y3);
  AB/AC=(x2-x0)/(x0-x3);
  То есть
   x0=(AB*x3+AC*x2)/(AB+AC)
   y0=(AB*y3+AC*y2)/(AB+AC)
А отсюда легко найти координаты вектора биссектриссы.
  smile  

Автор: 6TITLIZ 12.5.2006, 20:24
poor_yorik,  smile 
 smile  

Автор: poor_yorik 13.5.2006, 00:15
 Ну то есть я тебе дал формулу, как вычислить точку пересечения бисссектриссы и стороны треугольника, на которую она опущена.
 А там дальше тебе будет вычислить все что тебе надо.
  x0=(AB*x3+AC*x2)/(AB+AC)
  y0=(AB*y3+AC*y2)/(AB+AC)

  AB и AC тут подразумевается длинны соответсвующих сторон.
 Вычислял я для биссектриссы опущеной из вершины A.
 
 x3,y3 - координаты вершины С,  x2,y2 -  вершины В.

 Вывел из свойства биссектриссы треугольника.   smile  Запутанно, но так получилось... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)