1
0
mirror of https://github.com/KanjiVG/kanjivg.git synced 2026-07-12 00:30:31 +02:00

Some more work with fancy renderer

This commit is contained in:
Alexandre Courbot
2010-12-31 19:01:36 +09:00
parent 73494885df
commit c8690b3910
+14 -2
View File
@@ -170,12 +170,24 @@ class FancyStrokeRenderer:
else:
self.fallback.renderStroke(painter, stroke)
return
ppen = QtGui.QPen(self.strokesPen)
ppen.setCapStyle(QtCore.Qt.RoundCap)
segmentLength = stroke.qPath.length() / len(layout)
startPoint = 0.0
for i in range(len(layout)):
ppen.setWidthF(self.basicWeight + (3.8 - 0.1 * layout[i]) * self.weightFactor)
painter.setPen(ppen)
painter.drawPoint(stroke.qPath.pointAtPercent(i * (1.0 / len(layout))))
self.renderPartialStroke(painter, ppen, stroke.qPath, startPoint, segmentLength)
startPoint += segmentLength
def renderPartialStroke(self, painter, pen, stroke, startPoint, segmentLength):
painter.save()
ppen = QtGui.QPen(pen)
dashes = [ 0.0, startPoint / ppen.widthF(), segmentLength / ppen.widthF(), stroke.length() / ppen.widthF() ]
ppen.setDashPattern(dashes)
painter.setPen(ppen)
painter.drawPath(stroke)
painter.restore()
class StrokesWidget(QtGui.QWidget):
def __init__(self, parent = None):