9

私がこれまでに使用したすべてのコンピュータ グラフィックス システムは、原点が左上隅にある左手座標系を使用していることに気付きました。Cairo、Java、Microsoft XYZ、およびほとんどのグラフィック プログラムは、すべてこのシステムを使用しています。それらはすべて共通の祖先にさかのぼると思いますが、これに関する参照は見つかりません.

推測する必要がある場合は、テキストと同じ座標を使用するVGAグラフィックモードから来たと言えます。これは、当然、英語が上から下、左から右、下に「2行目」が表示される方法に基づいていました。 「最初の行」...でも、私はそれを作っています。

話をしてくれる人はいますか、それとも正しい歴史書の方向性を教えてくれますか?

4

4 に答える 4

4

これは古い慣習であり、その理由は少し外典かもしれません。これが私が見つけたいくつかの仮説です:

これは、CRT電子ビーム掃引動作から派生しています。

上から下にスキャンするということは、フレーム全体が最初に送信されるのを待つ必要がないことを意味します。データの受信を開始するとすぐにスキャンを開始します。(これは再び問題を提起します、なぜ上から下にスキャンするのですか)

これにより、Z軸が画面から出るのではなく、画面に入る右手の座標系が可能になります。

厄介なことに、CocoaとQuartzは左下の原点を使用しています。

于 2012-10-23T20:06:39.860 に答える
1

レガシーな理由で維持されている古い慣習ではないかと思います。UpperLeft には利点があります。つまり、下から上に進む言語書記体系ではありません。したがって、左上の方が簡単です。

  • マルチ テキストを配置するには
  • 高さが不明または無限のページの操作
  • ページの高さが変更された場合 (デバイスが大きくなったり小さくなったり)、BottomLeft ではすべてのオブジェクト座標を変換する必要がありますが、UpperLeft では変換しません。

最後のものは動的な配置とレイアウトにも拡張され、グラフィックス オブジェクトの座標はその親からオフセットされます。

于 2015-11-15T18:57:04.517 に答える
1

わかりません。決定的な答えはないと思います。人々がまだコンソール ベースのマシンを持っていたときは、左上隅から右下隅に移動することが理にかなっている可能性があります。あなたが言ったように、それは世界中の多くの人々が読む方法です。そこに原点を置くのは理にかなっています。

http://en.wikipedia.org/wiki/Memory-mapped_I/O

ウィキペディアの記事には、メモリ マップド ディスプレイに関する情報が含まれています。たとえば、メモリの一部を画面上のピクセルのオン/オフに割り当てているとします。そして、アドレス 0 を画面の左上部分とし、メモリ内にあるかどうかに応じてピクセルのオンとオフを切り替えるチャンクで移動します。それは基本的に最初の記事が言っていることです。

アドレス 0 をディスプレイの左上にするかどうかはわかりませんが、それは理にかなっており、持ち越された可能性があります。

于 2012-10-23T20:31:43.267 に答える