Форум: "Основная";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Внизспециальный графический формат Найти похожие ветки
← →
chsv (2002-12-16 20:12) [0]в одной программе требуется организовать работу с конечным набором графических примитивов, например: точка, линия, ломаная, окружность, прямоугольник.
что НЕ ТРЕБУЕТСЯ в данной задаче.
В данной задаче НЕ ТРЕБУЕТСЯ создавать графический редактор, с помощью которого будут рисоваться графические примитивы. считается, что графические примитивы уже созданы.
под словами "организовать работу" понимается следующее.
имеется список графических примитивов, каждый из примитивов удовлетворяет следующим свойствам:
1. каждому графическому примитиву конкретного "вида" ставится в соответствие набор свойств, описывающих расположение данного графического примитива на плоскости.
например, окружности может быть поставлено в соответствие координаты точки центра, радиус, цвет и толщина линии, видим или скрыт в данный момент данный примитив, выделен примитив или нет, т.п.
2. каждому графическому примитиву ставится в соответствие некий уникальный код, по которому можно получать доступ к свойствам данного примитива.
так же имеется набор свойств, описывающих условия отображения списка графических примитивов. например, это могут быть следующие свойства: текущий масштаб отображения, текущий угол поворота отображаемых примитивов, величина ячейки "сетки", к которой привязываются примитивы при выводе на экран.
знание значений свойств, описывающих условия отображения графических примитивов и унакального кода данной окружности может использоваться, например, для позиционирования окружности в центр экрана.
теперь ЧТО ТРЕБУЕТСЯ
имеется список кодов конкретных графических примитивов.
1. требуется управлять видимостью (показать/скрыть) графических примитивов из данного списка (сделать все примитивы из списка видимыми или скрытыми);
2. требуется управлять выделением (выделен/невыделен) графических примитивов из данного списка (выделить или убрать выделение всех примитивов списка);
3. требуется организовать удаление всех графических примитивов из данного списка.
написав все это, я подумал -- стоит ли создавать свой собственный векторный формат представления графических данных, когда, может быть, давно создан и успешно используется аналогичный формат, в котором полностью или хотя бы частично выполняются перечисленные выше условия на графические примитивы (не знаю, .emf или .wmf какой-нибудь, или что-то еще).
---------------------------------------------------------------------------------
может быть, кто-нибудь знает про такой формат? подскажите, пожалуйста, где найти его описание, а так же где найти либы или компоненты для работы с ним.
---------------------------------------------------------------------------------
заранее благодарен.
← →
PVOzerski (2002-12-16 20:29) [1]А просто Metafile не подойдет?
← →
ShaggyDoc (2002-12-17 06:21) [2]Свой формат придумывать не стоит. Рекомендую использовать DesignXML. Преимущества в том, что
а)формат придуман, и толково
б)открытый и расширяемый
в)работу с ним можешь его проверять в AutoCAD 2002 пока не придумал свою рисовалку
г)Будущее всех векторных форматов
Недостаток - как у любого XML - избыточность и большой объем
Можно использовать и другие, более сжатые. В любом случае лучше брать некий стандарт, тогда твоя программа будет сразу с кем-то совместима.
И, конечно, стоит подумать об использовании готовых систем, ведь все, что описано давно решено во множестве вариантов.
← →
chsv (2002-12-18 18:30) [3]в настоящий момент передо мной стоит следующая задача. нужно написать клиентскую программу, позволяющую юзеру работать с базой данных.
в базе содержится информация о различных объектах. объект -- это:
1. содержательная информация об объекте;
2. связанная с данным объектом графическая информация.
прога должна должна позволять юзеру просматривать/редактировать содержательную информацию и только просматривать связанную с данным объектом графическую информацию.
сейчас графическая информация представлена в формате, несовместимом ни с каким известным форматом. данный формат вызывает и другие проблемы, поэтому от него решено отказаться.
допустим я написал программу-конвертер, переводящую графическую информацию базы из существующего формата в формат DesignXML.
возникает следующий вопрос:
-----------------------------------------------------------------------------------------
каким образом в моей клиентской программе организовать просмотр данных формата DesignXML? -----------------------------------------------------------------------------------------
← →
Леон (2002-12-18 19:28) [4]To chsv:
Есть компонент на сайте http://vkasoft.narod.ru который позволяет делать все что ты перечислил + документация на русском.
Конечно, можно попробовать разработать свой формат хранения и затем блок отрисовки, но на это уйдет довольно много времени.
← →
ShaggyDoc (2002-12-19 07:03) [5]>chsv (18.12.02 18:30)
Это элементарная задача из ГИС-технологий. Решается элементарно в несложных ГИС, например, Mapinfo.
Следует учесть, что задача, стоящая "в настоящий момент" может усложниться, и далее наверняка потребуется и рисовать, и выборки проводить и прочее. И непременно столкнешься с массой проблем, о которых пока не подозреваешь.
Я бы посоветовал:
1. В качестве "своего" формата использовать обменный формат Mapinfo mif/mid - он очень прост, текстовый и позволяет как раз
описывать примитивы, указанные chsv (16.12.02 20:12)
2. В своей программе для работы с графикой использовать
или Mapinfo (саму по себе или в связке с Delphi)
или бесплатный Mapinfo ProViewer
или MapX (OCX и несколько DLL) - тогда не нужна Mapinfo (но нужна лицензия или crack)
3. Возможны и другие ГИС-платформы, в том числе российские. Если нет требований к объему данных, можно воспользоваться ГИС-Панорама и библиотекам к ней GisToolKit (бесплатно, для больших данных - платная). Имеется также очень приличная ГИС ИнГео - в ней вообще нет графического формата, все внутри таблиц БД.
Эти ГИС (с некоторым ограничением функционала) можно взять из Сети бесплатно.
С использованием подобных инструментов в твоей задаче будет использоваться только незначительная часть их возможностей, но зато все будет "навырост".
В любом случае, даже если покупать лицензии (может быть)использование готовых решений лучше, чем связываться со своей графикой.
Формат DesignXML пока создает и понимает только AutoCAD 2002. Визуализировать можно в нем (но это огромный монстр), или написать самому с нуля. Сделаешь - будешь богатенький Буратино, на шестнадцатом месте после Билла. Может быть.
"Народными" компонентами лучше не пользоваться, достаточно есть высокопрофессиональных, проверенных и перспективных.
← →
Дмитрий К.К. (2002-12-19 08:28) [6]Согласен с ShaggyDoc насчет "народных" компонентов. Пару раз обжегси... и больше нетуть желания ето повторять...
← →
chsv (2002-12-19 20:35) [7]to ShaggyDoc(19.12.02 07:03)
"в качестве "своего" формата использовать обменный формат Mapinfo mif/mid - он очень прост, текстовый и позволяет как раз описывать примитивы, указанные chsv (16.12.02 20:12)"
-- где есть описание обменного формата Mapinfo mif/mid?
"это элементарная задача из ГИС-технологий"
-- это не совсем так. задача не такая уж элементарная и не только из гис-технологий. как я уже говорил, (см. chsv (18.12.02 18:30)), содержательная и графическиая информация об объектах в текущей программе хранится в БД (sql-сервер). определенные проблемы вызывает применяемый формат графических данных -- хотя бы потому, что он ни с чем несовместим.
я смотрел гис, о которых ты говоришь ("панорама" и baikonur gistoolkit). делать его основным графическим форматом своей системы не очень-то хочется.
во-первых, формат представления графических данных "панорамы" -- это несколько файлов, которые нужно вытащить из базы и распаковать во временный каталог клиентской машины, что не есть хорошо с точки зрения безопасности данных;
во-вторых, у "панорамы" очень убогие средства организации связи объектов с внешней базой данных, потому что в разработчики "панорамы" пошли по пути "от картинки к данным" (есть "картинка", содержащаяся в одном или нескольких файлах, к которой можно с разной степенью удобства и эффективностю привязывать различные данные из бд). в моей же системе используется подход "от данных к картинке" -- имеются данные, которые можно разными способами представить в виде картинки (сами графические данные хранятся, естественно, в бд);
в-третьих, "панорама" -- это отечественная разработка, и сегодня она пока есть, а завтра ее уже нет. хочется более солидной основы -- например, автокад или mapinfo.
"...задача, стоящая "в настоящий момент" может усложниться, и далее наверняка потребуется и рисовать, и выборки проводить и прочее. И непременно столкнешься с массой проблем, о которых пока не подозреваешь"
-- предстоящие проблемы я очень хорошо представляю. рисовать картинку предполагается во внешней программе (в том же автокаде или mapinfo), затем картинка добавляется в бд, в специальной клиентской программе осуществляется привязка графическое информации к содержательной и результат используется клиентскими программами обычных юзеров.
а поскольку в моей системе используется подход "от данных к картинке" (см.выше), то проведение выборок и прочее не вызовет затруднений.
"В своей программе для работы с графикой использовать или Mapinfo (саму по себе или в связке с Delphi) или бесплатный Mapinfo ProViewer или MapX (OCX и несколько DLL) - тогда не нужна Mapinfo (но нужна лицензия или crack)"
-- как связать mapinfo с delphi?
-- где взять бесплатный Mapinfo ProViewer и MapX (OCX и несколько DLL), желательно с лицензией и crack?
"Имеется также очень приличная ГИС ИнГео - в ней вообще нет графического формата, все внутри таблиц БД"
-- не кинешь ссылочку?
-----------------------------------------------------------------------------
большое тебе спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.014 c