先日、
で図形について書きましたが、平面図形には面積の公式が存在しています。
小学校で習う物だと、
がありますが、この公式は、形状を組み合わせてみるとなぜそうなるのか?が理解できます。まず、平行四辺形ですが、これは、
のように長方形に変形できますから、基本的に長方形の公式と全く同じものになります。
次に台形ですが、
のように上下を反転させて胸像にして重ねると長方形になるので、その長さ(上底+下底)を底辺として計算して長方形の面積を出して半分にすると面積が出ます。
台形の場合、直角部分が存在しない物もありますが、この場合、同じように組み合わせると平行四辺形になります。平行四辺形の公式と長方形の公式は同じなので、台形に該当する条件を持つ形状の香椎はこれになります。
また、多角形の公式も存在しており、
で正三角形の面積が出るので、これを複数個泡絵得た形状の面積はその倍数で計算できることになります。
五角形の面積は、
という公式で算出でき、正六角形については、
で計算できます。
多角形になるほど円に近づいていきますが、これも公式が存在し、
という数式で計算できます。三角関数が登場しているので、これは高校で出てくるものになりますが、こういった数式で面積を出すことができます。
先日、三角形の公式について紹介しましたが、そこで長方形を半分にするような公式ということを書きました。つまり、
が
になっているので半分にすると三角形になるのですが、この図形を4つ並べると、ひし形ができることに気づくと思います。つまり、
【 底辺 X 高さ ÷2 】 が 4つ揃った物
になりますが、上記の形状が4つということは、
【 対角線同士を掛け合わせた正方形の半分の面積 】
になるので、この公式は、
【 ひし形の公式 】
対角線 × 対角線 ÷ 2
で算出できます。
■ Appendix
三角関数というのは、それを知る場合に三角形で学びますが、ゲームだと、座標移動系で登場します。
三角関数というのは、特定の角Θ(シータ)の時の、三辺の長さが解る物なんですが、タンジェントの場合だと、高さ/底辺なので、特定の距離があって、角度が決まっている場合、タンジェントで高さを出す事ができるわけですが、Θが45°の時だと三角形は直角二等辺三角形になるので、タンジェントについては、底辺と高さが全く一緒になり、斜辺が√2になります。これは、先日、
で紹介しましたが、三角関数も直角三角形を用いた場合に発生する辺の比率の変化を計算するときに利用できます。
タンジェントは、【 高さ/底辺 】
この条件だと、
それぞれのタンジェントは
左図 : Tan 60° = √3/1 = √3
右図 : Tan 45° = 1/1 = 1
となります。三角関数については、サインとコサインが重要になるのですが、これが座標移動で利用できるからです。
三角関数ですが、Θをなす頂点X,Y軸が存在する平明的なグラフの原点に固定した場合、三角形の高さをなす頂点は、円を描くように推移する特性があります
これゲームにおいては非常に重要で、
【 全方位に等間隔で座標の距離を指定できる 】
というものすごい特性になります。三角関数では角Θの時に
のような特性があります。先ほど書いた特性ですが、
のように原点から半径1の円が存在した場合、XとYの座標は、
COSΘ = B/1 => B = COSΘ
SINΘ = A/1 => A = SINΘ
という状態になります。つまり、半径1の円に隣接する任意の角Θを持つ三角形の頂点X,Yの座標は(COSΘ,SINΘ)で示すことができます。
そうなると、キャラクターの原点の座標を、X,Yとした場合、1づつΘの角度に動く条件を考えると、
X=X+COSΘ
Y=Y+SINΘ
となります。これは1づつの移動ですから、これは1ではなく2だとすれば、
X=X+COSΘ+2
Y=Y+SINΘ+2
となります。プログラムは変数で自由に数値変動を加えることができますから、当然、
■ 任意の角Θ
■ 移動距離
についても変数化が可能ですから、
■ 任意の角Θ : Ang
■ 移動距離 : Spn
とするとともに整数型で指定したほうが制御しやすいのでそれを使うとして、
X= X + COS Ang + Spn
Y= Y + SIN Ang + Spn
でコントロールできます。当然、どの角度で動くという指定が必要になりますから、その数値が何になるか?は移動する方向で変わりますが、これによって
【 異なる角度で同じ距離を移動する 】
という座標制御が可能になります。
ちなみに、ただの座標移動を行った場合、X+1,Y+1で斜め45°に移動できますが、
のようにその移動方法では、√2になってしまうので、
√2 = 1.4142135623730956488016887242....
になります。つまり、斜めに移動すると1.4倍強の移動距離になるのでゲーム中では違和感を感じる状態になります。
ちなみに、三角関数は高校に入って習う物ですが、高校1年生の数学の授業で出てきます。