crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Определение точных координат на графике в контекстном меню, как реализовать корректно?
AD
  опции профиля:
сообщение 15.7.2009, 15:11
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


[attachment=708:graphics...rdinates.JPG]

Проблема в том, что координаты на осях и координаты в контекстном меню не совпадают. Как получить точные координаты от графика?

Вот так реализовано меню:
{
// ......................................................
private:
        void viewCoordinateCtx(QPointF* coord);
    void createContextMenu(QPointF* coord);
protected:
    virtual void contextMenuEvent(QContextMenuEvent* events);
// ......................................................
};

/// Отображение координат в данной точке
void GraphicDisplay::viewCoordinateCtx(QPointF* coord)
{
    QString strX = (language_flag) ? "Value along axis X:\t" : "Значение вдоль оси X:\t";
    QString strY = (language_flag) ? "Value along axis Y:\t" : "Значение вдоль оси Y:\t";
    strX += QString::number(coord -> x(), 'f', 3);  strY += QString::number(coord -> y(), 'f', 3);

    contextMenu -> addAction(strX);
    contextMenu -> addAction(strY);

    /// .....
}

/// Создание контекстного меню
void GraphicDisplay::createContextMenu(QPointF* coord)
{
    if(!contextMenu -> actions().isEmpty()) contextMenu -> clear();
    viewCoordinateCtx(coord);
}

/// Отображение контекстного меню
void GraphicDisplay::contextMenuEvent(QContextMenuEvent* events)
{
    QPointF coordinate = initXY(&events -> pos());
    createContextMenu(&coordinate);

    contextMenu -> exec(events -> globalPos());
}


Есть мысли, где возможна ошибка?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
4 страниц V   1 2 3 > »   
Начать новую тему
Ответов (1 - 35)
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 15:35
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


А помоему, вполне совпадают ±погрешность установки указателя мыша
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 15:38
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 15.7.2009, 16:35) *
А помоему, вполне совпадают ±погрешность установки указателя мыша

Есть ли возможность сделать более точно? Уверен, что при частом использовании пользователям не понравится эта погрешность. Пока просто не замечали....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 16:16
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 15.7.2009, 19:38) *
Есть ли возможность сделать более точно?
вообще кликать мышкой в график это засада.

Удобнее когда есть курсор - перекрестие которо ты двигаешь, точка пересечения курсора при этом бегает по самому графику, вот её координаты и выводи.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 16:31
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата
вообще кликать мышкой в график это засада.

Удобнее когда есть курсор - перекрестие которо ты двигаешь, точка пересечения курсора при этом бегает по самому графику, вот её координаты и выводи.

А это как? Можешь описать. Сделаю, если пойму и будет пригодно в этой задаче...

Сообщение отредактировал AD - 15.7.2009, 16:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 17:07
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


- извращение(imho)
стандартный подход: при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 17:15
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата
- извращение(imho)
стандартный подход: при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.

Все претензии к пользователям. Такие требования и пожелания! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 17:28
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(AD @ 15.7.2009, 18:15) *
Цитата
- извращение(imho)
стандартный подход: при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.

Все претензии к пользователям. Такие требования и пожелания! :)

ну вот :blink:

тогда такой совет :
1)преобразовать координаты курсора в координаты графика
2)"опустить" из этой точки перпендикулярна график, либо
просто "провести" ортогональную прямую до пересечения с графиком
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 17:30
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mozgofil @ 15.7.2009, 21:07) *
при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.
а если мышь там где нет крвой, за её пределами? Прикажешь пользователю целитсься?

Цитата(AD @ 15.7.2009, 20:31) *
А это как? Можешь описать.
попробую снимок сделать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 17:40
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 15.7.2009, 18:30) *
Цитата(mozgofil @ 15.7.2009, 21:07) *
при перемещении мыши (MouseMove) выводить координаты графика
в статус-баре или в углу Вида.
а если мышь там где нет крвой, за её пределами? Прикажешь пользователю целитсься?

А что такого ?
если хотят значение на графике пусть включают "[horizontal|vertical] viewfinder" в контекстном меню.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 18:12
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mozgofil @ 15.7.2009, 21:40) *
А что такого ?
да так ничего, яб, как пользователь, в рыло бы сразу дал ;)

Вот картинка:

 Р В Р’ Р’ Р’ Р’ Р’ Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 80%
Прикрепленное изображение
1280 x 1000 (26.91 килобайт)

Удерживая левую кнопку мыши вошкаешь ею по графику: за указателем мыши бегает курсор графика - вертикальная линия с точкой (здесь квадратиком), которая скользит по крифой графика.
можно показывать подсказку с координатами (здесь жёлтый прямоугольник)

Если тебе нужно показывать координаты в контекстном меню берёшь их из значения точки курсора графика.


На этом снимке два курсора один управляется левой кнопкой мыши, второй - правой. Два нужны, чтобы дельты можно было наглядно мерить
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 18:34
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Ааа. Ну я сейчас работаю как раз над созданием визиров (viewfinder(ов)). Но плюс к этому необходимо, чтобы при тыкании правой кнопки мышки в любой точке графика отобразились координаты как можно более точные. Есть какая-нибудь возможность убрать погрешность?

Уточняющий вопрос: для создания курсора надо использовать QCursor? Есть примеры кода его создания и работы с ним? А еще есть ли возможность создать курсор в виде точки и который будет бегать за мышью?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 18:37
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 15.7.2009, 22:15) *
(viewfinder(ов)).
вообще-то в переводе с буржуйского это маленькое окошко, которое показывает весь график

Цитата(AD @ 15.7.2009, 22:34) *
надо использовать QCursor?
чесно говоря, мне такая мысль в голову не приходила, может быть и можно.
Но я бы просто линию рисовал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 21:09
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 15.7.2009, 19:37) *
вообще-то в переводе с буржуйского это маленькое окошко, которое показывает весь график

Не понял. :blink:

Вообще-то, это линия, которая показывает значение при пересечение с кривой на графике и значение при пересечении с осью!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 21:16
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 16.7.2009, 1:09) *
Вообще-то, это линия, которая показывает значение при пересечение с кривой на графике и значение при пересечении с осью!
С какой стати?
viewfinder = видоискатель

вот он:
 Р В Р’ Р’ Р’ Р’ Р’ Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 75%
Прикрепленное изображение
1024 x 781 (25.13 килобайт)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mozgofil
  опции профиля:
сообщение 15.7.2009, 21:22
Сообщение #16


Студент
*

Группа: Участник
Сообщений: 32
Регистрация: 23.4.2009
Пользователь №: 706

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 15.7.2009, 19:12) *
Цитата(mozgofil @ 15.7.2009, 21:40) *
А что такого ?
да так ничего, яб, как пользователь, в рыло бы сразу дал ;)

Замечательные традиции у вас в конторе ;)

Цитата(Litkevich Yuriy @ 15.7.2009, 19:12) *
Вот картинка:

 Р В Р’ Р’ Р’ Р’ Р’ Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 93%
Прикрепленное изображение
1280 x 1000 (26.91 килобайт)

Удерживая левую кнопку мыши вошкаешь ею по графику: за указателем мыши бегает курсор графика - вертикальная линия с точкой (здесь квадратиком), которая скользит по крифой графика.
можно показывать подсказку с координатами (здесь жёлтый прямоугольник)
Если тебе нужно показывать координаты в контекстном меню берёшь их из значения точки курсора графика.
На этом снимке два курсора один управляется левой кнопкой мыши, второй - правой. Два нужны, чтобы дельты можно было наглядно мерить

Очень оригинально, пересказал два моих предыдущих топика ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.7.2009, 21:25
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mozgofil @ 16.7.2009, 1:22) *
Очень оригинально, пересказал два моих предыдущих топика
да нет я про свой пост №4
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.7.2009, 21:34
Сообщение #18


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 15.7.2009, 22:16) *
С какой стати?
viewfinder = видоискатель

Ну вырожденный случай нужен. Вырожденный случай - это линия. А вообще хочется узнать как получить точные координаты?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 16.7.2009, 10:45
Сообщение #19


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Юра, есть идеи как получить наиболее точные координаты? Как я понял, ты в этой теме разбираешься. Можешь описать поподробнее как? Буду благодарен за помощь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.7.2009, 17:46
Сообщение #20


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


AD, сделай курсор графика там всё и увидишь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 17.7.2009, 14:13
Сообщение #21


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Litkevich Yuriy @ 16.7.2009, 18:46) *
AD, сделай курсор графика там всё и увидишь.

А как сделать курсор графика? Подскажи, пожалуйста. Раньше не делал никогда...

Хочу чтобы курсор представлял собой точку и бегал за кончиком указатель мыша. Это возможно?

Сообщение отредактировал AD - 17.7.2009, 14:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 20.7.2009, 12:51
Сообщение #22


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


А есть какие-нибудь примеры с курсором графика? Я не знаю с чего начать его делать.... Что именно надо сделать, чтобы он был?

Сообщение отредактировал AD - 20.7.2009, 12:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 21.7.2009, 13:37
Сообщение #23


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


У нас есть виджет на котором рисуется график.
Его размер в точках - sizeWidget, пусть будет sizeWidget.x = 200, sizeWidget.y = 100.
Есть позиция мыши внутри этого виджета, пусть будет posMouse.x = 180, posMouse.y = 23.
Есть размер системы координат графика sizeGraph, пусть будет sizeGraph.x = 1000, sizeGraph.y = 200.
Что бы получить значение координаты мыши делаем:
point.x = posMouse.x * sizeGraph.x / sizeWidget.y -> point.x = 180 * 1000 / 200 = 900.

График рисуется по формуле y = f(x), подставляем полученное значение по горизонтали и получаем point.y.

Сообщение отредактировал BRE - 21.7.2009, 13:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.7.2009, 14:18
Сообщение #24


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 21.7.2009, 14:37) *
У нас есть виджет на котором рисуется график.
Его размер в точках - sizeWidget, пусть будет sizeWidget.x = 200, sizeWidget.y = 100.
Есть позиция мыши внутри этого виджета, пусть будет posMouse.x = 180, posMouse.y = 23.
Есть размер системы координат графика sizeGraph, пусть будет sizeGraph.x = 1000, sizeGraph.y = 200.
Что бы получить значение координаты мыши делаем:
point.x = posMouse.x * sizeGraph.x / sizeWidget.y -> point.x = 180 * 1000 / 200 = 900.

График рисуется по формуле y = f(x), подставляем полученное значение по горизонтали и получаем point.y.

Дело в том, что приблизительно такой алгоритм и используется.
/// Отображение контекстного меню
void GraphicDisplay::contextMenuEvent(QContextMenuEvent* events)
{
    QPointF coordinate(initXY(&events -> pos()));
}

initXY(&events -> pos()) - как раз и переводит в координаты графика. Что указанная функция initXY работает правильно - я уверен - проверено и давно. Все дело в координатах events -> pos(), которые выдаются с погрешностью, которая недопустима.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 21.7.2009, 14:59
Сообщение #25


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 21.7.2009, 15:18) *
Все дело в координатах events -> pos(), которые выдаются с погрешностью, которая недопустима.

Ты уверен, что эти координаты возвращаются с погрешностью? :blink:
Попробуй добавить вывод в консоль этих координат и посмотреть что выводиться.

P.S. Покажи функцию initXY.

Сообщение отредактировал BRE - 21.7.2009, 15:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.7.2009, 15:11
Сообщение #26


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 21.7.2009, 15:59) *
P.S. Покажи функцию initXY.

Без проблем. Реализация этой функции в большей степени переписана из Бланшета и Саммерфилда:
/// Инициализация координат - преобразование из экранных координат (x, y) в координаты графика (sx, sy)
QPointF GraphicDisplay::initXY(const QPoint* scr_coor)
{
    QRect rect(paramsDisplay -> rect());

    double x = scr_coor -> x();                ///< экранная координата оси x
    double y = scr_coor -> y();                ///< экранная координата оси y

    /// Вычисление номера линии сетки, около которой находится значение
    double j = (x - rect.left()) / (rect.width() - 1) * settings.numXTicks;
    double k = (rect.bottom() - y) / (rect.height() - 1) * settings.numYTicks;

    /// Вычисление координат графика
    double sx = settings.minX + (j * settings.spanX() / settings.numXTicks);
    double sy = settings.minY + (k * settings.spanY() / settings.numYTicks);

    return QPointF(sx, sy);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 21.7.2009, 15:33
Сообщение #27


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 21.7.2009, 16:11) *
Без проблем. Реализация этой функции в большей степени переписана из Бланшета и Саммерфилда:

А как определены spanX() и spanY()?

---

Попробуй так:
struct Settings
{
    double    minX;
    double    minY;
    double    maxX;
    double    maxY;
    double    numXTicks;
    double    numYTicks;

    double    spanX() const { return maxX - minX; }
    double    spanY() const { return maxY - minY; }
};

QPointF initXY( const QPoint &scr_coor )
{
    QRect rect( ... );

    // Если область графика занимает не всю площадь виджета, то проверяем находиться ли мышь над графиком
    if( !rect.contains( scr_coor ) )
        return QPointF( 0, 0 );

    double sx = settings.minX + double( scr_coor.x() - rect.left() ) * settings.spanX() / rect.width();
    double sy = settings.minY + double( rect.bottom() - scr_coor.y() ) * settings.spanY() / rect.height();

    return QPointF(sx, sy);
}


Сообщение отредактировал BRE - 21.7.2009, 17:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.7.2009, 17:31
Сообщение #28


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


        double spanX() const { return maxX - minX; }
    double spanY() const { return maxY - minY; }

Так и определены :)
А функцию initXY(), попробую сейчас.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.7.2009, 18:09
Сообщение #29


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Ну... алгоритм ведь тот же. Единицу ток не вычитаем. Ничего не изменилось. Нет плавного перемещения визира.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 21.7.2009, 18:19
Сообщение #30


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 21.7.2009, 19:09) *
Ну... алгоритм ведь тот же. Единицу ток не вычитаем. Ничего не изменилось. Нет плавного перемещения визира.

Координаты те же выводятся в меню?
Что за визир? Почему нет плавности? :)

Сообщение отредактировал BRE - 21.7.2009, 18:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.7.2009, 18:36
Сообщение #31


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 21.7.2009, 19:19) *
Координаты те же выводятся в меню?
Что за визир? Почему нет плавности? :)

координаты те же. График тот же - то есть с погрешностью....

Визир - viewfinder. Не знаю почему нет плавности, но двигается скачкообразно.

Сообщение отредактировал AD - 21.7.2009, 18:43
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 21.7.2009, 18:54
Сообщение #32


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 21.7.2009, 19:36) *
координаты те же. График тот же - то есть с погрешностью....

При длине вертикальной шкалы 800 единиц и размере виджета по вертикале 100 точек, при сдвиге мышки на одну точку шаг на графике будет составлять 8 единиц, при размере виджета 200 точек - 4 единицы.... От этого никуда не деться, только если не сделать длину оси в точках равной длине в единицах. :)

Цитата(AD @ 21.7.2009, 19:36) *
Визир - viewfinder. Не знаю почему нет плавности, но двигается скачкообразно.

Почему так происходит? Ведь ты работаешь с экранными координатами. :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 21.7.2009, 21:25
Сообщение #33


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 21.7.2009, 19:54) *
Почему так происходит? Ведь ты работаешь с экранными координатами. :blink:

Не знаю разбираться придется завтра.

А вот с координатами, выходит, надо искать метод, который сможет дать более точный результат. Т.е.
events -> pos() - не подходит. Ты знаешь как сделать предложенный Юрием курсор графика? Я вообще в не понимаю с чего начать для его реализации?

Сообщение отредактировал AD - 21.7.2009, 21:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 21.7.2009, 21:59
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(AD @ 21.7.2009, 22:25) *
А вот с координатами, выходит, надо искать метод, который сможет дать более точный результат. Т.е.
events -> pos() - не подходит.

Так вариантов нет, шаг в одну точку на экране это 8 точек на графике (при тех условиях которые я приводил выше). Точнее двигать мышь ты не сможешь. ;)

Цитата(AD @ 21.7.2009, 22:25) *
Ты знаешь как сделать предложенный Юрием курсор графика? Я вообще в не понимаю с чего начать для его реализации?

Нужно посмотреть, подумать.
У меня сейчас форум только по диагонале читать получается. Времени не много... :(

Сообщение отредактировал BRE - 22.7.2009, 7:54
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 22.7.2009, 15:32
Сообщение #35


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(BRE @ 21.7.2009, 22:59) *
Так вариантов нет, шаг в одну точку на экране это 8 точек на графике (при тех условиях которые я приводил выше). Точнее двигать мышь ты не сможешь. ;)

На мой взгляд, вариант Юрия и есть альтернатива указанному алгоритму. Сейчас, после того как поправил разбор времени (mktime), буду думать как его реализовать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 22.7.2009, 16:44
Сообщение #36


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Описание проблемы перемещения визира находится здесь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.5.2025, 6:20