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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QwtPlot рисовка линий  (Прочитано 3228 раз)
dimbor
Гость
« : Апрель 11, 2017, 16:50 »

Доброго времени суток, уважаемые программисты.

Я пользуюсь qt не так чтобы уж давно, и многие вещи остаются для меня непонятными. В частности, я хочу попросить помощи в решении одной непонятки. Я использую в своем проекте qwtplot и хочу начертить на нем 2 линии по оси Х и оси Y. Код для создания линий я использую вот такой:
Код:
        ui_plot->setAutoFillBackground(true);
ui_plot->setCanvasBackground(QColor(0xE3E3E3));
ui_plot->setAxisScale(QwtPlot::yLeft, -1, 1);
ui_plot->setAxisScale(QwtPlot::xBottom, -1, 1);
ui_plot->enableAxis(QwtPlot::yLeft, true);
ui_plot->enableAxis(QwtPlot::xBottom, true);
QwtPlotCurve *xline = new QwtPlotCurve();
QwtPlotCurve *yline = new QwtPlotCurve();

double x[3] ={-1.0, 0.0, 1.0};
double y[3] ={0,0,0};

xline->setData(new QwtCPointerData(x,y,(size_t)3));
xline->setPen(QPen(QColor(Qt::black)));
xline->attach(ui_plot);
ui_plot->replot();

И вместо ожидаемой линии, тянущейся от -1 до 1 по иксу, я получаю линию, которая идет от 0 до +∞. Подскажите пожалуйста, что здесь может быть не так? Каким образом следует задавать линии для QwtPlotCurve? Заранее спасибо.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Апрель 12, 2017, 13:25 »

double x[] ={-1.0, 0.0, 1.0, 0.0};
double y[] ={0,0,0,0};
?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
dimbor
Гость
« Ответ #2 : Апрель 14, 2017, 15:47 »

Решил проблему вот так:
Код:
	double x1[3] = {-1.5, 0, 1.5};
double y1[3] = {0, 0, 0};
double x2[3] = {0, 0, 0};
double y2[3] = {-1.5, 0, 1.5};

x_1_line->setSamples(x1,y1,3);
y_1_line->setSamples(x2,y2,3);

x_1_line->setPen(QPen(QColor(Qt::black),1,Qt::DashLine));
y_1_line->setPen(QPen(QColor(Qt::black),1,Qt::DashLine));

x_1_line->attach(ui_plot);
y_1_line->attach(ui_plot);

ui_plot->replot();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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