« 飛び級のすすめ | トップページ | 「CG数理の基礎」を刊行(ソースコード付) »

y軸は上向きか下向きか

2022年9月27日 (火) 投稿者: メディア技術コース

 2年次後期の講義科目「CG数理の基礎」では、講義前に授業資料を示し、履修生から事前に内容についての質問を集めています。今日は、第1回の授業スライドの中の1枚に対する質問を取り上げます。
 
 この講義では実例を示すためにProcessingというプログラミング言語で作成したプログラムを使います。その説明スライドの一つがこちらです(スライド左上と右上は質問回答をコメントとして示すためのアイコンです)。
 
 1_20220925212201
 
 これに対しての質問とその回答がこちらです。
 
 質問『下向きが+yと記載されています。今までの数学やゲームエンジンの影響で、個人的には上が+yというイメージがとても強いです。左上から右下に計算される画素の位置をx,yで表現するのは一般的なのでしょうか。』
 
 「上が+y」が一般的です。
 
 下向きを+yにするのはProcessingでの決め事です。
 
 ではなぜ下向きが+yなのか?
 
 それは画像の画素を並べる際の慣習が左上から右下に向けてだからです(前々ページのスライド参照)。
 
 ではなぜ画像は上から数える慣習なのか?
 
 それは、アナログテレビでブラウン管内側にビームを当てて走査する順番に倣っています。左上から右に、そして順番に下に少しずつ移動するのが走査(スキャン)の順番です。
 
 たぶん最初にブラウン管を発明した人(ブラウン1897年)がそのようにしたからでしょう。
 
 では、そもそもなぜ画素を順番に(一列に)並べる必要があるのか?
 
 それはコンピュータのメモリが順番にデータを格納するようになっているからです。画素データも、一つの番地(アドレス)を指定することにより格納場所が決まります。
 
 【回答は以上】
 
 上記質問は昨年度のものです。今年度の履修生からはその質問を受けて以下のような質問がありました。私の回答とともに紹介します。
 
 質問『なぜ一般的には「上が+y」が使われるのでしょうか。processing以外の描画環境では「画像の画素を並べる際の慣習」はそれほど重要視されていないのでしょうか。』
 
 最初の質問の答えは「数学でy軸は上向きにするのが慣習だから」です。中学や高校ですでにおなじみですよね。
 
 後半の質問は、一般論ではなく描画環境に限った話ですね。描画環境に限って言えばその答えはNoです。つまり、画像の画素を並べる慣習は重視されます。
 
 Processing以外でも、OpenCVというプログラム環境(ライブラリ)では画素のy座標は上から下に番号が大きくなっていきます。ほかにも、画像を数学の行列データとして扱うプログラミング環境でも同様です。行列は上から下に向かって1行2行と考えますからy軸は下向きですね。(一方で、上向きを+yとして画素位置を扱う環境もありますが説明は省略します。)
 
 ただ、y軸が上向きか下向きかは本質的な問題ではないです。何か作業をやる際にその環境で定めた設定に単純に従っていればいいだけの話です。
 
 つまり、場合によっていろいろなので、最初に覚えるときは注意し、いったんわかったらどちらであっても粛々とその決まり前提で作業(デザインだったり制作だったりプログラミングだったり)を進めて行けばよい、ということです。
 
 【回答は以上】
 
 必ずしも技術の本質ではないけれども疑問があって質問をするというのはとてもいいことです。そのような雑多な知識や概念とその背景についても知ることによって、何かの機会で役立つ場合が少なからずあるように思います。
 
 メディア学部 柿本正憲

在学生向け」カテゴリの記事

授業紹介」カテゴリの記事

高校生向け」カテゴリの記事

« 飛び級のすすめ | トップページ | 「CG数理の基礎」を刊行(ソースコード付) »