Java2d を使用してアプリケーションを開発しています。私が気づいた奇妙なことは、原点が左上隅にあり、正の x が右に進み、正の y が下に増加することです。
原点を左下に移動する方法はありますか?
ありがとうございました。
スケールと変換を行う必要があります。
あなたのpaintComponent
方法では、これを行うことができます:
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.translate(0, -height);
g2d.scale(1.0, -1.0);
//draw your component with the new coordinates
//you may want to reset the transforms at the end to prevent
//other controls from making incorrect assumptions
g2d.scale(1.0, -1.0);
g2d.translate(0, height);
}
私のスイングは少し錆びていますが、これでタスクを達成できるはずです。
Graphics2D.translate()を試しましたか?
あなたはそれに慣れたいと思うでしょう。ルークが述べたように、技術的にはグラフィックス インスタンスに変換を適用できますが、パフォーマンスに悪影響を与えることになります。
平行移動を行うだけで 0,0 の位置を左下に移動できますが、正の軸に沿った移動は依然として x 方向に正しく、y 方向に下になるため、達成できる唯一のことはすべてを画面外に描画することです。求めていることを達成するには、回転を行う必要があります。これにより、グラフィックス インスタンスの変換行列にラジアン計算のオーバーヘッドが追加されます。それは良いトレードオフではありません。