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()
我正在 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()