Как изменить интенсивность цвета кривой в Qcustomplot относительно оси X?

У меня есть проблема, когда я должен построить луч от какого-то источника. В источнике интенсивность должна быть самой сильной и уменьшаться с расстоянием, которое является моим xaxis. Если я использую синий цвет, чтобы построить мой луч, чем он должен быть голубым в начале и должен темнеть с расстоянием.

Я прикрепил QCpcurve к QCustomplot.

Есть два вектора, скажем, X и Y, которые я должен построить

Curve.setpen(blue);
Curve.setdata(X,Y);

Проблема в том, как изменить интенсивность цвета при увеличении расстояния.

Пожалуйста помоги

1

Решение

Вы можете установить градиент цвета на QPen, отображая желаемый вид.

QPen :: QPen (const QBrush &кисть, qreal width, Qt :: PenStyle style =
Qt :: SolidLine, Qt :: PenCapStyle cap = Qt :: SquareCap, Qt :: PenJoinStyle
join = Qt :: BevelJoin)

Создает перо с указанной кистью, шириной, стилем пера, стилем кепки
и присоединиться к стилю.

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QCustomPlot *customplot = new QCustomPlot;
customplot->setWindowTitle("Gradient Color");
customplot->resize(640, 480);
QCPCurve curve(customplot->xAxis, customplot->yAxis);
QVector<double> x, y;
for(int i=0; i < 1000; i++){
double x_ = qDegreesToRadians(i*1.0);
x << x_;
y << qCos(x_)*qExp(-0.2*x_);
}
customplot->xAxis->setRange(0, qDegreesToRadians(1000.0));
customplot->yAxis->setRange(-1, 1);

QLinearGradient gradient(customplot->rect().topLeft(), customplot->rect().topRight());
gradient.setColorAt(0.0, QColor::fromRgb(14, 11, 63));
gradient.setColorAt(1.0, QColor::fromRgb(58, 98, 240));
QPen pen(gradient, 5);
curve.setPen(pen);

curve.setData(x, y);
customplot->show();

return a.exec();
}

введите описание изображения здесь

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]