| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Создание ВЕКТОРНОГО редактора. |
| Автор: as555 17.5.2006, 11:49 |
| Необходимо сделать Векторный редактор чтоб он мог: Например - нарисовать прямоугольник - переместить его - изменить его размеры. Если у кого-то есть какие-то мысли или примеры, буду очень благодарен |
| Автор: drkot 17.5.2006, 12:22 |
| Думаю надо создать ряд объектов типа: элипс, прямоугольник, замкнутая область, линия, ломаная линия, сглаженая ломаная и тд. Само изображение хранить в виде коллекции выше перечисленых объектов. Причем обекты не стоит делать наследниками TWinControl (и даже TComponent), в идеале об TObject. TObject - TVectorElement - TLine TElipse ... Можно пойти другим путем и взять за основу метафайлы и их векторный движок. |
| Автор: Mechanic 18.5.2006, 02:54 |
| Вот есть пример, как можно описать 2D фигуры, чтоб манипулировать ими. Только к ним нужно ещё мышиные события для полноты прикрутить, да научить их в файл сохраняться / возвращаться потом оттуда в память.. Коллекции тоже понадобятся (та же группировка), да много всего можно навернуть.. Тот же простейший Corel Draw посмотреть можно для идей.. |
| Автор: as555 18.5.2006, 10:43 |
| Большое спасибо есть еще один вопросик если к объекту привязать текс допустим с помощью TCanvas.TextOut то встает вопрос насчет масштаба т.е. сам объект отмаштабировать можно т.к. он векторный т..е умножить длину на коэфф. а вот, что делать с текстом ? |
| Автор: rounin 18.5.2006, 12:26 |
| Еще один примерчик. На счет текста - можно сделать что-нибудь типа Font.Height := Round(Font.Height*K) |
| Автор: ДЫМ 19.5.2006, 06:35 |
| Используй GDI+, там размер текста можнет быть дробным, т. е. размер = коэффициент * исходный размер. |
| Автор: Leos 20.5.2006, 21:24 |
| GDI+ надо использовать однозначно, так как там очень много возможностей по работе с графикой, например есть antialiasing. И вообще GDI+ объектно-ориентированный. Потребность в использовании antialiasing'а встанет на 99.99%. Так, что сразу надо начинать его юзать. TCanvas.TextOut не отделаешься, так как его возможности сильно ограничены, им даже нельзя выводить юникод. И ещё: если привязывать текст, то типа WideString - юникод. |
| Автор: Snowy 25.5.2006, 10:08 |
| http://www.codeaccelerate.com/drawing_engine.html OpenSource графическая библиотека для создания мощных векторных редакторов. |
| Автор: as555 30.5.2006, 16:03 |
| всем пасибо |