我在QML画布上绘制一个椭圆,我希望能够旋转它。除context.rotate(angle)
之外还有办法做到这一点吗?据我了解,这将旋转整个画布。有没有办法只旋转一个子路径?
我有点惊讶于椭圆是由一个中心以及宽度和高度定义的,而不是两个焦点。这会让事情变得容易多了。
答案 0 :(得分:1)
GrecKo的评论绝对正确,只是添加了代码以防其他人需要摘要。移动坐标系(平移),将原点放在椭圆的中心,然后旋转并将其移回原位。
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()