Форум: "Потрепаться";
Текущий архив: 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.042 c