Андрей
 
 
  Зарегистрирован: 18.04.2005 Сообщения: 47 Откуда: г. Калуга
  | 
		
			
				 Добавлено: Чт 14 Июл 2005 15:51    Заголовок сообщения: Координаты | 
				     | 
			 
			
				
  | 
			 
			
				Включаем режим редактирования контура копируем точки в буфер обмена, создаем каталог координат… ну и сюрприз… точки идут против часовой стрелки…   Да хитро… Видимо это новая система отображения координат.   Плохо тока, что в нашей области нигде этого не понимают, требуют чтоб все было по часовой стрелке инструкция говорят...   Вот и кручу их сейчас в «Экселе» пока безуспешно.   | 
			 
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Чт 14 Июл 2005 21:10    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				В ИнГео координаты контура хранятся в той последовательности, в которой они вводились, независимо от того, был ли создан объект интерактивно оператором или программно.
 
Соответственно, в буфер обмена точки помещаются в том порядке, в котором они следуют в контуре объекта.
 
Если Вам необходимо получить список координат в порядке обхода контура по часовой стрелке, Вы можете воспользоваться следующим нехитрым скриптом:
 
 	  | Код: | 	 		  
 
' Coords - массив координат вида: Array(Array(x1,y1),Array(x2,y2),...)
 
sub EnsureClockwiseOrder(Coords)
 
  dim i, j, prevI, square, x1, y1, x2, y2, temp
 
  square = 0
 
  for i = 0 to UBound(Coords)
 
    if i = 0 then j = UBound(Coords) else j = i - 1
 
    x1 = Coords(j)(0) : y1 = Coords(j)(1)
 
    x2 = Coords(i)(0) : y2 = Coords(i)(1)
 
    square = square + (x2 - x1)*(y2 + y1)/2
 
  next
 
  if square > 0 then 
 
    i = 0
 
    j = UBound(Coords)
 
    do while i < j
 
      temp = Coords(i)
 
      Coords(i) = Coords(j)
 
      Coords(j) = temp
 
      i = i + 1
 
      j = j - 1
 
    loop
 
  end if
 
end sub
 
 | 	 
  _________________ С уважением, Михаил Власов. | 
			 
		  |