![]() |
|
|
![]()
|
|
| gustavomarginale |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 2.7.2008 Репутация: нет Всего: нет |
Есть задуманное. Хотелось бы узнать предпочтительные пути реализации задуманного именно на QT, узнать об очень помогающих в решении задачи QT-классах или QT-паттернах. Зуб ногой в QT невелик, в С++ велик.
Задуманное: хочу иметь огромный "холст", допустим 65536 x 65536 точек, относительно небольшая часть которого (размер окна), будет видна на экране. На холст можно помещать фигуры, двигать его, перемещаясь по нему в этом окне, делая разные части холста видимыми. То есть, распространённое явление, все это видели. Хитрости реализации здесь могут поджидать, например, в таких моментах: 1. отображение фигур, частично скрытых за окном. 1.1 Мне самому получать пиксельные буфферы, содержащие только часть фигур и рисовать их по краям окна, обновляя при движении холста, или: 1.2 Можно создать что-то типа области "рисования" немного больше окна, типа 3000x3000, заходящую за пределы окна, рисовать на эту область множество фигур, какие-либо части которых должны быть видны в окне, а QT будет самостоятельно и быстрее метода 1.1 выдавать картинку в окно, вырезая прямоугольник из этого 3000x3000? 1.3 Сделать отрезательный механизм математическим-геометрическим, получать просто набор линий и кривых, которые нужно рисовать, и рисовать всё только в области видимости? Я не математик, и получение набора линий, представляющих части сложных фигур вызовут проблемы. ** Поэтому нарисовать их целиком в буффер, а потом отрезать от буффера нужный прямоугольный кусочек и показать - проще. К тому же, один буффер с отрисованной фигурой я смогу использовать многократно, показывая его целиком в нескольких местах, отрезая от него кусочки и показывая их, когда нужно показать часть фигуры. Скажите речь по всем сиим поводам. Делать хочу на xorg. Это сообщение отредактировал(а) gustavomarginale - 18.1.2010, 06:37 |
|||
|
||||
| panukov |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 8.4.2009 Где: Омск Репутация: нет Всего: нет |
можно использовать QUndoView. Он, вроде, сам удовлетворяет Вашим требованиям.
В крайнем случае его можно положить на QScrollArea(). На QUndoView можно ложить такие элементы, как QGraphicsPolygonItem и QGraphicsLineItem. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 5 Всего: 39 |
Вы определитесь, делать на xorg или на Qt. Если Qt, то QGraphicsScene, QGraphicsView, QGraphicsItem (от него есть готовые унаследованные примитивы) решат все ваши проблемы.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |