Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-99274
Anatoly Podgoretsky
2002-12-07 17:49
2002.12.30
Эстонская всреча Мастаков


7-99364
Anar
2002-10-23 12:19
2002.12.30
Windows


1-99054
soldat
2002-12-19 13:16
2002.12.30
преобразование CTime в TDateTime


8-99205
ang
2002-09-12 13:57
2002.12.30
Где найдти библтотеку для отображения tiff файлов?


1-99166
Kudatsky
2002-12-10 15:26
2002.12.30
Принудительное завершение Internet Explorer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский