講座初回ですが、いきなり「斜交座標」なるものを取り入れてみます。「何それ?」「むずそうorz」と思うかもしれませんが、まったくそんなことはなく、むしろ斜交座標は図形的・直感的に理解できる上に「こんなことができるのか」という感動も伴うこと間違いなしです。数学となでしこ両者の「楽しさ」を伝えるために最良の題材です。
簡単に説明すれば、誰もが知っている「直交座標」を斜めにしたり引き伸ばしたりした座標が斜交座標です。「あみあみ」をびよーんと伸ばしているところを想像すると分かりやすいと思います。
講座初回ですが、いきなり「斜交座標」なるものを取り入れてみます。「何それ?」「むずそうorz」と思うかもしれませんが、まったくそんなことはなく、むしろ斜交座標は図形的・直感的に理解できる上に「こんなことができるのか」という感動も伴うこと間違いなしです。数学となでしこ両者の「楽しさ」を伝えるために最良の題材です。
簡単に説明すれば、誰もが知っている「直交座標」を斜めにしたり引き伸ばしたりした座標が斜交座標です。「あみあみ」をびよーんと伸ばしているところを想像すると分かりやすいと思います。
それではまずプログラムでの実装例を見ていきましょう。
線色は青色。線太さは1。# 描画命令の属性設定 X1とは数値。Y1とは数値。# 線命令の始点 X2とは数値。Y2とは数値。# 終点 Iとは整数。# カウンタ Iを0から10まで繰り返す 0 ,IをX1,Y1へ斜交座標変換。#1 11,IをX2,Y2へ斜交座標変換。#1' X1,Y1からX2,Y2へ線。#2 I, 0をX1,Y1へ斜交座標変換。 I,11をX2,Y2へ斜交座標変換。 X1,Y1からX2,Y2へ線。 0.05秒待つ。# ウェイト ●斜交座標変換(A,Bを{参照渡し}X,{参照渡し}Yへ) #3 X = 25*A + 15*B。#4 Y = 5*A + 20*B。#4
これを実行してみれば、およそ斜交座標がどんなものなのか、なんとなく分かりませんか?xとyの直交座標を、びよーんと斜めに引っ張れば斜交座標になるわけです(図参照)。プログラムの後ろから解説することになりますが、この斜交座標変換(#3)
はどのようなしくみになっているのかについて、数学的に解説をしていきたいと思います。
メインの変換式斜交座標変換の式#4
を一まとめにして、ベクトルを使って書き直してみましょう(*1)。
( X , Y ) = ( 25A + 15B , 5A + 20B ) = A ( 25 , 5 ) + B ( 15 , 20 ) …… ★
このように書き表せますね。この式★の図形的意味を考えるために、教科書にも載っているような次の問題を見てみましょう。
原点Oと点A,Bがあり、O,A,Bは一直線上にないとする。このとき、次式を満たすような点Pの存在する範囲を述べよ。ただし、任意点Xに対しOXベクトルを x で表す。(*2)
p=sa+tb ……… [1](s+t=1 ……… [2])
大学入試の2次で数学の図形分野が必要な人ならば、絶対に解けなければならないと言っても過言で無いほど、この問題には数学的に重要な性質が詰まっています。問題の答えを書いてしまうと、「点Pは直線AB上に存在する」ですね。数学的に説明するとしたら[2]式を用いて[1]式のsを消去して式変形すれば直線ABのパラメタ表示に……でもちょっと待ってください、ここではそれぞれの式の意味するもっと本質的な意味を考えてみましょう(そうすれば★式の理解にもなる!)。
先に[2]式を考えると、st座標(ここでは普通の直交座標)で点(0,1)と点(1,0)を通る直線を表していますね。では[1]式はいったいどういう意味、役割なのか?[1]式を(厳密な表現とは言えないが)言葉で表すと、Pの位置は、Oから、sだけAの方向に、tだけBの方向に進んだところです。O,A,Bは一直線上にない定点ですから、Pの位置は2つの変数s,tによって一意に定まっています。このような点の定め方、どこか見たことがある気がしませんか?――普通の直交座標で点(x,y)はOからxだけx軸の方向に………。もう分かりましたね!つまり、[1]式がずばり斜交座標そのものを表していて、[2]式がその座標における図形(直線AB)を表しているのです!
思い出してください。斜交座標とは直交座標をびよーんとゆがめたものでした。st(直交)座標上に直線[2]が存在している状態から、s軸はaの方向に、t軸はbの方向に伸ばして斜交座標にすれば(変換すれば)、直線ABになるわけです。
★式の位置ベクトル(X,Y)は、「変数×定ベクトルの和」で表されています(このような形の式を数学では一次結合と呼びます)。p=(X,Y)、a=(25,5)、b=(15,20) と置いてみれば、★式と[1]式がまったく同じ形式(一次結合)で表されていることが分かりますね。
#1
#1'
#2
#2以降
#3
参照渡しされた引数X,Y
に変換の結果が入り、変数X,Y
の内容は書き換えられる。#4
この次は便利な行列の一次変換を扱います。実はここで扱った斜交座標変換と行列の一次変換は本質的に全く同じもの(*3)です。今回の講座の内容を別の視点から再確認していきましょう。