如何改变 Qcustomplot 中曲线颜色相对于 x 轴的强度?
Posted
技术标签:
【中文标题】如何改变 Qcustomplot 中曲线颜色相对于 x 轴的强度?【英文标题】:how to change the intensity of curve colour in Qcustomplot with respect to x-axis? 【发布时间】:2017-10-12 02:58:36 【问题描述】:我有一个问题,我必须绘制来自某个源的射线。在源处,强度应该最强,并且应该随着距离(即我的 xaxis)而减小。如果我使用蓝色来绘制我的射线,那么它应该是浅的原点为蓝色,应随距离变暗。
我已将 QCpcurve 附加到 QCustomplot。
我必须绘制两个向量 X 和 Y
Curve.setpen(blue);
Curve.setdata(X,Y);
问题是如何随着距离的增加改变颜色强度。
请帮忙
【问题讨论】:
显示你的代码。 您可以显示您想要获取的图像。 @eyllanesc 我已经编辑了我的帖子。 【参考方案1】:您可以通过显示您想要的外观为 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();
【讨论】:
@eyllansec 谢谢哥们。您的解决方案非常完美。以上是关于如何改变 Qcustomplot 中曲线颜色相对于 x 轴的强度?的主要内容,如果未能解决你的问题,请参考以下文章