QML canvas 旋转椭圆

QML canvas rotate ellipse

我正在 QML 上绘制一个椭圆 canvas,我希望能够旋转它。除了 context.rotate(angle) 之外,还有什么办法可以做到这一点吗?据我了解,这将旋转整个 canvas。有什么方法可以只旋转一个子路径吗?

我有点惊讶椭圆是由一个中心以及宽度和高度定义的,而不是由两个焦点定义的。那会让事情变得容易得多。

GrecKo 的评论绝对正确,只是添加了代码以防其他人需要摘要。移动坐标系(translate)使原点位于椭圆的中心,然后旋转并移动回原来的位置。

 var context = canvas.getContext("2d")
 context.save()
 context.translate(ellipse.center.x, ellipse.center.y)
 context.rotate((Math.PI / 180) * degrees)
 context.translate(-ellipse.center.x, -ellipse.center.y)
 context.restore()
 canvas.requestPaint()