![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Есть прямая заданная уравнением прямой проходящей через 2 точки 
		
	
		
		
			(x-x1)/(x2-x1)=(y-y1)/(y2-y1) где (х1, у1) это верхняя точка а (х2,у2) конечня(внизу) нужно дорисовать ещё 3 прямые до прямоугольника, или найти как сделать так чтобы прямоугольник рисуемый с помощью Rectangle() повернулся на угол cos(a); 2модераторы, сорри если тема не в тот раздел попала. Последний раз редактировалось Voffka, 03.12.2007 в 14:35.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 1. метод Rectangle рисует прямоуольник, параллельный осям координат. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	2. прямоугольник задаётся 2мя точками (верхний левый и нижний правый углы) и уголом поворота. Так чта "прямая заданная уравнением прямой" не достаточно для постоения прямоугольника. 3. если ты осознаешь пункты 1 и 2, копай в сторону поворот точки на заданный угол  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 А формулу разворота точки на определённый угол неподскежете?  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 ну что нету людей которые знают геометрию? 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Вступление  
		
	
		
		
		
		
		
	
		
		
	
	
	![]() Людей, что знают геометрию - много, просто уж на этот вопрос отвечать всем влом... тем более что это задачка из школы класса эдак 7-8, достаточно знать, что такое синус и косинус... Решение Немного непонятно, как именно тебе надо достраивать до прямоугольника, но ладно, предлагаю такой вариант: Прямоугольник - даны координаты двух его соседних вершин ( X1,Y1 и X2,Y2 ) , пусть расстояние между ними A, тогда длина другой стороны пусть будет B. => коорд. других вершин: Код: 
	var X1,Y1,X2,Y2,X3,Y3,X4,Y4:integer;
     B:integer;
     Sn,Cs:real;
begin
 // вводишь значения X1,Y1,X2,Y2  - вершины и B - длина другой стороны
 Sn:=(Y1-Y2)/Sqrt( Sqr(X1-X2) + Sqr(Y1-Y2)  );
 Cs:=(X2-X1)/Sqrt( Sqr(X1-X2) + Sqr(Y1-Y2)  );
 
 X3:=Round(X2 - B*Sn);
 Y3:=Round(Y2 - B*Cs);
 X4:=Round(X1 - B*Sn);
 Y4:=Round(Y1 - B*Cs);
 Image1.Canvas.Polygon([Point(X1,Y1),Point(X2,Y2),
     Point(X3,Y3),Point(X4,Y4)] );
end;Будет достраиваться слева по направлению от первой ко второй точке, если надо иначе то в расчёте X3,Y3,X4,Y4 поставь вместо минусов плюсы  |