我玩JavaFX和在開課(第一階段theStage)我有以下代碼:的JavaFX的drawImage旋轉
/*... Scene, stage, canvas ...*/
GraphicsContext gc = canvas.getGraphicsContext2D();
Image imgage = new Image("gfx/image.png");
gc.drawImage(image, 256, 256);
我怎麼畫它旋轉而不旋轉軸?我發現並試圖此:
gc.save(); // saves the current state on stack, including the current transform
gc.rotate(45);
gc.drawImage(image);
gc.restore();
但是它也轉換軸,當我使用改變位置x & Y運動圖像..它出了問題,因爲它使軸旋轉了。我一直在考慮使用sin和cos函數重新計算運動,但我確信有這樣一個更簡單的解決方案。
它可能適用於BufferedImage,但它們通過使用不同的Graphics類來繪製它,我不知道如何使它一起工作。
感謝很多:))
編輯:好,怎麼不只是在roatiting整個GraphicsContext旋轉圖像?
解決: 感謝所有幫助:))我已經使用這個解決它>>
ImageView iv = new ImageView(new Image("gfx/earth.png"));
iv.setRotate(40);
SnapshotParameters params = new SnapshotParameters();
params.setFill(Color.TRANSPARENT);
Image rotatedImage = iv.snapshot(params, null);
gc.drawImage(rotatedImage, 0, 0);
你爲什麼要在Canvas上繪製圖像?你可以使用「ImageView」嗎? – hotzst
我真的不明白什麼「旋轉軸」意味着你的問題。什麼軸?它是否顯示了某個軸的可見性,而您在其他未提供的代碼中顯示該軸? – jewelsea
可能,這個問題是[如何在JavaFX Canvas上繪製圖像旋轉圖像?](http://stackoverflow.com/questions/18260421/how-to-draw-image-rotated-on-javafx-canvas)的副本,但我很難確定這一點。 – jewelsea