ITエンジニアの能力診断で技術が平凡と評価された俺ですが、GitスコアやTagカウントはもうちょっと抜けているけど、初心者向けの手引きをネットで作る慈善活動をしているかとか、他社他業種との交流会に積極参加しているかみたいな指標が絶望的に低いので差し引き普通であるということらしい。
そうさね、作ってこなかったよね。マニュアルとか。突っ走って前目指すだけ。
前置きはそんくらいで、そもそもコンピュータ上での3Dの取り扱いの基本中の基本三次元座標の取り扱いをちょっと書こうと思いました。

まあ紙もモニタも平面なので、3Dを取り扱うのはあくまでメモリ上に座標空間を持って、幾何学の写像を使って平面投影したものを何とか3Dに見立ててくれって話。
数学のグラフを描く時に横軸Xと縦軸Yが両方0になる原点てのは覚えてると思う。原点というのも抽象的なもので「どこか」というのを紙の好きなところに取って、そこから線を引っ張る。だから3Dを取り扱う時の座標空間もプログラマが原点と決めたところが原点なわけだけど、普通は整数型や小数型でX,Y,Z(Zは奥行き)が0のところを取るので、この図の場合は左上手前隅の0とペンで書いた点が原点。
そっから1辺100(単位は無い)の立方体を描くのに、X100、Y0、Z0の点1(C言語の配列が8個の場合0~7なので1個目が0で2個目が1)順に2,3と上面を1周して、そこからY座標を100とした1周4,5,6,7の点を取る。
この8点を上面1周、柱4本、底面1周を点と点の2点をペアとした構造体またはクラスの配列なりリストなりでデータ構造としたものが立体モデルなのである。
つまり計算機のメモリ上にはX,Y,Z座標の点モデル32ビット3つで96ビットと2点のペアは32ビット2つで64ビット点が8つ96が8つで768ビット辺が12で64ビが12個で768ビット合計1536ビットなので立方体のモデルを32ビット数で表現すると1536割る8で192バイトとなる。
これを軽いと取るか重いと取るかは計算機のスペックと相対で、8ビットマシンの頃のメモリが512KBとするとそれでもゲームボーイでエックスが表現されたし、16ビットマシンSFCがメモリ16MBとするとそれでスターフォックスが作られて、そして俺の初めて持ったマイコンがインテルi386で32ビットメモリ(HDD)4GBだったわけで、パソコンのおまけでセガのバーチャファイター2が動いてしまう。
座標の話か計算資源の話か微妙なところに着地したけど、まあ座標を取り扱う数について、プログラムでメモリ上の何バイトを整数型や小数型に使うかという話も併せて考えると、それは計算機のスペックに合わせてフレキシブルに考えましょうという話。
しかしまあ、もう書いたけど俺がPC持ったのWin95の時代なので、それ以前に遡ってのデータ構造は想像の域は出ないわけです。C言語、BASIC,アセンブラと遡っても、原理は同じだと思うんですけどね。座標とそれを結ぶ辺データ。辺データを座標込みで大量に持つと重複点が多くなるので、別テーブルにするデータ構造の考え方を使うわけです。