皆さん、こんにちは。システム商品開発グループの入澤です。
秋が深まり朝夕が冷え込む時期になってきました。鯖江の紅葉はもう少し遅くなりそうです。
さて、今回のブログ記事ではプログラマーの仕事の一端を書いてみようと思います。と言ってもプログラミングの話題ではなく高校数学、とくに「直線」に焦点をあてます。数学の基礎中の基礎である直線。グラフィクスに関わる開発では(ベクタ形式のパスを扱うときには尚更)手足のように扱えなければなりません。理由は簡単で、グラフィクスの基本が「線分」だからです。複雑な図形も突き詰めてしまえば線分の連続であって最終的には線分の計算に帰着します。基本的に、線分を直線とみなして計算する場面がほとんど。プログラマーは否が応でも「直線」と向き合うことになるのです。
直線をデータで表す方法はいくつもあり、グラフィクスでは線分を扱うので始点と終点が与えられて、必然的に異なる二点を通る直線を求めることになります。二点の座標さえあれば一応はすべての計算をこなすことは可能なのですが、直線方程式なおかつ陰関数形式 a y + b x + c = 0 の係数を先に計算しておくメリットが多くあります(今回は平面を対象にします)。どのようなメリットがあるか後で書くことにして、まずは二点の座標から直線の係数を計算してみましょう。

二点 P = ( px , py ) と Q = ( qx , qy ) を通る直線 L は、二点の成すベクトル V = ( qx - px , qy - py ) と直線 L 上の任意の点 ( x , y ) について、外積の性質(平行な二つのベクトルの外積がゼロ)から次の条件を満たすものとして求められます。
( qx - px )( y - py ) - ( qy - py )( x - px ) = 0 .... Eq.1
ここから係数をまとめると次のような数式が得られます。





