(0,0) が画面の左上にマップされるのは少し直感的ではありません。Java Swing で左手座標系を使用する歴史的な理由はありますか?
これを右利きのシステムにマッピングすることはそれほど難しくありませんが、左利きのシステムを持つことの隠れた利点があるかどうか知りたいです.
(0,0) が画面の左上にマップされるのは少し直感的ではありません。Java Swing で左手座標系を使用する歴史的な理由はありますか?
これを右利きのシステムにマッピングすることはそれほど難しくありませんが、左利きのシステムを持つことの隠れた利点があるかどうか知りたいです.
この記事によると、それは単に、それがテレビで常に行われていた方法だからです (ところで、変更されていません)。したがって、この初期の設計上の決定は、今日でも影響を与えているようです。
初期の家庭用コンピューターはテレビに接続されていることが多かったため、当然この座標系が使用されていました。メーカーが電子機器/ロジックを部分的にリサイクルできるという理由だけで、多くのモニターが同じように機能したと思います。そして、これはプログラマーが使用する「自然な」座標系だったので (覚えておいてください、当時ははるかに低いレベルでビデオ システムにアクセスしなければなりませんでした)、ほとんどの人がそれに慣れていたため、単純に固まってしまいました。
このモデルの例外は、PostScript とその後継の PDF です。それらは紙をモデル化するため、効率のために画面の座標系を使用することに縛られていませんでした。数学者が通常行うように、左下に (0,0) を使用します。NeXT は、画面上に描画するための PostScript の拡張である Display PostScript と呼ばれるビデオ システムを使用したため、左下に (0,0) を持つ PostScripts システムを使用しました。現在の Mac OS X は NeXT から派生しているため、このシステムも使用しています。iOS では、Apple のエンジニアは、他のシステムから移行する開発者を容易にするために、左上に (0,0) を持つより一般的なモデルにシステムを切り替えることにしました。
歴史的な理由はわかりませんが、実際には理にかなっていると思います。むしろ、私たちが左から右、上から下に読む文化にいることを考えると、それは理にかなっています.
たとえば、Web ページを見てみましょう。ページは右下に広がっているため、左下隅 (たとえば) がどこにあるのか正確にはわかりません。一方、左上隅を原点にすると、ページを開いたときに常に同じ場所にあり、負の数を処理する必要はありません。
そのため、左上隅の原点の配置は、私たちの読み方の産物であるというのが私の理論です.
歴史的に、テレビ画像とファックス機は左から右、上から下にスキャンします。それはおそらく、ほとんどの文字言語がそのように書かれているためです。したがって、スキャン方向を選択する場合、人々が同じ方法でスキャンすることを選択しても驚くことではありません。
ほとんどの人は右利きであり、すでに書いたもののインクを汚す可能性が少ないため、ほとんどの書き言葉は左から右です。
いくつかの調査を行った後、以前のコンピューター システムでは 0,0 が常に左上隅であったことを指摘するステートメントしか見つかりませんでした。
そして、テキストが流れ続けると、行番号が増えて一番下に移動します。
一部のシステムには、デカルト平面のような規則があります: 0,0 は左下にあります。一般に、描画プログラムはその位置から描画するため、これを行います。
それは任意です。たとえば、GL は (0, 0) を左下に置きます。Java では、関連する変換は次のとおりです。
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
....
AffineTransform at = g2d.getTransform();
g2d.scale(1, -1);
...
g2d.setTransform(at);
}