Russian Qt Forum
Ноябрь 27, 2024, 04:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3] 4 5 ... 7   Вниз
  Печать  
Автор Тема: Light Plot2D  (Прочитано 61866 раз)
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #30 : Июнь 21, 2010, 15:39 »

Цитировать
Ну не надо так близко принимать про фичи разные. Лучше что-то работающее,чем полудопиленный комбайн.
Не надо трагедий)) Я как раз сейчас над этим работаю)
Кстати, Вы не могли бы выложить исходники в репозитарий? Там походу нужно каждый файл в отдельности загружать и описание вбивать к нему Грустный 
Я Вам пришлю пароль ежели чего)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Sancho_s_rancho
Гость
« Ответ #31 : Июнь 21, 2010, 16:11 »

Цитировать
Ну не надо так близко принимать про фичи разные. Лучше что-то работающее,чем полудопиленный комбайн.
Не надо трагедий)) Я как раз сейчас над этим работаю)
Кстати, Вы не могли бы выложить исходники в репозитарий? Там походу нужно каждый файл в отдельности загружать и описание вбивать к нему Грустный 
Я Вам пришлю пароль ежели чего)
Сегодня трудюсь на работе, завтра вечером могу сделать.
электропочта: toekimov@gmail.com
Записан
_voron2
Гость
« Ответ #32 : Июнь 22, 2010, 11:11 »

По поводу перемещения / масштабирования и т.п.
А почему бы не использовать кнопки Alt Ctrl Shift?
Например, перемещение графика можно реализовать если пользователь удерживает клавишу Shift, а масштабирование - клавишу Ctrl.

К тому же есть средняя кнопка мыши с колесиком, на которую тоже можно много чего повесить.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #33 : Июнь 22, 2010, 11:36 »

Цитировать
По поводу перемещения / масштабирования и т.п.
А почему бы не использовать кнопки Alt Ctrl Shift?
Например, перемещение графика можно реализовать если пользователь удерживает клавишу Shift, а масштабирование - клавишу Ctrl.
А чем этот вариант лучше, предложенного и реализованного ранее? А если одна рука занята чем нить другим?)) (нет, не тем чем вы подумали))
Цитировать
К тому же есть средняя кнопка мыши с колесиком, на которую тоже можно много чего повесить.
Ну во-первых не у всех она есть, а во-вторых там скролл будет только по одной оси Грустный

Но всё равно спасибо за идеи))

Sancho_s_rancho
Я Вам сегодня ближе к вечеру тогда на ящик скину)

 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #34 : Июнь 22, 2010, 11:53 »

m_ax,

не знаю , есть это или нет, а что если добавить это:
1. Масштаб графика сделать скроллом (колесиком мыши)
2. Если график не помещается  - то сделать его перемещение "кликом" и удержанием колесика мыши и перемещением самой мыши.

т.е. по аналогии тому как сделан просмотр чертежей в Autocad

Это конечно не панацея, т.к. помимо этого можно желающим предоставить возможность самим настраивать (биндить) клавиши и т.п.  т.е. добавить какой нить элемент интерфейса (GUI) где показывался бы виджет в котором были привязки к клавишам и где можно было бы их изменить на лету при просмотре..
К примеру это  элемент появлялся бы при клике на графике правой клавишей мышки (типа меню) в котором помимо других параметров предоставлялась бы возможность настроить под себя и режимы масштабирования/просмотра/и т.п.)
« Последнее редактирование: Июнь 22, 2010, 11:59 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
_voron2
Гость
« Ответ #35 : Июнь 22, 2010, 12:02 »

Цитировать
По поводу перемещения / масштабирования и т.п.
А почему бы не использовать кнопки Alt Ctrl Shift?
Например, перемещение графика можно реализовать если пользователь удерживает клавишу Shift, а масштабирование - клавишу Ctrl.
А чем этот вариант лучше, предложенного и реализованного ранее? А если одна рука занята чем нить другим?)) (нет, не тем чем вы подумали))
Цитировать
К тому же есть средняя кнопка мыши с колесиком, на которую тоже можно много чего повесить.
Ну во-первых не у всех она есть, а во-вторых там скролл будет только по одной оси Грустный

Но всё равно спасибо за идеи))

1. Мышой навигацию проще осуществлять, чем стрелками. А вообще, это ИМХО)) Просто один из вариантов))
2. Почему же по одной? По оси X - колесико, по оси Y - колесико + Alt
Записан
_voron2
Гость
« Ответ #36 : Июнь 22, 2010, 12:04 »

m_ax,

не знаю , есть это или нет, а что если добавить это:
1. Масштаб графика сделать скроллом (колесиком мыши)
2. Если график не помещается  - то сделать его перемещение "кликом" и удержанием колесика мыши и перемещением самой мыши.

т.е. по аналогии тому как сделан просмотр чертежей в Autocad

Это конечно не панацея, т.к. помимо этого можно желающим предоставить возможность самим настраивать (биндить) клавиши и т.п.  т.е. добавить какой нить элемент интерфейса (GUI) где показывался бы виджет в котором были привязки к клавишам и где можно было бы их изменить на лету при просмотре..
К примеру это  элемент появлялся бы при клике на графике правой клавишей мышки (типа меню) в котором помимо других параметров предоставлялась бы возможность настроить под себя и режимы масштабирования/просмотра/и т.п.)

Мне почему-то кажется что тогдаLightPlot придется переименовывать)))
Записан
Karl-Philipp
Гость
« Ответ #37 : Июнь 22, 2010, 12:08 »

да, вот еще что пришло в голову:
Как вариант можно сделать слайдер, который бы уменьшал/увеличивал масштаб графика. С помощью нажатой левой кнопки мыши можно было бы двигать график, непомещающийся в виджет.
Ну это так Улыбающийся
« Последнее редактирование: Июнь 22, 2010, 12:58 от terlan » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #38 : Июнь 24, 2010, 17:16 »

Приветствую)

Всем спасибо за участие)
Выкладываю первую альфа версию Улыбающийся





Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Sancho_s_rancho
Гость
« Ответ #39 : Июнь 25, 2010, 11:26 »

SVN репозиторий
Цитировать
svn checkout http://light-plot2d.googlecode.com/svn/trunk/ light-plot2d-read-only
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #40 : Июнь 25, 2010, 11:37 »

Цитировать
svn checkout http://light-plot2d.googlecode.com/svn/trunk/ light-plot2d-read-only

Sancho_s_rancho
Большое спасибо! Ваша помощь неоценима)

А как мне изменения туда залить?
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Sancho_s_rancho
Гость
« Ответ #41 : Июнь 25, 2010, 12:36 »

Цитировать
svn checkout http://light-plot2d.googlecode.com/svn/trunk/ light-plot2d-read-only

Sancho_s_rancho
Большое спасибо! Ваша помощь неоценима)

А как мне изменения туда залить?
Для разработчика по протоколу https с указанием имени пользователя и пароля.
Подробности у вас в почте.
Записан
daimon
Гость
« Ответ #42 : Июнь 26, 2010, 15:43 »

Здравствуйте! Я скачал альфа версию и имею ряд замечаний:
1. нет кнопки добавления новой кривой (только есть удаление)
2. если нет кривых,остается след от легенды - пустой квадрат (наверное нужно убирать в этом случае)
3. когда нет кривых с прогой творятся чудеса - с настройками (выход за предел вектора).
4. это я написал всё мелочи, а так проект замечателен!!!!

И думаю надо переводить на QGLWidget может быстрее пахать будет
Проблема вечная - тормоза при больших данных
 Смеющийся
« Последнее редактирование: Июнь 26, 2010, 16:00 от daimon » Записан
Sancho_s_rancho
Гость
« Ответ #43 : Июнь 26, 2010, 18:16 »

Вы делаете скоропалительные выводы по поводу тормозов. Если они есть. то не значит что надо переписать все на библиотеке ABC. Долгоиграющий код надо найти и изнечтожить.
пи.си. Первое. что сказал профилировщик, так это то. что большое время занимает qrgb и qimage. Для рисования графиков лучше держаться QPixmap и то, что не требует изменений внешнего вида держать в памяти в том же pixmape.
Такие пассажи не оптимальны по производительности

Код:
QImage img(_pixmap.size(), QImage::Format_ARGB32);
                QImage img2 = _pixmap.toImage();
                QRgb clr0 = img2.pixel(0, 0);

                for (int n = 0; n < img.width(); ++n) {
                    for (int m = 0; m < img.height(); ++m) {
                        QRgb clr = img2.pixel(n, m);
                        if (clr == clr0) {
                            clr = qRgba(255, 255, 255, 0);
                        }
                        img.setPixel(n, m, clr);
                    }
                }
Как я понимаю это делаете для для прозрачности. QPixmap сам вроде как умеет делать прозрачность через QPixmap::mask, но подробностей я не знаю/не помню.
« Последнее редактирование: Июнь 26, 2010, 19:14 от Sancho_s_rancho » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #44 : Июнь 27, 2010, 13:19 »

Приветствую)

Выкладываю следующую альфа версию.

К вопросу о некоторых изменениях:
1) Пофиксен баг с масштабированием (сейчас оси никуда не уползают)
2) Класс AbstractPlot2D переименован в Plotter (Всё же он не абстрактный, а вполне самодостаточный.)
3)
Вы делаете скоропалительные выводы по поводу тормозов. Если они есть. то не значит что надо переписать все на библиотеке ABC. Долгоиграющий код надо найти и изнечтожить.
пи.си. Первое. что сказал профилировщик, так это то. что большое время занимает qrgb и qimage. Для рисования графиков лучше держаться QPixmap и то, что не требует изменений внешнего вида держать в памяти в том же pixmape.
Такие пассажи не оптимальны по производительности

Код:
QImage img(_pixmap.size(), QImage::Format_ARGB32);
                QImage img2 = _pixmap.toImage();
                QRgb clr0 = img2.pixel(0, 0);

                for (int n = 0; n < img.width(); ++n) {
                    for (int m = 0; m < img.height(); ++m) {
                        QRgb clr = img2.pixel(n, m);
                        if (clr == clr0) {
                            clr = qRgba(255, 255, 255, 0);
                        }
                        img.setPixel(n, m, clr);
                    }
                }
Как я понимаю это делаете для для прозрачности. QPixmap сам вроде как умеет делать прозрачность через QPixmap::mask, но подробностей я не знаю/не помню.

Да, это было, действительно очень не оптимально и сделано только для того, чтобы добиться прозрачности QLabel и  RotatedLabel после их рендеринга.. Как сделать такое с QPixmap я не знаю( С маской у меня не получилось..  
Сейчас Этот фрагмент выглядит так:
Код
C++ (Qt)
   _img = QImage(_label.size(), QImage::Format_ARGB32);
   _label.render(&_img);
 
   QRgb clr0 = _img.pixel(0, 0);
 
   for (int n = 0; n < _img.width(); ++n) {
       for (int m = 0; m < _img.height(); ++m) {
           QRgb clr = _img.pixel(n, m);
           if (clr == clr0) {
                 _img.setPixel(n, m, 0x00ffffff);
           }
       }
   }
 
Т. е. сейчас буфер является непосредственно QImage вместо QPixmap. Это позволяет избежать дополнительного создания лишних QImage и преобразований QPixmap.toImage(...)

Идея сделать буферизацию для легенды очень хороша, я тож об этом думал. В ближайшее время реализую.
Здравствуйте! Я скачал альфа версию и имею ряд замечаний:
1. нет кнопки добавления новой кривой (только есть удаление)
2. если нет кривых,остается след от легенды - пустой квадрат (наверное нужно убирать в этом случае)
3. когда нет кривых с прогой творятся чудеса - с настройками (выход за предел вектора).
4. это я написал всё мелочи, а так проект замечателен!!!!

И думаю надо переводить на QGLWidget может быстрее пахать будет
Проблема вечная - тормоза при больших данных
 Смеющийся

1) Хорошо, а откуда мне эту кривую потом брать? Предположим есть там эта кнопка "addCurve" и что должно происходить при нажатии на неё?
2) Да есть такое, легко подправить.. К тому же есть в меню есть пункт : show legend
3) Можно подробней где именно в настройках?

Спасибо за участие))
 
« Последнее редактирование: Июнь 27, 2010, 15:50 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 2 [3] 4 5 ... 7   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.166 секунд. Запросов: 23.