Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Politov                       2:5015/176.18  07 Mar 2002  06:39:28
 To : Alexander 'Fox M ' Arkhireyev
 Subject : Re: Hебольшая задача по планиметрии
 -------------------------------------------------------------------------------- 
 
 
 До меня дошли слухи, что *03.03.02* *20:29:11* пролетало сообщение
 от Alexander к *All* про *"Hебольшая задача по планиметрии"*. И я решил
 вмешаться.
 
  A'M'A>         Есть задача: даны пять пар чисел (координат), однозначно
 [...]
  A'M'A> Заранее всем 10х!
 
   имхо тебе поможет параметрическое задание прамой, проходящей через две точки.
 x=x1+(x2-x1)t }
 y=y1+(y2-y1)t }
 ну а так как отрезка у нас два, то имеем
 x1+(x2-x1)t=x3+(x4-x3)u}
 y1+(y2-y1)t=y3+(y4-y3)u}
 или 
 (x2-x1)t+(x3-x4)u=x3-x1}
 (y2-y1)t+(y3-y4)u=y3-y1}
 
 Остается только решить систему методом Крамера.
 
 У этого способа есть плюсы которые помогут тебе с треугольником.
 1) если система не имеет решения, то прямые параллельны.
 2) точка принадлежит отрезку, если соответствующий параметр >=0, и <=1.
 
   Hу а для труегольника тебе надо просто проанализировать количество
 точек пересечения отрезка со сторонами, и выводы должны получится следующие.
 1)пересекает одну сторону
 2)пересекает две стороны
 3)а это как?
 0)если один из концов отрезка лежит в треугольнике то и весь отрезок лежит в 
 нем, в противном случае отрезок находится вне треугольника.
 
   Вот бонусом идет функция нахождения точки пересечения двух прямых, 
 надеюсь ты сам с ней разберешься.
 
 function getcrs(x1,y1,x2,y2,x3,y3,x4,y4: float; var x,y,t,u: float): boolean;
 var
   a,b,c,d,e,f,q: float;
 begin
   a:= x2-x1; b:= x3-x4; c:= x3-x1;
   d:= y2-y1; e:= y3-y4; f:= y3-y1;
   q:= a*e-b*d;
   getcrs:= false;
   if abs(q)<eps then exit;
   t:= (c*e-b*f)/q;
   u:= (a*f-c*d)/q;
   x:= x1+(x2-x1)*t;
   y:= y1+(y2-y1)*t;
   getcrs:= true;
 end;
 Искренне Ваш
                Sergey Politov
 --- WP/95 Rus 1.78 Релиз 1  Reg.
  * Origin: Heavy Metal is the Law. (2:5015/176.18)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hебольшая задача по планиметрии   Alexander \'Fox M.\' Arkhireyev   03 Mar 2002 21:29:11 
 Re: Hебольшая задача по планиметрии   Sergey Politov   07 Mar 2002 06:39:28 
Архивное /ru.algorithms/399144080713.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional