Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Координаты окружности   Найти похожие ветки 

 
LongIsland ©   (2003-01-04 14:03) [0]

Кто-нибудь знает, как определить координаты центра вписанной в треугольник окружности, если известны координаты его вершин? Как на зло ни одного спавочника под рукой:О(
ЗЫ: А лет пять назад такой вопрос у меня и не возник бы. Ну ФСЁ забыл:(


 
MBo ©   (2003-01-04 14:36) [1]

центр этой окружности есть пересечение биссектрис (достаточно двух)


 
LongIsland ©   (2003-01-04 14:39) [2]


> MBo © (04.01.03 14:36)

Это я, к счастью, еще не забыл:-) Меня интересует, как определить именно координаты центра


 
MBo ©   (2003-01-04 14:39) [3]

P.S. наверно, удобно для получения уравнения биссектрисы использовать тот факт, что она делит сторону треугольника на отрезки, пропорциональные двум другим сторонам. Сa/a=Cb/b


 
MBo ©   (2003-01-04 14:39) [4]

именно координаты центра
точка пересечения двух прямых - система лин. уравнений


 
LongIsland ©   (2003-01-04 14:59) [5]

Однако, я выкрутился проще:-)


 
Alx2 ©   (2003-01-04 15:07) [6]

>LongIsland © (04.01.03 14:39)

x1,y1
x2,y2
x3,y3 - Вершины.
x0,y0 - центр.

Имхо
y0=(L23*y1+L13*y2+L12*y3)/(L23+L13+L12)
x0=(L23*x1+L13*x2+L12*x3)/(L23+L13+L12)

Где
L23 - длина стороны (x2,y2) (x3,y3)
L13 - длина стороны (x1,y1) (x3,y3)
L12 - длина стороны (x1,y1) (x2,y2)

Посчитал навскидку. Может, где-то и налажал :)


 
LongIsland ©   (2003-01-04 15:22) [7]


> Alx2 © (04.01.03 15:07)

Налажал:-)


 
Alx2 ©   (2003-01-04 15:25) [8]

>LongIsland © (04.01.03 15:22)

Ну вот :(

Ну и фиг с ним... Рутинно перепроверять :)


 
LongIsland ©   (2003-01-04 15:36) [9]

Ладно, на досуге сделаю, сюда выложу.
То, чё надо уже сделал:-)


 
Alx2 ©   (2003-01-04 16:47) [10]

И все-таки я, скорее, не нагнал :)


 
LongIsland ©   (2003-01-04 22:05) [11]


> Alx2 © (04.01.03 16:47)
> И все-таки я, скорее, не нагнал :)

А я все-таки скорее проверил:-) Ладно, не важно:-)


 
Alx2 ©   (2003-01-05 07:48) [12]

>LongIsland © (04.01.03 22:05)
>А я все-таки скорее проверил:-) Ладно, не важно:-)

Та-а-а-к. Это уже дело принципа :))
Все-таки проверил и я.

Вот пример для проверки:

A,B,C : TPoint; - вершины треугольника

with Canvas do
begin
MoveTo(A.x, A.y); // Рисуем клятый треугольник
LineTo(B.X, B.Y);
LineTo(C.X, C.Y);
LineTo(A.x, A.y);

L12 := sqrt(sqr(A.X - B.X) + sqr(A.Y - B.Y)); // Находим длины сторон
L23 := sqrt(sqr(B.X - C.X) + sqr(B.Y - C.Y));
L13 := sqrt(sqr(C.X - A.X) + sqr(C.Y - A.Y));
y0 := (L23 * A.y + L13 * B.y + L12 * C.y) / (L23 + L13 + L12); // Находим координаты центра вписанной окружности
x0 := (L23 * A.x + L13 * B.x + L12 * C.x) / (L23 + L13 + L12);
R := (B.x*A.y+A.x*y0-A.y*x0-B.x*y0-B.y*A.x+B.y*x0)/sqrt(sqr(A.X-B.x)+sqr(A.Y-B.y)); // Находим радиус вписанной окружности
Ellipse(Round(x0-R),Round(y0-R),Round(x0+R),Round(y0+R)); // Рисуем вписанную окружность
end;



Все красиво рисуется :)
Так-что ты чего-то при проверке неправильно сделал.



Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
1-62525
patrol
2003-01-10 14:11
2003.01.20
версия exe-шника


7-62860
Andy BitOff
2002-11-05 20:02
2003.01.20
Состояние принтера


1-62640
alxx
2003-01-09 16:10
2003.01.20
Глюк ComboBox и Windows 2000 Server


14-62735
AndrewBee
2002-12-31 20:01
2003.01.20
Софт для быстрой разработки компонент


7-62867
AquaSun1
2002-10-31 07:39
2003.01.20
Основные характеристики