Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как нарисовать линию по координатам

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей
Предыдущая тема :: Следующая тема  
Автор Сообщение
Андрей



Зарегистрирован: 18.04.2005
Сообщения: 47
Откуда: г. Калуга

СообщениеДобавлено: Вт 12 Дек 2006 19:57    Заголовок сообщения: Как нарисовать линию по координатам Ответить с цитатой

Имеется куча координат, требуется по ним нарисовать объект линией, точки нарисовать смог, а вот линию... Crying or Very sad мож я чего не понимаю... Embarassed
Заранее спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
RuslanG



Зарегистрирован: 10.07.2005
Сообщения: 171
Откуда: ИНТЕГРО

СообщениеДобавлено: Ср 13 Дек 2006 00:48    Заголовок сообщения: Ответить с цитатой

Цитата:
точки нарисовать смог, а вот линию...

Скорее всего использовался для отображения символьный тип, т.е. был создан объект стилем с символьным методом отображения (в данном случае символом послужила "точка"). Если Вы стиль, отображающий линии создаете вручную, т.е. не программно, то посмотрите метод отображения в стиле.. Он должен быть "стандартным". Если программно создаете, то предлагаю посмотреть нижеследующий код.
Не знаю в какой среде и на каком языке Вы пишите код..
Пример на ObjectPascal, демонстрирующий создание новой карты, слоя, стиля со стандартным методом отображения и объекта с координатами из FPart.
Код:
procedure CreateMapLayerAndObjectWithVertex;
   
   // Возвращает территорию активного проекта
   function GetArea: IIngeoArea;
   begin
      Result := FIngeo.ActiveProjectView.Project.Area;
   end;
   // Создает векторную карту с названием 'NewVectorMap' у территории anArea
   // Также включает карту в текущий проект
   function CreateVectorMap(anArea: IIngeoArea): IIngeoVectorMap;
   begin
      Result := anArea.Maps.AddVectorMap;
      Result.Name := 'NewVectorMap';
      Result.Update;
      if not FIngeo.ActiveProjectView.Project.Contents.Contains(Result.ID) then
         FIngeo.ActiveProjectView.Project.Contents.Add(Result.ID);
   end;
   // Создает слой у карты aVectorMap
   function CreateLayer(aVectorMap: IIngeoVectorMap): IIngeoLayer;
   begin
      Result := aVectorMap.Layers.Add;
      Result.Name := 'NewLayer';
      Result.Update;
   end;
   // Создает стиль у слоя aLayer
   function CreateStyle(aLayer: IIngeoLayer): IIngeoStyle;
   begin
      Result := aLayer.Styles.Add;
      Result.Name := 'NewStyle';
      Result.Update
   end;
   // Создает стандартный метод отображения у стиля aStyle
   function CreateStdPainter(aStyle: IIngeoStyle): IIngeoStdPainter;
   begin
      Result := aStyle.Painters.Add(inptStd) as IIngeoStdPainter;
      // При необходимости меняем параметры окантовки
      with Result.Pen do begin
         Style := inpsSolid;
         WidthInMM := 0;
         ForZoomScale := 0;
         Color := clBlack;
         Mode := inpmCopy;
      end;
      // При необходимости меняем параметры закраски
      with Result.Brush do begin
         Style := inbsSolid;
         BackColor := clWhite;
         HatchColor := clBlack;
         Transparency := 0;
      end;
      aStyle.Update;
   end;
   // Создаем пространственный объект в определенном слое
   function CreateMapObject(aMapObjects: IIngeoMapObjects; aLayer: IIngeoLayer): IIngeoMapObject;
   begin
      Result := aMapObjects.AddObject(aLayer.ID);
   end;
   // Добавляем фигуру определенного стиля в пространственный объект
   function CreateShape(aMapObject: IIngeoMapObject; aStyle: IIngeoStyle): IIngeoShape;
   begin
      Result := aMapObject.Shapes.Insert(-1, aStyle.ID);
   end;
   // Добавляем часть контура
   // aClosed - параметр, определяющий замкнутость части контура.
   function CreateContourPart(aContour: IIngeoContour; aClosed: Boolean): IIngeoContourPart;
   begin
      Result := aContour.Insert(-1);
      Result.Closed := aClosed;
   end;
   // Добавляем вершину aVertex в часть контура
   procedure AddVertex(aContourPart: IIngeoContourPart; aVertex: TVertex);
   begin
      with aVertex do
         aContourPart.InsertVertex(-1, Point.x, Point.y, Convexity);
   end;
var
   i: Integer;
   aVertex: TVertex;
   anIngeoMapObjects: IIngeoMapObjects;
   anIngeoMapObject: IIngeoMapObject;
   anIngeoShape: IIngeoShape;
   anIngeoPart: IIngeoContourPart;
   anArea: IIngeoArea;
   aVectorMap: IIngeoVectorMap;
   aLayer: IIngeoLayer;
   aStyle: IIngeoStyle;
   aStdPainter: IIngeoStdPainter;
begin
   anIngeoMapObjects := FIngeo.ActiveDb.MapObjects;
   anIngeoMapObjects.TransactionName := 'Создание новых карты, слоя, стиля, метода отображения и объектов';
   anArea := GetArea;
   aVectorMap := CreateVectorMap(anArea);
   aLayer := CreateLayer(aVectorMap);
   aStyle := CreateStyle(aLayer);
   aStdPainter := CreateStdPainter(aStyle);
   anIngeoMapObject := CreateMapObject(anIngeoMapObjects, aLayer);
   anIngeoShape := CreateShape(anIngeoMapObject, aStyle);
   // FPart - часть контура, где хранятся координаты (вершины)
   // FPart необходимо будет подменить Вашей структурой хранения координат
   anIngeoPart := CreateContourPart(anIngeoShape.Contour, FPart.Closed);
   for i := 0 to Length(FPart.Vertexes) - 1 do begin
      aVertex := FPart.Vertexes[i];
      AddVertex(anIngeoPart, aVertex);
   end;
   anIngeoMapObjects.UpdateChanges;
end;

_________________
С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB