0
我在QML畫布上繪製了一個橢圓,我希望能夠旋轉它。除了context.rotate(angle)
之外,還有什麼辦法可以做到嗎?據我所知,這將旋轉整個畫布。有沒有方法只旋轉子路徑?QML畫布旋轉橢圓
我有點驚訝,橢圓是由寬度和高度的中心定義的,而不是兩個焦點。這會讓事情變得更容易。
我在QML畫布上繪製了一個橢圓,我希望能夠旋轉它。除了context.rotate(angle)
之外,還有什麼辦法可以做到嗎?據我所知,這將旋轉整個畫布。有沒有方法只旋轉子路徑?QML畫布旋轉橢圓
我有點驚訝,橢圓是由寬度和高度的中心定義的,而不是兩個焦點。這會讓事情變得更容易。
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()
難道你不能保存上下文的狀態,應用橢圓變換,繪製橢圓,然後恢復狀態? 像這裏描述的那樣https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Transformations#A_rotate_example – GrecKo 2015-03-19 10:36:47
我不這麼認爲。 「當前路徑不是繪圖狀態的一部分。」 - http://doc.qt.io/qt-5/qml-qtquick-context2d.html#save-method。 – EvenLisle 2015-03-19 10:39:34
我看不出這是一個問題。你有代碼示例嗎? – GrecKo 2015-03-19 10:44:50