我有一个问题,我必须从某个来源绘制一条光线。在光源处,强度应该是最强的,并且应该随着距离而减小,这是我的x轴。如果我使用蓝色绘制我的光线而不是应该是光线蓝色起源,应随着距离变暗。
我已将QCpcurve附加到QCustomplot。
有两个向量说X和Y,我必须绘制
Curve.setpen(blue);
Curve.setdata(X,Y);
问题是如何随着距离的增加改变颜色强度。
请帮忙
答案 0 :(得分:4)
您可以通过显示所需的外观将颜色渐变设置为QPen。
QPen :: QPen(const QBrush& brush,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();
}