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

Вниз

Школьная геометрия   Найти похожие ветки 

 
Vaitek ©   (2005-01-27 12:15) [0]

Хелп люди, помогите задачку решить.

Дан произвольный треугольник на плоскости (XY). Известны координаты углов этого треугольника. Через каждый угол треугольника проходит прямая. Всего их - 3. Известно что эти прямые пересекаются друг сдругом в одной точке и под улом 120гр друг к другу (или 60 - смотря как смотреть). Надо найти эту точку пересечения.


 
Ozone ©   (2005-01-27 12:23) [1]

>> Известны координаты углов этого треугольника.

Это как? Мне не понятно... обьясни.


 
Fikus ©   (2005-01-27 12:26) [2]

Известны координаты углов этого треугольника. Через каждый угол треугольника проходит прямая. Всего их - 3.

LOL. А почему не 5? :)


 
Vlad Oshin ©   (2005-01-27 12:30) [3]

уравнение прямой по 2 точкам
угол м/д векторами
приравнять
лень


 
Vaitek ©   (2005-01-27 13:10) [4]

И как я вектор получу? У меня же только точка есть.


 
MBo ©   (2005-01-27 13:10) [5]

отношение скалярного произведение векторов OA и ОB к произведению их модулей равно 1/2 (косинус Pi/3)
То же самое для OA и OC
2 уравнения, 2 неизвестных.


 
Alx2 ©   (2005-01-27 13:23) [6]

Пользуйся :)

(x1,y1),(x2,y2),(x3,y3) - вершины

x = 1/3*(-6*x1*x3*x2+3*y1*x2*y2-3*y1*x2*y3+3*y3^2*x2+3*x1*x3^2+3*y1*x3*y3+3*x3*y2^2-3*y1*x3*y2+3*x1*x2^2-3*x3*y3*y2-3*y3*x2* y2-sqrt(3)*x3*y3*x2-sqrt(3)*x3*y2*x2-sqrt(3)*x1*y3*x2+sqrt(3)*y2*x3^2+sqrt(3)*y3*x2^2+2*sqrt(3)*y1*x3*x2+sqrt(3)*x1*y3*x 3-sqrt(3)*x1*y2*x3+sqrt(3)*x1*y2*x2-sqrt(3)*y1*x2^2-sqrt(3)*y1*x3^2)/(x3^2-2*x3*x2+x2^2+y3^2-2*y3*y2+y2^2),

y = 1/3*(-6*y3*x3*y2^2-2*sqrt(3)*x1*y2^2*x2-9*x1*y3^2*y2+9*x1*y3*y2^2-6*y2*x1*x3*x2-3*y3*x1*x3^2+6*y3*x1*x3*x2-12*y3*y1*x2*y 2+12*y3*y1*x3*y2+3*x3*y2^3+6*y1*x2*y2^2-6*y1*x3*y2^2-3*y3*x2*y2^2-3*y3*x1*x2^2+3*y2*x1*x3^2+3*y2*x1*x2^2-3*y3^3*x2-6*y1* x3*y3^2+6*y1*x2*y3^2+3*x3*y3^2*y2+6*y3^2*x2*y2+3*x2^3*y3-3*x3^3*y2+3*x3^2*y3*x2-3*x2^2*x3*y2-6*x3*y3*x2^2+6*x3^2*y2*x2-3 *x1*y2^3+3*x1*y3^3-3*y1*y2^3*sqrt(3)+4*y3*sqrt(3)*x1*y2*x2-9*y1*sqrt(3)*y3^2*y2+3*y1*sqrt(3)*y3^3+y3*sqrt(3)*y1*x2^2+9*y 1*sqrt(3)*y3*y2^2-2*x3^2*sqrt(3)*y2^2-2*x3*sqrt(3)*y1*x2*y3-x3^2*sqrt(3)*y1*y2+2*x3^2*sqrt(3)*y3*y2+2*x3*sqrt(3)*y1*x2*y 2+x3^2*sqrt(3)*y1*y3-4*y3*sqrt(3)*x1*y2*x3-2*x2^2*sqrt(3)*y3*y2+2*sqrt(3)*x1*y3^2*x3-x2^2*sqrt(3)*y1*y2-2*sqrt(3)*x1*y3^ 2*x2-2*x3*sqrt(3)*y3^2*x2+2*sqrt(3)*x1*y2^2*x3+2*x2*sqrt(3)*x3*y2^2+2*sqrt(3)*y3^2*x2^2)/((-x3+y3*sqrt(3)+x2-y2*sqrt(3)) *(x3^2-2*x3*x2+x2^2+y3^2-2*y3*y2+y2^2))


 
Ega23 ©   (2005-01-27 13:32) [7]

2 Alx2 ©   (27.01.05 13:23) [6]

Ух-ты! Это где-это ты такое надыбал?


 
Alx2 ©   (2005-01-27 13:35) [8]

>Ega23 ©   (27.01.05 13:32) [7]
Тупо в Maple закатал условие задачи. :))
Если подставить выражения для длин сторон треугольника, да выделить полные квадраты - получится достойная картинка, а не этот "черный квадрат" :)


 
Vaitek ©   (2005-01-27 13:36) [9]

А теперь рассказывай, как?


 
Vlad Oshin ©   (2005-01-27 13:38) [10]


> И как я вектор получу? У меня же только точка есть.

вторая т. искомая


 
Alx2 ©   (2005-01-27 13:47) [11]

Наврал :)
мой предыдущий пост - выкидыш :)


 
Vaitek ©   (2005-01-27 14:12) [12]

Ну что ж ты... 8-)


 
Alx2 ©   (2005-01-27 14:14) [13]

>Vaitek ©   (27.01.05 14:12) [12]
:)))
Вот исправленный вариант:

x = 1/6*sqrt(3)*(sqrt(3)*x3*x1^2+sqrt(3)*x3*x2^2+x1^2*sqrt(3)*x2+x1*sqrt(3)*x2^2+y1^2*sqrt(3)*x3+y1^2*sqrt(3)*x2-6*sqrt(3)*x 3*x2*x1-2*sqrt(3)*x1*y3*y2+4*y2*x2*x1-4*y3*x1*x3-4*y2*x3*x2+4*y3*x3*x2-y2*x3^2-3*y3*y2^2+3*y2*y3^2+y2*x1^2+3*y3*y1^2-3*y 2*y1^2+y1*x3^2+3*y1*y2^2-3*y1*y3^2-y3*x1^2+y3*x2^2+y2^2*sqrt(3)*x1+y2^2*sqrt(3)*x3+x2*sqrt(3)*y3^2+x1*y3^2*sqrt(3)+x3^2* sqrt(3)*x1+x2*sqrt(3)*x3^2-2*x2*sqrt(3)*y3*y1-y1*x2^2+4*y1*x3*x1-4*y1*x2*x1-2*y1*y2*sqrt(3)*x3)/(y1^2+x1^2-x1*y3*sqrt(3) -y3*y2+y3*sqrt(3)*x2-x3*y2*sqrt(3)+x1*y2*sqrt(3)+x3*sqrt(3)*y1-x2*sqrt(3)*y1-x3*x2+y3^2+y2^2+x3^2+x2^2-x1*x2-x1*x3-y2*y1 -y3*y1),
y = 1/6*(-12*x1*y1*x2*x3+18*x1*y1*y3^2+21*x1*y3*x2^2+6*x1*y1*x3^2+18*x1*y1*y2^2+21*x1*y2*x3^2+6*x1*y2*y1^2+6*x1*y3*y1^2+6*x1 *y3*x3*x2-9*x1*y2*x2^2+6*x1*y2*x3*x2-24*y2*x1^2*x3-24*y3*x2*x1^2+6*y3*x1^2*x3+6*y2*x2*x1^2+3*x1*y2^3+3*x1*y3^3-3*y1*x2^3 -60*y1*y2*y3*x1-15*y1*y3^2*x3-3*y1*y3^2*x2-15*y1*y2^2*x2-3*y1*x3*y2^2-6*y1^2*y3*x3-6*x2*y2*y1^2+30*y1*y3*y2*x2+30*y1*y3* y2*x3+3*x1*y3^2*y2-12*x2*y2*x3^2+9*x2*y3*y2^2-12*x2*y2*y3^2+9*x2^2*y2*x3+9*y3*x2*x3^2+9*x3*y2*y3^2-3*x3^3*y2-3*x2*y3^3+3 *y1*x3*x2^2-12*y3*x3*x2^2+3*y1*x2*x3^2+3*y3*y2^2*x1-9*x1*y3*x3^2+6*x1*y1*x2^2-sqrt(3)*x2^2*y3*y2-5*sqrt(3)*y3^2*x1^2-8*s qrt(3)*y3*x1^2*y1+5*sqrt(3)*y2^2*x1^2-3*sqrt(3)*y3^2*y1^2-21*sqrt(3)*y2^2*y3*y1+9*x3^2*sqrt(3)*x1^2-6*sqrt(3)*x3*x1^3+6* x1^3*sqrt(3)*x2+9*x1*x2*sqrt(3)*y3^2+12*sqrt(3)*x1*x3*y3*y1-12*sqrt(3)*x1*x2*y2*y1-4*sqrt(3)*x1*x3*y2*y1-7*sqrt(3)*y1*x3 ^2*y3-2*sqrt(3)*y1^2*x1*x2+2*sqrt(3)*y1^2*x1*x3+4*sqrt(3)*y3*y1*x1*x2+21*sqrt(3)*y2*y1*y3^2-sqrt(3)*x3*x2*y3^2+4*sqrt(3) *x3^2*y2^2+7*sqrt(3)*y2*y1*x2^2+sqrt(3)*x3^2*y3*y2-3*sqrt(3)*y3^3*y1+3*sqrt(3)*y2^3*y3-3*sqrt(3)*y3^3*y2-sqrt(3)*x3^2*y1 ^2+sqrt(3)*x2^2*y1^2+3*sqrt(3)*y2^2*y1^2+3*sqrt(3)*y2^3*y1+2*sqrt(3)*x3*y1*y3*x2-2*sqrt(3)*x2*x3*y2*y1-3*sqrt(3)*x2^2*y1 *y3+sqrt(3)*x3*x2*y2^2+8*sqrt(3)*y2*x1^2*y1+3*sqrt(3)*x3^2*y2*y1-sqrt(3)*y2^2*x1*x2-4*sqrt(3)*x2^2*y3^2-9*x3*sqrt(3)*y2^ 2*x1-2*x3*sqrt(3)*x1*y3*y2+x3*sqrt(3)*x1*y3^2-9*x2*sqrt(3)*x3^2*x1+3*x2^3*sqrt(3)*x1+3*x3^3*sqrt(3)*x2-9*x2^2*sqrt(3)*x1 ^2-3*x2^3*sqrt(3)*x3-3*x3^3*sqrt(3)*x1+9*x2^2*sqrt(3)*x3*x1+2*x2*sqrt(3)*x1*y3*y2+6*y2*x1^3+6*y3*x1^3-3*y1*x3^3-3*y2^3*x 3-3*x2^3*y3-12*y3*y2^2*x3)/((2*x1-x3-x2+y2*sqrt(3)-y3*sqrt(3))*(y1^2+x1^2-x1*y3*sqrt(3)-y3*y2+y3*sqrt(3)*x2-x3*y2*sqrt(3 )+x1*y2*sqrt(3)+x3*sqrt(3)*y1-x2*sqrt(3)*y1-x3*x2+y3^2+y2^2+x3^2+x2^2-x1*x2-x1*x3-y2*y1-y3*y1))


 
Vaitek ©   (2005-01-27 15:18) [14]

О Господи...


 
MBo ©   (2005-01-27 15:29) [15]

Геометрический метод:
На каждой стороне треугольника наружу строится равносторонний трегольник. От его вершины проводится прямая к противоположной вершине исходного треугольника. Точка пересечения прямых - искомая. Посчитать несложно. Иллюстрация:

procedure TForm1.Button1Click(Sender: TObject);
var
 A: array[0..2] of TPoint;
 B: array[0..2] of TPoint;
 dx, dy: Integer;
 i, j, k: Integer;
begin
 A[0] := Point(100, 100);
 A[1] := Point(200, 100);
 A[2] := Point(190, 250);
//A[2]:=Point(390,250); //òóïîóãîëüíûé c óãëîì áîëåå 120
 Canvas.Pen.Color := clBlue;
 Canvas.Polygon(A);
 for i := 0 to 2 do begin
   j := (i + 1) mod 3;
   k := (j + 1) mod 3;
   dx := A[j].X - A[i].X;
   dy := A[j].Y - A[i].Y;
   B[i].X := A[i].X + Round(dx * 0.5 + dy * Sqrt(3) / 2);
   B[i].Y := A[i].Y + Round(-dx * Sqrt(3) / 2 + dy * 0.5);
   Canvas.Pen.Color := clRed;
   Canvas.MoveTo(A[i].X, A[i].Y);
   Canvas.LineTo(B[i].X, B[i].Y);
   Canvas.LineTo(A[j].X, A[j].Y);
   Canvas.Pen.Color := clYellow;
   Canvas.MoveTo(B[i].X, B[i].Y);
   Canvas.LineTo(2*A[k].X-B[i].X, 2*A[k].Y-B[i].Y);
 end;
end;



 
MBo ©   (2005-01-27 15:31) [16]

испорченный комментарий: //тупоугольный с углом более 120 градусов


 
Marser ©   (2005-01-27 16:07) [17]

Maple это сила...


 
default ©   (2005-01-27 16:11) [18]

Marser ©   (27.01.05 16:07) [17]
наверно в этом зашифравано наше будущее


 
Alx2 ©   (2005-01-27 16:29) [19]

Привел более-менее в божеский вид:

x=x1+((2*x1-x3-x2+y2*sqrt(3)-y3*sqrt(3)))*Alpha,
y=y1+Alpha*(-y3+2*y1-x2*sqrt(3)+x3*sqrt(3)-y2)

где

Alpha = -1/6*(3*(y1-1/2*y3-1/2*y2-1/6*x2*sqrt(3)+1/6*x3*sqrt(3))^2-(y3-y2)^2-(x2-x3)^2+3*(x1-1/2*x2-1/2*x3-1/6*y3*sqrt(3)+1/6*y2 *sqrt(3))^2)/((y1-1/2*x2*sqrt(3)+1/2*x3*sqrt(3)-1/2*y3-1/2*y2)^2+(x1-1/2*x3-1/2*x2+1/2*y2*sqrt(3)-1/2*y3*sqrt(3))^2);


 
msguns ©   (2005-01-27 16:37) [20]

Как говаривал Соловьев, засстрелиться !


 
Alx2 ©   (2005-01-27 20:36) [21]

Подробно про задачку:
уравнение прямой, проходящей через точку x1,y1 (вершина номер 1 в тр-ке) под углом phi к оси ОХ есть
(y-y1)*cos(phi)+(-x+x1)*sin(phi) = 0
Аналогично, прямые проходящие через x2,y2 и x3,y3:
(-x+x2)*cos(phi+1/6*Pi)+(-y+y2)*sin(phi+1/6*Pi)=0
(-y+y3)*cos(phi+1/3*Pi)+(x-x3)*sin(phi+1/3*Pi)=0

Сложив их все вместе и раскрыв синусы и косинусы сумм получим:

(-y1+1/2*x2*sqrt(3)+1/2*y2-1/2*x3*sqrt(3)+1/2*y3)*cos(phi)+(x1-1/2*x2+1/2*y2*sqrt(3)-1/2*x3-1/2*y3*sqrt(3))*sin(phi)=0

Откуда немедленно находится угол phi, показывающий направление прямой из отчки x1,y1.

Phi= -arctan((x3*sqrt(3)-y3-x2*sqrt(3)-y2+2*y1)/(-2*x1+x2-y2*sqrt(3)+x3+y3*sqrt(3)))+Pi*Z

Аналогично находятся прямые для остальных точек.
Точка их пересечения даст искомое.
Следует учесть, что вершины треугольника нужно обходить против часовой стрелки.


 
SergP ©   (2005-01-27 21:47) [22]


>  Vaitek ©   (27.01.05 12:15)
> Хелп люди, помогите задачку решить.
>
> Дан произвольный треугольник на плоскости (XY). Известны
> координаты углов этого треугольника. Через каждый угол треугольника
> проходит прямая. Всего их - 3. Известно что эти прямые пересекаются
> друг сдругом в одной точке и под улом 120гр друг к другу
> (или 60 - смотря как смотреть). Надо найти эту точку пересечения.


А почему ты решил что такая точка одна?

Таких точек несколько. Я например вижу что в отдельных ситуациях их может быть даже 7 штук.


 
Alx2 ©   (2005-01-27 22:48) [23]

>SergP ©   (27.01.05 21:47) [22]
2/3*Pi угол между тремя лучами - покрываем всю окружность.
Почему несколько таких точек, если тр-к невырожденный?


 
SergP ©   (2005-01-27 23:09) [24]


>  [23] Alx2 ©   (27.01.05 22:48)
> >SergP ©   (27.01.05 21:47) [22]
> 2/3*Pi угол между тремя лучами - покрываем всю окружность.
> Почему несколько таких точек, если тр-к невырожденный?


потому что это не лучи, а прямые. И согласно задаче:


> ... Через каждый угол треугольника проходит прямая
> ...
> Известно что эти прямые пересекаются друг сдругом
> в одной точке и под улом 120гр друг к другу (или 60 - смотря
> как смотреть).



 
Alx2 ©   (2005-01-27 23:15) [25]

>SergP ©   (27.01.05 23:09) [24]
В формулировке "120 или 60" - согласен. Есть простор.


 
SergP ©   (2005-01-27 23:15) [26]


>  [23] Alx2 ©   (27.01.05 22:48)
> >SergP ©   (27.01.05 21:47) [22]
> 2/3*Pi угол между тремя лучами - покрываем всю окружность.
> Почему несколько таких точек, если тр-к невырожденный?


Потому что согласно задаче:


> ... Через каждый угол треугольника проходит прямая
> ...
> Известно что эти прямые пересекаются друг сдругом
> в одной точке и под улом 120гр друг к другу (или 60 - смотря
> как смотреть).



Максимум - 7 точек может быть если треугольник равносторонний. 1 точка в центре треугольника, 3 точки совпадают с вершинами, и еще 3 находятся за пределами треугольника (они симметричны центру треугольника относительно каждой из его сторон). В других случаях (неправильный треугольник) точек вроде бы меньше, но все равно более одной.


 
SergP ©   (2005-01-27 23:18) [27]

Блин. У меня тут инет глючило. Я думал что предыдущее не запостилось, поэтому подправил пост и еще раз запостил.


 
SergP ©   (2005-01-27 23:19) [28]


> [25] Alx2 ©   (27.01.05 23:15)
> >SergP ©   (27.01.05 23:09) [24]
> В формулировке "120 или 60" - согласен. Есть простор.


Хотя собственно говоря если говорить о прямых то нет разницы что 60 что 120


 
Alx2 ©   (2005-01-27 23:36) [29]

>SergP ©   (27.01.05 23:19) [28]
Я уж лучше по углу между направляющими векторами :)
Не люблю "веники".


 
Vaitek ©   (2005-01-28 11:48) [30]

Спасибо всем! Работает. Я знал что мне здесь помогут!


 
Alx2 ©   (2005-01-28 11:55) [31]

>Vaitek ©   (28.01.05 11:48) [30]
Эта...
А где пиво?



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

Форум: "Потрепаться";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.038 c
1-1107093457
Dr. Genius
2005-01-30 16:57
2005.02.20
Окошко с пунктами


1-1107406301
ТехникПТО
2005-02-03 07:51
2005.02.20
Как установить компонент NMHTTP в Delphi 6??


14-1107015672
Soft
2005-01-29 19:21
2005.02.20
Если с мобилкой - значит умный:)


14-1107093137
250
2005-01-30 16:52
2005.02.20
Отец Интернета назван величайшим британцем 2004 года


1-1107445446
BJValentine
2005-02-03 18:44
2005.02.20
Альтернатива TDBGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский