2016-12-14 18 views
2

私はdrawPolygonの方法で三角形を描いています。私の目標は、X軸の周りのグラフィックスを回転させることです。私は回転と呼ばれるメソッドがあることを知っていますが、このメソッドはZ軸の周りを回転します。グラフィックス(2D)回転:x軸を回転

JPanelのグラフィックをX軸回りに回転させるにはどうすればよいですか?

Example of rotation

グラフィックスの2Dライブラリは回転のこの種を行うための機能を持っていない場合、私はそれ以外の私の目標をアーカイブする方法を教えてください。私はJava-fxやキャンバスのような別のGUIタイプに切り替えるのは気にしない。

+0

* "X軸を中心に' JPanel'でグラフィックを回転させるにはどうすればいいですか? "* X軸上で開始したようにミラーリングし、もしそうなら、適切なスケーリング「AffineTransform」がそれを行うべきです。 –

+0

@AndrewThompson私はX軸でミラーリングしたくないので、スケーリングはしません。私は何をしているのですか?[視覚化](https://youtu.be/IKB1hWWedMk?t=8m40s)です。 – NoSenseSenpai

+0

動画へのリンクをたどっていません。スクリーンショットを撮ったり、あなたが意味するものを描いたりしてください。 –

答えて

3

Java 2DはAffineTransformを提供しますが、affine transformationは変換後に平行線が平行になるようにします。あるいは、JavaFX 3Dを考えてください。の場合はPerspectiveCamera、この完全なexampleRotate.Y_AXISを使用しますが、Rotate.X_AXISを使用すると、望ましい効果が得られます。 WarpPerspectivePerspectiveTransformを提供するJavaアドバンストイメージングWarphere)も考慮してください。

+0

*「アファイン変換では、平行線が平行移動したままであることが必要です」*私はいつもそのことに関するドキュメントの言葉遣いについて疑問を抱いていました。残念ながら、私は世界の「フラット」な地図を変換するためにトランスフォームを使用したいと考えていました([この回答](http://stackoverflow.com/a/18825844/418556))がグローブしかし、コアJavaを使用して達成するために私が考えることができる唯一の方法は、変換を伴うものでした。それは運が悪い! –

+1

@AndrewThompson:上記の「PerspectiveTransform」かもしれませんが、Mercatorには逆の疑問があります。また、私は "_requires_"という言葉が好きではありませんでした。 – trashgod

+0

参照['javafx.scene.effect.PerspectiveTransform'](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/effect/PerspectiveTransform.html) – trashgod