Qt:绘制混合透明线/曲线/路径

时间:2013-07-25 02:46:28

标签: c++ qt

我已经能够使用QPainterPath绘制长透明曲线,因此我不会得到重叠的不透明度关节,这会导致像Scribble一样在点之间连接线。但有没有办法让路径在Qt中混合其持续的透明度: enter image description here

2 个答案:

答案 0 :(得分:0)

我怀疑最令人满意的解决方案是自己渲染笔画。例如,您发布的图像是通过在彼此之间绘制大量部分透明的圆圈来呈现的。这可以通过在QImage上渲染大量椭圆来优化,然后绘制预渲染图像以节省时间。

答案 1 :(得分:0)

question/answer的帮助下,我编写了这个代码来完成这项工作:

/* Start and end point. */
const QPointF start{ 0,0 };
const QPointF end{ 100,100 };

QGraphicsLineItem line{ QLine(start, end) };

/* Make the Gradient for this line. */
QLinearGradient gradient(start, end);
QColor color(123, 123, 231); //some color
color.setAlphaF(0.9); //change alpha
gradient.setColorAt(0, color);
color.setAlphaF(0.1); //change alpha again
gradient.setColorAt(1, color );

/* Set the line's pen. */
QPen pen(QBrush(gradient), 10);
line.setPen(pen);