Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: dimbor от Апрель 11, 2017, 16:50



Название: QwtPlot рисовка линий
Отправлено: 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? Заранее спасибо.


Название: Re: QwtPlot рисовка линий
Отправлено: Racheengel от Апрель 12, 2017, 13:25
double x[] ={-1.0, 0.0, 1.0, 0.0};
double y[] ={0,0,0,0};
?


Название: Re: QwtPlot рисовка линий
Отправлено: dimbor от Апрель 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();