crossplatform.ru

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


  Ответ в Передвижение по графику при нажатии кнопки
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
AD Дата 17.7.2008, 13:47
  Виноват! :blush2:

Я додумался сам как это сделать:

вот такой маленький алгоритм (вдруг кому-то пригодится! :)):
double x = events -> pos().x();
double y = events -> pos().y();
double j = (x - rect.left()) / (rect.width() - 1) * settings.numXTicks;
double k = (rect.bottom() - y) / (rect.height() - 1) * settings.numYTicks;
double sx = (mode -> x_param.is_max) ? settings.minX + (j * settings.spanX() / settings.numXTicks)
                    : settings.maxX - (j * settings.spanX() / settings.numXTicks);
double sy = (mode -> y_param.is_max) ? settings.minY + (k * settings.spanY() / settings.numYTicks)
                    : settings.maxY - (j * settings.spanY() / settings.numYTicks);

QPointF coordinate(sx, sy);
/// ну а далее уже использование этих координат
AD Дата 17.7.2008, 12:11
  Может сможет кто-нибудь подсказать, как перевести текущие физические координаты в координаты графика.
Для примера, вот рисунок
[attachment=132:context_...u_coords.JPG]

Как видно из рисунка: известны координаты границ (мин., макс. значения) графика, а также текущая физическая координата (690, 632). Так вот надо перевести, чтобы для данной точки получилось что-то вроде такого: (-24.45, 155.405). Подскажите, пожалуйста, какое действие надо сделать, чтобы совершить это преобразование координат?

P.S. я понимаю, что это задача, обратная задаче масштабирования, но что-то я слегка запутался, какие в итоге координаты я получаю.
AD Дата 16.7.2008, 13:28
 
Цитата(Litkevich Yuriy @ 16.7.2008, 14:12) *
AD, пора выкладывать Т.З. на проект ;)

Техническое задание? Нет, это запрещено. Ну а впринципе, как такогого его нет, сборка требований из других ТЗ.
Litkevich Yuriy Дата 16.7.2008, 13:12
  AD, пора выкладывать Т.З. на проект ;)
AD Дата 16.7.2008, 11:49
  Теперь у меня появился такой вопросец. :) При нажатии на кнопку мыши мы знаем позицию курсора, также мы знаем границы прямоугольника, ограничивающего область рисования. Так вопрос таков: непонятно, как заставить позицию, где находится курсор, стать центром этой области? Кто-нибудь сможет подсказать как это сделать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 8:20