| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		unm
 
 
  Зарегистрирован: 09.11.2008 Сообщения: 27
 
  | 
		
			
				 Добавлено: Сб 13 Июн 2009 15:51    Заголовок сообщения: Параметры ребер объекта | 
				     | 
			 
			
				
  | 
			 
			
				Добрый день.
 
 
Как получить параметры ребер объекта(левый угол, азимут, длина, правый угол). Перечитал всю документацию, так и не нашел где их взять.
 | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Пн 15 Июн 2009 10:57    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				В режиме редактирования добавьте нужные столбцы.
	
  
	 
	
	
		
	 
	
		|  Описание: | 
		
			
			
				| Как включить параметры ребер | 
			 
			 
		 | 
	 
	
		|  Размер файла: | 
		 86.6 KB | 
	 
	
		|  Просмотрено: | 
		 13944 раз(а) | 
	 
	
		
  
 
  | 
	 
	 
	 
 _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		unm
 
 
  Зарегистрирован: 09.11.2008 Сообщения: 27
 
  | 
		
			
				 Добавлено: Вт 16 Июн 2009 15:17    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Да я знаю как их в Инего получить, мне КОД нужен получения. Это ж все таки топик - "Вопросы разработчиков".
 | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Алексей В. Бастриков
 
 
  Зарегистрирован: 02.06.2008 Сообщения: 118 Откуда: ООО "Инфопроект", г. Екатеринбург
  | 
		
			
				 Добавлено: Вт 16 Июн 2009 16:00    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Вычислить, исходя из координат
 | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Вт 16 Июн 2009 16:18    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				В ИнГео используются такие формулы:
 
 	  | Код: | 	 		  
 
type
 
   TVertex = record
 
      X, Y: Double;
 
   end;
 
 
   // координатная система координат
 
   // Правая система координат - когда ось Y направлена вверх, а ось X влево
 
   // (ось X совмещается с осью Y при повороте на 90 градусов против часовой стрелке)
 
   TCoordSysOrientation = (csoLeft, csoRigth);
 
 
function GetAngle(a, b: TVertex): Double;
 
begin
 
   Result := ArcTan2((b.y - a.y), (b.x - a.x));
 
   if Result < 0 then begin
 
      Result := Result + 2*Pi;
 
   end;
 
end;
 
 
function GetLeftAngle(prev, first, next: TVertex): Double;
 
begin
 
   Result := GetAngle(first, next) - GetAngle(first, prev);
 
end;
 
 
function GetRightAngle(prev, first, next: TVertex): Double;
 
begin
 
   Result := 2*PI - GetLeftAngle(prev, first, next);
 
end;
 
 
function GetDirectAngle(first, next: TVertex; aCoordSys: TCoordSysOrientation): Double;
 
begin
 
   Result := GetAngle(first, next);
 
   if aCoordSys = csoLeft then begin
 
      Result := 2*Pi - Result;
 
   end;
 
end;
 
 
function GetEdgeLength(first, next: TVertex): Double;
 
begin
 
   Result := Sqrt(Sqr(next.x - first.x) + Sqr(next.y - first.y))
 
end;
 
 | 	  
 _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		unm
 
 
  Зарегистрирован: 09.11.2008 Сообщения: 27
 
  | 
		
			
				 Добавлено: Вт 16 Июн 2009 16:49    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Спасибо больщушие
 | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Алексей В. Бастриков
 
 
  Зарегистрирован: 02.06.2008 Сообщения: 118 Откуда: ООО "Инфопроект", г. Екатеринбург
  | 
		
			
				 Добавлено: Ср 22 Июл 2009 22:01    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Придумал шуточное вычисление длины ребра:
 
function distance(x1, y1, x2, y2)
 
   set Contour = Application.CreateObject(0, null)
 
   set Part = Contour.Insert(-1)
 
   Part.InsertVertex -1, x1, y1, 0
 
   Part.InsertVertex -1, x2, y2, 0
 
   distance = Part.Perimeter
 
end function
 
 ))
 | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |