2

Java2d を使用してアプリケーションを開発しています。私が気づいた奇妙なことは、原点が左上隅にあり、正の x が右に進み、正の y が下に増加することです。

原点を左下に移動する方法はありますか?

ありがとうございました。

4

5 に答える 5

5

スケールと変換を行う必要があります。

あなたの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);
}

私のスイングは少し錆びていますが、これでタスクを達成できるはずです。

于 2010-05-14T03:27:21.823 に答える
0

Graphics2D.translate()を試しましたか?

于 2010-05-14T02:09:50.347 に答える
0

あなたはそれに慣れたいと思うでしょう。ルークが述べたように、技術的にはグラフィックス インスタンスに変換を適用できますが、パフォーマンスに悪影響を与えることになります。

平行移動を行うだけで 0,0 の位置を左下に移動できますが、正の軸に沿った移動は依然として x 方向に正しく、y 方向に下になるため、達成できる唯一のことはすべてを画面外に描画することです。求めていることを達成するには、回転を行う必要があります。これにより、グラフィックス インスタンスの変換行列にラジアン計算のオーバーヘッドが追加されます。それは良いトレードオフではありません。

于 2010-05-14T19:40:55.167 に答える