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

Вниз

Треугольник и центр   Найти похожие ветки 

 
ЧупаЧупс   (2004-05-02 20:29) [0]

Есть треугольник, известны координаты вершин, как узнать координату центра треугольника?


 
Vit@ly ©   (2004-05-02 20:36) [1]

Смотря, что назвать центром?
- цетр тяжести
- центр вписанной окружности
- центр описанной окружности
и т.д. и т.п.


 
ЧупаЧупс   (2004-05-02 20:41) [2]

вписаной и описаной


 
Jack128 ©   (2004-05-02 20:43) [3]

Вообще учебник геометрии класс так за 8 может помочь в твокей проблеме, не говоря уже о Яндексе и тому подобных ;-)


 
mfender ©   (2004-05-02 20:55) [4]

Трэбуется провести хорды (кажись так они называются - пардон, в математике не силен) от вершин. Точка их пересечения будет-таки центром.


 
Jack128 ©   (2004-05-02 20:59) [5]


> Трэбуется провести хорды
хорда - отрезок, соединяющий две точки на окружности, то что ты имеешь в ввиду называется медианами(отрезок. соединяющий вершину и центр противоположной стороны), но точка пересечения медиан - это

> - цетр тяжести
, автору другое нужно..


 
Телипат проснулся на мгновение   (2004-05-02 21:04) [6]

Тогда точка пересечения биссектрисс


 
SergP ©   (2004-05-02 21:10) [7]

>ЧупаЧупс   (02.05.04 20:41)
>вписаной и описаной

Центры вписанной и обписаной окружностей - это разные вещи. Определись конкретнее что тебе нужно...


 
Юрий Зотов ©   (2004-05-02 21:20) [8]

> Определись конкретнее что тебе нужно...

Очередной развод затеять ему нужно, неужели непонятно? Еще один умник выискался, блин...


 
Romkin ©   (2004-05-02 21:25) [9]

Центр описанной окружности лежит на пересечении серединных перпендикуляров к сторонам (следует из теоремы, что радиус окружности перпендикулярен ее хорде и делит ее пополам).
А центр вписанной - на пересечении биссектрис, это сложнее. (Опять же, следует из теоремы о вписанном угле, он равен половине центрального, или половине дуги, на которую опирается).
Все это есть в школьном учебнике геометрии. Другое дело, что геометрия там весьма однобоко описана, и аналитики практически нет. Например, как не построить, а вычислить срединный перпендикуляр к отрезку, там не написано.
Но интернет-то есть :) И найти там требуемое очень легко, например здесь http://algolist.manual.ru/maths/geom/index.php
А остальное - на гугле :))


 
SergP ©   (2004-05-02 21:38) [10]

>Например, как не построить, а вычислить срединный перпендикуляр к
>отрезку, там не написано.

А что значит вычислить?
если найти уравнение прямой которая будет являться серединным перпендикуляром, то можно и подумать вручную:

Получаем:

(X-X1)^2+(Y-Y1)^2=(X-X2)^2+(Y-Y2)^2

где x1,y1 - координаты одного конца отрезка, а x2,y2 - другого


 
Romkin ©   (2004-05-02 21:47) [11]

SergP ©   (02.05.04 21:38) [10] Ну-ну, ты это школьнику скажи. Он просто уравнение это не поймет :) А ведь еще пересечение искать надо.
PS. Кстати, верно ли написано - я навскидку сказать не могу :(


 
SergP ©   (2004-05-02 21:55) [12]

>Romkin ©   (02.05.04 21:47)

>PS. Кстати, верно ли написано - я навскидку сказать не могу :(

элементарно.. если рассматривать что-то в пределах плоскости, то прямая - это совокупность точек равноудаленных от двух других, которые и являются концами отрезка, верединным перпендикуляром к которому и будет являтся наша прямая.

Так что мое уравнение очевидно. (я приравниваю друг к другу оба расстояния)
кстати не нужно пугаться квадратов. Если внимательно посмотреть, то окажется что это простое линейное уравнение.

А найти пересечение:
решаем систему:
(X-X1)^2+(Y-Y1)^2=(X-X2)^2+(Y-Y2)^2
(X-X1)^2+(Y-Y1)^2=(X-X3)^2+(Y-Y3)^2

и никаких проблем...


 
SergP ©   (2004-05-02 21:59) [13]

>(я приравниваю друг к другу оба расстояния)

Немного ошибся. Вернее квадраты расстояний...


 
Romkin ©   (2004-05-02 22:10) [14]

То, что линейное - это видно :))
А мой PS вызван ассоциацией с анекдотом:
Профессор читает лекцию по математике. Выписывает на доске длиннющую, совершенно необозримую формулу и заявив: "Отсюда с очевидностью следует..." выписывает еще более громоздкую формулу. На минуту задумывается, потом, извинившись, выходит из аудитории. Примерно через полчаса возвращается и, небрежно бросив на кафедру кипу исписанной бумаги, заявляет: "Да, это действительно очевидно" и продолжает лекцию.


 
default ©   (2004-05-02 22:12) [15]

Romkin ©   (02.05.04 21:47) [11]
у меня такое получилось
y=((x1-x2)/(y2-y1))*x+((y1+y2)/2)-(x1^2-x2^2)/(y2-y1)


 
SergP ©   (2004-05-02 22:28) [16]

>default ©   (02.05.04 22:12)
>Romkin ©   (02.05.04 21:47) [11]
>у меня такое получилось
>y=((x1-x2)/(y2-y1))*x+((y1+y2)/2)-(x1^2-x2^2)/(y2-y1)

Ну правильно... Преобразовываем
(X-X1)^2+(Y-Y1)^2=(X-X2)^2+(Y-Y2)^2
и получим то что у тебя...

>А мой PS вызван ассоциацией с анекдотом:

Моя запись этого уравнения должна понятно отображать геометрический смысл серединного перпендикуляра. Так что анекдот тут не совсем к месту..., так как это действительно очевидно...


 
Romkin ©   (2004-05-02 22:42) [17]

SergP ©   (02.05.04 22:28) [16] Ж-) К месту. То, что очевидно для тебя, необязательно очевидно для другого ;)
default ©   (02.05.04 22:12) [15] И хорошо, что получилось. Вот только маленькое примечание: программа - не человек, и написать формулу - полдела. Например, программа должна найти центр, например, для треугольника (0,0), (2,0), (0,1). А мне кажется, что формула в виде y=f(x) здесь не слишком удобно, ибо может выродиться....
Могу сказать только одно: уравнения перпендикуляров здесь удобнее
записывать в каноническом виде, Ax + By = -C например. При этом координаты центра описанной окружности получаются решением системы из двух уравнений. И, очевидно (!), в функции можно, сделав преобразования, записать две формулы вида Xr = f(X1,Y1,X2,Y2,X3,Y3) Yr = f(X1,Y1,X2,Y2,X3,Y3). Думаю, обозначения понятны.
Проверка нужна одна: являются ли введенные точки треугольником (не лежат на одной прямой).
Вот только... Все, что написано, выходит за рамки школьной программы, я не думаю, что ее расширили, с тех пор как я учился.


 
Romkin ©   (2004-05-02 22:50) [18]

SergP Так вот, я хотел спросить, так ли уж очевидно, что хорошая функция нахождения центра описанной окружности должна выглядеть примерно так:

function OuterCircleCenter(Point1, Point2, Point3: TPoint): TPoint;
begin
 CheckTriangle(Point1, Point2, Point3);
 Result.X := {Длинная формула};
 Result.Y := {Еще одна длинная формула};
end;

Для меня это очевидно, но мне почему-то кажется, что найдется много программистов, у которых она будет выглядеть иначе ;)
Так же и с математикой: "Моя запись этого уравнения должна понятно отображать геометрический смысл серединного перпендикуляра." Увы, я бы долго и нудно выводил ЭТО через "уравнение перпендикуляра  к данной прямой, проходящего через данную точку" :)))


 
SergP ©   (2004-05-02 22:58) [19]

Romkin ©   (02.05.04 22:50)

Это уже не очевидно. По крайней мере не совсем очевидно.

Но ведь я сказал что серединный перпендикуляр - это совокупность точек равноудаленных от обоих концов отрезка.
Т.е. Расстояние между точками (x,y) и (x1,y1) равно расстоянию между точками (x,y) и (x2,y2). Где x,y координаты любой точки искомой прямой.

вот и получаем (приравнивая квадраты обоих расстояний)

(X-X1)^2+(Y-Y1)^2=(X-X2)^2+(Y-Y2)^2

Если это не очевидно, то к чему тогда можно применить термин "очевидно" ?


 
SergP ©   (2004-05-02 23:01) [20]

>Увы, я бы долго и нудно выводил ЭТО через "уравнение перпендикуляра  к данной прямой, проходящего через данную точку" :)))

В таком случае действительно было бы не очевидно. Но зачем все усложнять?


 
default ©   (2004-05-02 23:43) [21]

Romkin ©   (02.05.04 22:42) [17]
"Проверка нужна одна: являются ли введенные точки треугольником (не лежат на одной прямой)."
нужно чтобы сумма длин любых двух сторон была больше длины оставшейся стороны(Ваше условие входит в это)


 
SergP ©   (2004-05-02 23:58) [22]

default ©   (02.05.04 23:43)

Если определитель:
|  x1  y1  1  |
|  x2  y2  1  |
|  x3  y3  1  |

не равен нулю, то это треугольник.

На этот раз не буду говорить что это очевидно, а то не поверят... :-)))


 
SergP ©   (2004-05-03 00:03) [23]

Кстати заодно можно найти :
|  z1  y1  1  |
|  z2  y2  1  |
|  z3  y3  1  |

и

|  x1  z1  1  |
|  x2  z2  1  |
|  x3  z3  1  |

где Zn=(Xn^2+Yn^2)/2

Тогда сразу найдем и координаты центра описанной окружности.

X=O1/O
Y=O2/O

Где O - определитель вычисленный в SergP ©   (02.05.04 23:58)
А O1 и O2 соответственно первый и второй в этом посте.


 
SergP ©   (2004-05-03 00:12) [24]

z1:=(x1*x1+y1*y1)/2;
z2:=(x2*x2+y2*y2)/2;
z3:=(x3*x3+y3*y3)/2;
op := x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2);
op1:= z1*(y2-y3)+z2*(y3-y1)+z3*(y1-y2);
op2:= x1*(z2-z3)+x2*(z3-z1)+x3*(z1-z2);
Теперь если op=0 то наша фигня - не треугольник
иначе

x:=op1/op;
y:=op2/op;


 
Romkin ©   (2004-05-03 15:43) [25]

Великолепно :)))
А для вписанной окружности?
Лемма: суммарный вектор для двух одинаковой длины идет, очевидно,  по биссектрисе ;)


 
RealRascal ©   (2004-05-03 16:54) [26]

лень все полностью читать, так что возможно не в тему.

xc:=(x1+x2+x3)/3
yc:=(y1+y2+y3)/3
zc:=(z1+z2+z3)/3

Я не помню, какой именно это центр, но точно один из центров :)


 
SergP ©   (2004-05-03 18:04) [27]

>Romkin ©   (03.05.04 15:43)
>Великолепно :)))
>А для вписанной окружности?

Только что прочитал пост и решил попробовать. К сожалению ход получающегося у меня решения мне не очень нравится... (как-то некрасиво что-ли). а я не люблю некрасивые решения...

>Лемма: суммарный вектор для двух одинаковой длины идет, очевидно,  по
>биссектрисе ;)

Ну это очевидней очевидного... Так что смайлик в конце не обязательно было ставить...


 
SergP ©   (2004-05-03 18:12) [28]

>RealRascal ©   (03.05.04 16:54)
>лень все полностью читать, так что возможно не в тему.

>xc:=(x1+x2+x3)/3
>yc:=(y1+y2+y3)/3
>zc:=(z1+z2+z3)/3

>Я не помню, какой именно это центр, но точно один из центров :)

ИМХО это точка пересечения медиан


 
Vit@ly ©   (2004-05-03 18:14) [29]

Ну чо мы испражняемся. Автор не появляется с:
ЧупаЧупс   (02.05.04 20:41) [2]
Просьба к модераторам - закрыть эту ветку, тем более, что геометрию пока никто не отменял.
С уважением


 
ISP ©   (2004-05-03 18:40) [30]

Но вот, испугали автора....



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

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

Наверх




Память: 0.55 MB
Время: 0.054 c
14-1083257601
DVM
2004-04-29 20:53
2004.05.23
Волшебство. Ярлыки появляются сами.


14-1083600009
arp
2004-05-03 20:00
2004.05.23
Заработок програмистов в России по разным регионам.


6-1080710055
Mistic
2004-03-31 09:14
2004.05.23
Зависание компа из-за сервера


1-1083942786
Kozovoy
2004-05-07 19:13
2004.05.23
Excel - количество страниц в документе


8-1077798054
S@shka
2004-02-26 15:20
2004.05.23
Как правильно смешать два WAV-ника