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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как в qwt сменить систему координат?  (Прочитано 2532 раз)
alexman
Гость
« : Август 24, 2012, 10:03 »

Нужно установить точку отсчета в верхний левый угол. Как это сделать?
Записан
alexman
Гость
« Ответ #1 : Август 25, 2012, 09:44 »

Все просто, но без телепатии не получается...
Код:
/*-----------------------InvertScaleTransformation-----------------------*/
class InvertScaleTransformation : public QwtScaleTransformation
{
public:
InvertScaleTransformation() : QwtScaleTransformation(QwtScaleTransformation::Other) {}
~InvertScaleTransformation() {}

double xForm(double s, double s1, double s2, double p1, double p2) const
{
return p1 + (p2 - p1) / (s2 - s1) * (s2 - s - s1);
}

double invXForm(double p, double p1, double p2, double s1, double s2) const
{
return s2 - s1 + (s2 - s1) / (p2 - p1) * (p - p1);
}

QwtScaleTransformation *copy() const
{
return new InvertScaleTransformation();
}
};

/*-----------------------InvertScaleEngine-----------------------*/
class InvertScaleEngine : public QwtLinearScaleEngine
{
public:
InvertScaleEngine() : QwtLinearScaleEngine() {}
~InvertScaleEngine() {}

QwtScaleTransformation* transformation() const
{
return new InvertScaleTransformation();
}
};
...
plot->setAxisScaleEngine(QwtPlot::yLeft, new InvertScaleEngine());
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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