Манипуляция QGradient для перехода по пути

Я использую Qt, чтобы нарисовать что-то похожее на трубу, которая может кривить и дуги, используя QPainterPath. Я использую QLinearGradient для заполнения трубы, чтобы придать ей трехмерный вид. То, что я не могу понять, состоит в том, как кривая/дуга трубы, и градиент следует тем же кривым, что и 3D-эффект. Любые мысли?

Другими словами, цвет останавливается на QGradient, необходимо вращаться вместе с кривыми на пути.

1 ответ

Насколько я могу видеть из qt примеров, градиент, с которым вы заполняете свой путь, одинаковый. Таким образом, вы определяете хороший градиент, чем путь, и добавляете градиент ко всей своей форме с помощью следующего кода:

QLinearGradient myGradient;
QPen myPen;
QPainterPath myPath;
myPath.cubicTo(c1, c2, endPoint);
QPainter painter(this);
painter.setBrush(myGradient);
painter.setPen(myPen);
painter.drawPath(myPath);

Самая сложная часть - это определить канал, который перемещается сглаженно... Не могли бы вы поделиться своим кодом, чтобы мы могли видеть вашу проблему?

licensed under cc by-sa 3.0 with attribution.