Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
ЧупаЧупс   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.04 c
1-1084275657
prockrut
2004-05-11 15:40
2004.05.23
Как заставить приложение что-либо делать, когда окно получает фок


6-1081273054
Ultracrash
2004-04-06 21:37
2004.05.23
Как работает TidICMPСlient


1-1083872318
Karlson
2004-05-06 23:38
2004.05.23
Удаление Ole объекта


14-1083533521
Blackgrin
2004-05-03 01:32
2004.05.23
Pocket PC


1-1084055739
Box
2004-05-09 02:35
2004.05.23
Компонент ListView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский