中学校から関数を学習する事になりますが、これは、小学校6年生に学習する比例の延長正ん上の物になります。小学校6年生では、数値の変化が直線になる 【 正比例 】 を学習しますが、この法則性を数式にしたのが一次関数になります。

 

 中学校だと、二次関数までを学習しますが、解析学は結構面白いので、これを代数学的な視点で見ても面白いのですが、幾何の視点で見ても結構面白い特性があります。この解析学は17世紀に生まれた物になりますが、

 

解析学 = 代数学と幾何学の融合

 

ですから、解析学には式があり、その式を示すための座標平面で示す事が出来るグラフが存在しています。このグラフですが、中学校までだと、数値が常に増加するグラフを扱う事になりますが、高校からは、少し様子が異なる物が登場して、 【 -1 ~ 1 】 の間で推移するグラフが登場します。これが、中学校三年生の数学で学んだ、三角比の特性の延長線上の物になります。

 

 中学校の三角形の特性としては、特殊な比率の直角三角形と、は別に直角三角形の比率には法則性があり、その比率の関係性は等式として成立する事が立証されています。これが、三平方の定理で、

 

 

■ 三平方の定理                   

 

   直角三角形の三つの辺の比率の間には、

 

   斜辺2 = 底辺2 + 高さ2

 

   が成り立つ。

 

 

と言う物を学習します。中学校1年生で 【 項 】 を学びますが、項を用いた式では、変数項を用いて計算をしますから、加算以外の処理は、全て項に格納される特性がある事も学習します。その為、項は加算処理しかされないので、変数項Aと変数項Bがあった場合、

 

  A + B = 1
 

のような感じの書き方ができるのですが、この時に、Bが2つの場合、乗算が入りますが、2倍にする時の×2と言うのは定数項の処理なので、項を用いた式の場合には、変数項の前に定数項を書くことになります。その為、その条件が成立すると、

 

  A + 2B = 1
 

のような形になります。除算の場合、中学校い子の式では、割り算の記号は見かけなくなり、多くの場合、分数での表記になりますから、Aを2で割る場合だと、係数として1/2をかけた物になります。分数の学習は、小学校2年生から登場しますが、小学校2先生では、掛け算と割り算も行うので、割り算の拡張として、小数点数ではなく分数を使った表示をする方法を学習します。分数については、

 

 ■ 小学校の算数(分数や小数点)

の中で触れていますが、小学校で学習する分数は中学校以降では常に使う物になりますから、必須な知識になりますが、項を扱うときにも分数で使用するので、先程の式のAをで2割った状態に変更すると、

 

  A/2 + 2B = 1

 

のようになります。そして、中学校1年生の数学では、負の数も学びますから、 【 減る 】 と言う状態変化は、 【 符号の変化 】 で扱う事になります。その為、項に対して符号を与える事で±の状態を反転させることができます。その為、先程の式の2Bを引く式にする場合、小学校までだと、

 

  A/2 - 2B = 1

 

のような感じで変わっていましたが、中学校からはこのような変数項を用いた式になるので、

 

  A/2 + -2B = 1

 

のような感じになります。項を使たつぃきの場合、基本的に加算になるので、 【 処理の工程表 】 のような状態にすることができるようになります。その為、

 

  5A/2 + -2B/3 = 1

 

のような感じで、加算以外の処理を一つの項に付加する事ができるようになります。このような構造で式を組むことになる訳ですが、小学校2年生で、 【 かけざん 】 を学ぶ時に、 

 

かけざん = 同じ数を指定した数だけ足す処理

 

と言う処理の流れを学びますが、この処理が、プログラミングの中で使用する 【 反復 】 になりますが、乗算とは、数値指定型のループと全く同じものになります。

 

 この乗算は加算のループ処理になりますが、中学校1年生の数学では、 累乗を学習します。累乗の場合、数値の斜め上に指数が追加されますが、

 

累乗 = 同じ数を指定した数だけ掛け合わす処理

 

になります。その為、乗算と累乗は、ループ処理になるのですが、

 

     乗算 : 係数の変化

     累乗 : 指数の変化

 

と言う処理になります。中学校の数学だと、指数や係数の理解をする為に定数項を用いますが、変数項を用いて数値の推移をさせる事はありません。ただし、数学において 

 

【 定数化した係以外は、変数化できる 】  

 

ので、変数xの式を構築した場合でも項を構成する係数や指数を変数化した恒等式を構築して、数値の推移をさせる事でグラフを動かす事ができます。

 

 三平方の定理を見ると、二次関数のように指数を持った変数項の等式が出来上がっていますが、この等式にも。

 

■ 等式の特性                     

 

     両辺に同じ数値を 【 足しても 】 等式は成立する

     両辺に同じ数値を 【 引いても 】 等式は成立する

     両辺に同じ数値を 【 掛けても 】 等式は成立する

     両辺に同じ数値で 【 割っても 】 等式は成立する

 

と言う特性があります。この特性は中学校1年生の数学の一次方程式の解を出すための移項の時に使用する事になる訳ですが、

 

 2x - 3 = 1

 

のような式があった時に解を見日ちき出すときにこの法則を使います。まず、xの解を出そうと思うと、数字が邪魔なので、右辺に移動させる必要があるので、

 

 2x - 3 (+3) = 1 (+3)

  

とします。すると、

 

  2x  = 1 + 3 

 →2x  = 4

 

となります。この場合、2倍にすると4になる数値なので、両端を2で割れば答えが出るので、

 

  2x (÷2) = 4  (÷2)  

 →x = 2

 

となります。この処理を見ると、両端から同じ数値を引いて移行して、両端を同じ数で割って解を導き出していますが、等式の場合、こう言った処理ができます。この法則は項を使う式では使っていくことになるのですが、三平方の定理も移項で式を変形できるので、

 

■ 三平方の定理                   

 

   斜辺2 = 底辺2 + 高さ2

 

   底辺2 = 斜辺2 - 高さ2

 

   高さ2 = 底辺2 - 斜辺2

 

のようになります。つまり、全てが2乗になっているので、元の数値にする場合には、指数を外せばいいので、両辺を1/2乗にすればいいので、平方根を出すと各辺の長さを算出でき量になります。

 

 この拡張として、直角三角形の底辺と斜辺の間の角をΘとして、各辺の比率を使って辺の長さを出せるようにした物が三角比になりますが、高校では、この拡張をした三角関数(円関数)を使う事になります。

 

 三角関数では、単位円と言う物を使うのですが、直角三角形だけで使用できる三角比を角度の制約を受けないようにした物が三角関数になります。ここで使用するのが、

 

 

のような円になりますが、Θが変わると、この円弧の任意の場所に頂点が来る事になり、そこから推薦を下した時に出かがる三角形を基準に三角比で計算を行い解を求める事ができるのが三角関数になります。この単位円の公式は、  

 

■ 単位円                        

 

  x2 + y2 = 1

 

 

と言う式になりますが、この演算記号を変更すると面白い式が構築できます。例えば、これを減算にした場合、

 

 

のような線対称の式がグラフが出来上がり、これを乗算にすると、

 

 

のような形が出来上がります。この星型ですが、係数を分数にすると大きくなり、係数を整数にすると小さくなります。

 

 

 

この式を見てみると、XとYが数式に含まれるような式が登場していますが、このような 【 二変数関数 】 が高校になると登場しますが、高校のカリキュラムだと、三角比や三角関数は波動などでも使用しますし、幾何ベクトルや数学IIIで出てくる極座標などでも三角関数を使います。その為、高校では、その基礎分野となる三角比と三角関数をしっかりと理解しておいた方が後のカリキュラムを理解しやすくなります。この辺りは、小学校低学年の基礎知識が高学年で役に立つのと同じだったり、中学校1年生の数学の基礎がその後では理解できている事を前提にカリキュラムが進むのですが、高校も1年生のカリキュラムの理解が出来ている事を前提にカリキュラムが進みますし、その知識の拡張で新しい事を覚えていく事になるので、基礎固めは常に必要になります。

 

 

リキュラムと数式                 

 

 算数や数学は進学するごとに基本部分が変わるのですが、小学校から高校では扱う物が違います。この三つを比較すると、学ぶ仕様が変わるのですが、基本的に、

 

    小学校 : 定数項を基準とした式

    中学校 : 変数項を基準とした式

    高  校 : 関数などの処理を基準とした式

 

が基準となります。この定数項、変数項は項を含めた式として登場しますが、高校の数式になると、項が関数に入れ替わったような物が登場したり、極限や三角関数のように 【 記述が複雑になる 】 ので、中学校の項の概念が理解できていないと厳しくなります。

 

 また、グラフも座標平面を数学や幾何ベクトルでも使用しますが、それとは別に、

 

    複素数平面

    極座標

 

のような物も登場するので、平面上の座標ですが、中学校までに学んだ関数ノグラフとは少し考え方が異なる物になります。

 

 極座標と言うのは何か?と言うと、人の視線変化と同じものと考えられるのですが、

 

    立っている場所      : 極O

    人が見ている視点の先 : 始線X

 

がある時に、特定の角度と距離にある点Pが存在している時の座標になります。この場合、カメラの場合だと、 

 

    俯瞰

    あおり

 

のような感じで、見上げたり見下ろしたりするわけですが、見ている場所は決まっていますから、視線の中心が存在します。これを水平線にした物がアイレベルになりますが、極座標の場合、扱っている物が直線ですから、この概念をイメージする場合、 【 カメラの光軸 】 にしたほうが解りやすいかもしれません。

 

 カメラの光軸は直線ですから、センサーの中心に入る光は面に対して法線のように直角に当たっています。そして、光はTS-Eレンズのように光軸を曲げない限り直線的に伸びますから、対象物から反射した色の波長をカメラに届けています。この光の波長をレンズで集約して焦点を合わせて像を得るのがカメラになりますが、焦点を合わせなければ鮮明な像は得られませんから、焦点距離を合わせる必要があります。フォーカスを合わせるという作業は、このピントがある焦点距離を合わせてセンサーで焦点が合うようにする作業になりますが、最適な距離に指定するとフォーカスが来ます。この時には 【 被写体とセンサーまでの距離 】 があるので、それを合わせる事になりますし、カメラの場合、最短撮影距離もありますから、ワーキングディスタンスが短すぎると焦点が合う範囲を超えてしまうのでピンボケをしてしまいます。つまり、 【 カメラでフォーカスを合わせる 】 場合には、距離の概念がありますが、この時に、方角や高さが決まっている場合だと、撮影距離と言う 【 被写体とセンサーまでの距離 】 が発生する訳です。つまり、写真や動画を撮る場合には、

 

    距離

    仰角

 

と言う二つの条件が存在しますが、

 

    距離 : センサー ~ 被写体までの位置

    仰角 : X軸回転の角度

 

になりますから、カメラのセンサーの位置に該当する原点に該当する物が 【 極O 】 で被写体の位置が 【 点P 】 とした場合、距離は、この二点をユークリッド距離で繋いだ物になります。この時に、

 

    距離 : r

    偏角 : Θ

 

とした場合、点Pの極座標は、

 

■ 極座標                        

 

    極   : O

    点   : P

    始線 : X

    距離 : r  (O~Pまでの距離)

    偏角 : Θ (点Pを見上げる角度)

 

とした時、

 

   極座標 : P(r , Θ)

 

となる。

 

 

のようになります。ただし、これを極座標ではなく、直交座標にした場合、馴染みのある座標平面と同じですから、点Pの座標はP(x , y)になります。この状態だと、斜線がrで偏角がΘですから、三角関数がそのまま使えるので、

 

■ 三角関数                        

 

    極   : O

    点   : P

    始線 : X

    垂直 : Y

    距離 : r  (O~Pまでの距離)

    偏角 : Θ (点Pを見上げる角度)

 

の場合、直交座標 P(x , y) のxとyは

 

  x = rcosΘ

  y = rsinΘ

 

で示す事が出来る

 

ので、直交座標にした場合でも点Pの座標を示す事ができます。この内容は極方程式出てきますが、極方程式とx,yの方程式では式が異なりますが、極方程式を使うと座標を取得しやすくなります。そう考えると、極方程式とx,yの方程式を相互変換できると、現実世界の空間と極座標を相互に行き来して座標変換をすることができるようになります。こうした式の変換をする場合、中学校で学んだ二次方程式や三角関数を用いる事になるので、先程の変数xと変数yが三角関数になった状態の物を展開した二次方程式に適応して計算していくことになります。

 

 中学校の数学では、恒等式が登場するので、定数ではなく変化する数値を代入できる 【 変数項 】 と言う数値を格納できる箱を扱うようになったのですが、高校では、極限とか微分とかのように 【 アルゴリリズム 】 をギリシア文字で指定して計算したり、総和を示すΣなども登場しますから、ここで、指定した変数の代入と数直線上に存在する自然数の最大値の指定して計算するような構造体も出てきます。

 

 中学校までの数学は、変数を用いた順次処理やループ処理の含まれた 【 項 】 というレベルのアルゴリズムだったので、ソースコード内のモジュールを作るのにアルゴリズムを直接書いてコードを作るようなイメージの数式だったわけですが、高校になると、実装関数を呼び出して変数の代入をして動かしているような状態になるので、項の加算式のような 【 順次処理 】 の工程表を作るとしても、項で構築する時とは異なり、高校では、様々な処理の塊が記号化されて出てくるので 【 実装関数を利用して式を組むような作り 】 になっています。

 

 中学校までの式の構造は、 【 項の拡張 】 ですから、変数項を演算によって加工するので、 【 式の構造体 】 を見ると処理の内容が解る作りになっていますが、高校では、先程の総和を示すΣもそうですが、微分や積分を示す∫も出てきますから、このギリシア文字に対して記述が加わったような構造体を使う事になります。

 

 これは、変数項ではなく、プログラミング言語の場合だと、 【 複数の変数項を代入してアルゴリズムを実行できる実装関数の類 】 になるので、 【 アルゴリズム 】 を記号と数値で示している物になります。

 

 こうした構造体も使用する事になりますが、中学校の数学では、一次関数を学ぶ中で、 【 変数項 = 変数Xの式 】 と言う構造体を学習します。これを変数項に置き換えると、 【 A  = B 】 になりますから、当然のように等式の特性上 【 B = A 】 が成立します。その為、 【 C = A + 1 】 と言う式があった場合、前述の条件から 【 C = B + 1 】 が成り立つわけですが、一次関数では、変数が数式と一致するという事を証明しているので、

 

 A = B + 1

 C = 2A + D

 

と言う条件があった場合、変数Aは式と一致しているので、

 

 C = 2(B + 1) + D

 

が成り立ちます。こうした、 【 式の代入と計算 】 が高校の数学だと出てくるので、等式は解のほうだけでなく、変数項として宣言した場合、数式としても使用できるようになっている訳です。また、三角関数の場合、1になる条件がありますがから係数とその条件が加わった場合、係数の1倍になるので、その関数部分を省略できるようになります。こうした 【 条件によって発生する法則性 】 も組み合わせて計算を行い解を導き出す事になります。

 

 構造物で言うと、高校の数学は二変数関数なども学ぶので複数の変数を実装して関数を作れるようになったり、変数に値を代入してループの数を指定して総和を出したり、変数に関数を代入して、その関数を実装した式を作って解を導き出すような事もしますから、

 

 【 関数を項のように使って計算式を作る 】 

 

事も行います。その為、 【 アルゴリズムを項のように使って式を作り挙動を作成する 】 と言うプログラミングに近い考え方の物を数式で扱う方法を学習する事になります。

 

 極座標は仰角として考えると、解りやすいので一変数関数のデカルト平面の視点をトップビューからサイドビューに変えた状態の考え方になりますが、高校の数学だと、単位円を使った三角関数のほかに、複素数平面や線形代数など方角をコントロールする計算方法を複数学びます。複素数平面は 【 n角形の頂点を算出するのに向いている物 】なので、直線→三角形→四角形→五角形→六角形....のように正多角形を作れるという特性がありますから 【 内角を360/n度で分割する事ができる 】 ようになっています。そして、三角関数を利用した物が幾何ベクトルですから、移動についてはスプライト処理で使用するような平面移動や方角の変化だけでなく仰角の検知までできるようになっているのですが、ゲームで使うアルゴリズムだと、 【 対象の方向を向く 】 と言うアルゴリズムもありますが、この処理はアークタンジェントを使うだけで実装できます。これを中学校までの知識で行おうとすると、自作のステートマシンで複雑な処理を条件分岐で実装しなくてはなりませんが、結構簡単な処理で実装する事ができます。中学校だと、似たような処理をしようと思うと、三平方の定理からアークタンジェントっぽい挙動になるようなアルゴリズムを考える事になるので、座標県とと差分の処理で追いかける時に三平方の定理で座標間の距離を検知してそれが短くなるようにマンハッタン距離の考え方で移動させるような方法もありそう(当然、選択肢の一つですから、中学校までのカリキュラムだけで作れるもっといいアルゴリズムもあるかもしれません。)ですが、高校の三角関数を学んだ後だとゲーム内でどんなことができるようになるのか?と言うと、

 

    キャラを任意の方向に同じ距離だけ進ませる

      ことができる

 

    MOBや敵弾がプレイヤーを追尾する

 

ような物を作れます。ナビゲーションメッシュに該当するような評点の判定は実装していないので、障害物があるとそのままハマってしまいますが、何もない空間だと延々とプレイヤーを追い続けるアルゴリズムを実装する事ができます。追尾とは、

 

    プレイヤーの方向を向く

    直進をする

 

と言うアルゴリズムになりますが、この時に、Y=Y+1やX=X+1のいずれかを正面の移動とした場合、そこからの角度の変化を加えると進行方向が変わります。その後直進すると、違う方角に進みますから、特定のタイミングで判定を行ってアークタンジェントで判定をして向きを変えて移動すると、追尾をすることになります。ゲームの場合、1msで常に計算する必要はないので、ゲーム内では、その最高速で計算しないようにティックを設けてラグを入れてそのティック単位で何ティックで判定を行うのかを実装して動かす事になります。

 

 

 プライトと座標制御               

 

 ゲームを作る時に2Dのグラフィックを使う場合にはスプライトを使用しますが、平面の表示をする時にスプライトを使用します。

 

 この場合、平面座標での制御になりますから、座標平面における座標と同じ考え方ができるので、処理については、数直線を拡張した考え方になります。

 

 このとkに、ラスターグラフィックでい制御するのと、ベクターグラフィックで管理するのでは全く違いますが、平面での処理の場合だと、二軸なので、ベクターグラフィックを使った場合には、数学で使用する座標平面と全く同じ所が行えます。

 

 

■ 数直線とグラフ                  

 

 小学校1年生の算数で、 【 かずのせん 】 が登場し、最終的に6年生の算数まで正の数の処理なのでこれを使います。高学年になると、これが二次元化した 【 グラフ 】 を使う事になりますが、基本的に、幾何学と代数学を組み合わせて使用する統計学の分野で使用するのがこのグラフになります。この発明は17世紀にデカルトとフェルマーによって発明された物になりますが、小学校で学習する物は、

 

    かずのせん : 正の数のみの座標を持つ数直線

    グ  ラ  フ : 正の数のみの座標を持つグラフ

 

を使います。この基礎学習で

 

    数直線

    グラフ

 

の特性の理解をする事になりますが、これを1/4ではなく、全ての方向で使用できるようにするために拡張するのに必要になるのが、

 

    負の数

    絶対値

 

の組み合わせになります。これは、中学校の数学でも初期に登場する物ですが、 【 0よりも小さな数 】 を扱う時に使用します。

 

 負の数と絶対値については、こうした処理での利便性があるので使用されている訳ですが、 【 ”減る” と言う現象を具現化した物 】 が符号になります。つまり、 【 減算の処理を加算で行う為の物 】 としてこれを学習します。この拡張として、乗除算の処理もまとめて、数式を加算処理の構造体にする為の使用するのが 【 項 】 になりますが、小学校では、 【 数値と言う定数項を用いた処理 】 で算数を学び、計算方法や法則性を学習する事になります。

 

 

■ 小学校のカリキュラム              

 

 小学校の算数ですが、 【 答えが必ず出る物 】 を扱います。その為、構造的には 【 方程式 】 と同じ物なので、基本的に算数の中では、 

 

【 等式 】 を基準とした 【 アルゴリズムと結果が一致する物 】

 

を学習します。とは言っても、数値の大小を記号で示す不等号が登場しますから、中学校で学習する 【 等式・不等式 】 の基本も学習します。こうした 【 中学校の数学で登場する物の基礎 】 を小学校で身に付ける訳ですが、基本的に、小学校で学習する物は、数字での計算になっていると思います。つまり、計算式と答えは常に数字になっているはずです。

 

 この状態は 【 数値が確定している 】 ので、 【 数字 】 で表示されている訳ですが、この状態が 【 定数 】 になります。その為、穴埋め問題のように 【 数式が完成していない物 】 や幾何学の分野のように 【 図形を見て数式を導き出して計算する物 】 も存在しますが、小学校では、 

 

    定数項を用いた計算

    等式に寄る式(ただし、不等号も学習する)

    0以上の数値を使う

 

と言う条件でカリキュラムが構築されています。そしてこの条件で、固定小数点数も使いますから、正の数を使う為の学習を行う事になります。小学校では、 【 かけざん 】 と言う 

 

同じ数を指定した数だけ足していく処理を簡素な式として書く方法

 

を学習しますが、こうした同じ数に特定の演算処理を指定した数値分だけループして行う処理は 【 かけざん 】 として登場します。これが中学校の数学では、累乗が登城するので、

 

同じ数を指定した数だけ掛けていく処理を簡素な式として書く方法

 

を学習します。その為、掛け算の法則性の拡張として、掛け算のアルゴリズムを掛け算自体で行う方法を学習する事になります。

 

 高学年になると 【 データの整理 】 でデータと法則性を考えるカリキュラムも出てきますが、こうしたカリキュラムによって、社会や理科と算数の関連性がより深くなってきます。つまり、日常を体験する理科と、日常生活に関係する社会の中で存在する物は算数で判断できる物がある事を学習する事になります。

 

 これは、17世紀に解析学が登場して以降、数学は多岐にわたって使用されるようになったので、至極当然な内容と言えますが、データを元にグラフにしたり、数値の羅列から法則性を導き出すようなことを行います。この解析学の入り口が

 

    等差数列 

    等比数列 

    比   例 

    反 比 例 

 

になります。等差数列と比例は、グラフにすると直線が生成されますが、この時に、 【 数値の変化 】 を見て解を導き出す事になりますが、小学校では、 【 数値の対比で増加分を見て、そこから法則性を導き出す 】 事になります。

 

 等差数列や等比数列では、交差が存在しており、それが

 

    等差数列 : 公差の分だけ増える(足し算)

    等比数列 : 公差を書けた数になる(掛け算) 

 

と言う変化が発生します。その為、等差数列では、

 

 

のようになりますが、等比数列では、数値の増え方が凄いので、

 

 

のような変化になります。等比数列の場合、公差を2にしても結構な数の増え方になりますが、こうした数値の変化から交差を見つけて、穴あきになった数値を回答したり、交差を答えるような問題を解くことになります。

 

 比例については、完全にグラフなので、

 

    正比例 : 一次関数 

    反比例 : 分数関数

 

と同じなので、正比例の場合、

 

 

のように数値の増加に対して法則性を持って変化している物になりますが、この場合、右型上がりの増加をします。これに対して、反比例は、分数なので、

 

 

のような形で変化します。

 

 

■ 中学校1年生の数学               

 

 中学校1年生の数学では、一次関数が出てきますが、これは、等差数列の法則性を式で示したものになります。正比例は、

 

 

のような感じになっているので、この場合だと、元の数値の2倍になった状態で数値が推移しています。この場合、

 

答え = 元の数値 × 掛け合わせた数

 

になっています。これが小学校の比例ですが、

 

    元  の  数  値 : 変化している  →  変数 

    掛け合わせた数   : 変化していない →  定数 

 

と言う事になります。と言う事は、

 

    変数 : 【 解 】 と 【 元の数値 】 

    定数 : 掛け合わせた数値

 

となります。この時の掛け合わせた数値を 【 係数 】 として示した場合、

 

    解   : y 

    変数 : x

    係数 : a

 

とした場合、

 

 

と言う式で示す事ができます。その為、

 

 

の場合、 【 y=2x 】 の一次関数と言う事になります。この場合、スタートラインは原点の0ですが、物事にはスタートラインが異なる場合もあります。例えば、器があって、最初に10リットルの水が入っており、そこに1分間に常に2リットルの水を入れていった場合、分間の水の増加分は先程の式と同じになりますが、スタートラインが0ではないので、初期値の10リットル分を加算する必要があります。

 

 このように物事にはスタートラインが0の場合と任意の数値の場合がありますが、これを解消する為に、前述の式にスタートラインの値を加算できるように拡張する必要があります。この時のスタートラインの数値は、 【 加算 】 なので、 【 項 】 と付加する事になりますが、この時に

 

    解   : y 

    変数 : x

    係数 : a

    項   : b

 

とした場合、

と言う式で示す事ができます。これが一次関数の式になりますが、基本部分は正比例と全く同じですが、スタート地点の座標をどうするのか?を項として用意したbで指定する事になります。小学校の三図腕出てきた正比例の場合、原点座標からスタートしているので、b=0と言う条件が成立しているので、y=axのグラフなので、現点から伸びるグラフの形になっています。こ変数項同士の場合、演算記号を用いて表記すると式が分かりにくくなるので、それを回避する為に項を用いて式を簡素化する事になりますが、中学校の数学では、変数項をアルファベットで表記し、定数項をアラビア数字で表記する事になりますが、式の成り立ちは中学校1年生の数学の序盤で出てくる 【 項 】 を用いた物になります。

 

 

■ スプライトと数列                 

 

 スプライトの制御ですが、この場合、座標の移動はスプライトの単位で行い、動いているように見せているのは、画像の切り替えによる処理になります。とは言っても、通常のアニメのようにシーケンシャルファイルを作って読み込ませるとVRAMへのアクセスが増えてしまうので、処理が極端に遅くなります。その為、アニメーションは画像の枚数を増やすのではなく、単一の画像内にモーションを用意しておいて、それを読み込んで使用するような流れになっています。

 

 ラスターグラフィックは解像度なので、左上が原点で、そこから、右下に向かって数値が増える仕様になっていますがドットの集合体なので、解像度を基準に考える事になります。プログラミング言語では、ラスターグラフィックの画像の表示範囲を指定する事ができますが、この考え方が、中学校1年生の数学で登場する 【 変域 】 と同じ考え方になります。キャラの歩行モーションの場合、

 

 

 

のようなドット絵を配置しますが、これは同じサイズで指定された枠内に画像を描いてそれを配置していくことになります。この時に、

 

    停止 : 中央のタイル 

    移動 : 左右のタイルのパターンの入れ替え

 

で処理をすると、移動と停止時のパターン制御ができます。この時に、入力でパターンの切り替えを行えるようにしておくと、その向きで制止し、方向を変えてモーションが発生するようにできます。この条件で考えると、

 

    タイルの横の解像度 

    タイルの縦の解像度

 

を用意する必要があるので、これを最初に 【 定数 】 で宣言する事になります。そして、タイルを呼び出す場合、先程のモーションの用の物だと、3パターんですから、1~3の数値を使う事になります。と言っても、0~2と考えた方が解りやすいので、

 

    タイルの初期値 : 0 

    静 止 状 態  : 0+1

    移 動 状 態  : 静止状態ー1 と 静止状態+1

   

と言う処理をすると、0~2までの数値でタイルの座標をコントロールできます。マップを作る時にはチップを用意して配置する事になるのですが、WOLF ROGエディタでは、

 

 

のようなチップを使って管理が行われていますが、考え方としては、こんな感じでタイルを用意してそれを座標指定をして管理をすることになります。この場合、チップの座標をドットと同じように整数制御で考える事になるので、数列の推移としてこの値を扱う事が出来るので

 

    横の番号

    縦の番号

 

と言う二次元配列で画像の場所を指定する事ができます。ただし、プログラミング言語の場合、k露絵を数値で行うので、座標のような扱いになりますから、現点からタイルの大きさを指定した範囲選択をしてタイルの枠を指定する事になります。その為、考え方としては一次関数の変域と同じ考え方になります。この時の最大値は、タイルの対角になりますから、 【 定数 】 で指定している事になりますが、画像のような平面を座標で管理する場合、整数を用いた二次元配列で座標を管理する事ができます。この状態は、小学校の比例のグラフと同じになりますから、整数の目盛りだけで成立している二次元の数列における数値の変動で座標を示したような状態になります。

 

 グラフの場合、【 座標と言う一つの点 】 を導き出す事が出来ますが、 【 変域 】 では、 【 範囲 】 を示す事ができます。この場合、タイルの最大値を係数としておいて、これを加算する事で座標の移動ができるようになりますが、

 

    スプライトの始点 : 係数×0 

    スプライトの終点 : 係数×1

 

とした場合、変域を設ける事ができます。これをXY軸の双方にして押しておいて、ここに 【 係数 × 座標 】 分だけ移動させると、タイルの座標を指定する事ができるようになります。処理については、ドットと同じような整数処理になりますが、タイルの選択をする場合には、範囲内の任意の数値を用いるので、これは変数になり、これに対してタイルのサイズは定数で指定して変域を設けているので、実質的にタイルの範囲選択時の処理は、 【 係数 】 × 【 変数 】 なので、一次関数の 【 y = ax 】 と全く同じ処理を行っている事になります。

 

 アニメーションの場合だと、複数のタイルを横や縦に並べて座標の数値の変動で読ませるような処理を行いますが、この場合、初期値から次の数値に流れるインクリメント(現在の変数の値に+1をする処理)でループをするような流れになりますが、この場合、二軸ではなく、一つの軸なので、一次元の数列上の整数での数値の推移で制御をすることになります。

 

 ゲームのスプライトの処理は中学校1年生の数学で登場する一次関数と関連している部分が多いので、学習後だとそうした構造盛化しやすいと思いますが、一次関数は解析学なので、グラフと言う幾何と恒等式を用いた数値の推移と言う代数を用いるので、画像を数値で制御する方法として考える事もできるので、スプライトを使用する場合には、数学的な考え方でオブジェクトの制御が行われています。

 

 一次関数の 【 y=ax+b 】 という形ですが、b~=0の式の場合、各座標は原点ベースで発生しているので、ベクターグラフィックの場合だとグローバル座標と同じ状態になります。ただし、bの値がある場合、原点以外の定数の宣言がされており、その場所からの座標の変化になりますから、これは、ローカル座標と同じ考え方になります。

 

 グラフ上での座標ですが、

 

    定数や初期値の宣言 : グローバル座標

    座標の変化や推移   : ローカル座標

 

を用いる事になります。数直線上の数値で考えると、

 

    定数 : 座標の指定

    加算 : 現在の座標からの変化

 

ですから、前者で参照するのは原点であり、後者の場合だと、宣言されている値を基準とした推移になります。これは、幾何ベクトルでの合成でも同じ状態になりますが、座標平面上にある二つのベクトルを加算する場合には二次元の数直線の座標を個別に加算して解を出す事になりますから、加算処理をする場合には、原点ベースで発生した複数のベクトルの座標を二次元で処理をすることになりますが、基準となる座標に遺体して、もう一つのベクトルの座標を加算する事になります。この処理は、小学校1年生のさんすうの 【 かずのせん 】 をもちいた 【 たしざん 】 と同じ考え方ですから、数直線上での数値の変化と同じ状態になります。その為、演算処理を幾何と言う現実世界に存在する現象に置き換えた場合、 【 現状 】 と言う定数項が存在しており、 【 推移 】 と言う処理を追加するので、現状が項として値を持つ状態の場合、原点ベースでの状態変化ではありませんから、この状態はローカル座標のように原点0以外の場所を基準として発生した座標と考える事ができます。

 

 グラフィックの場合、原点ベースのグローバル座標で制御するのは固定された物だけですが、面積や体積を持つ場合には、この座標から変域を設けて範囲指定をすることになります。そうすることで、指定した座標から任意の範囲の空間を指定できるようになるので、平面だとそこにタイルを割り当てる事で、画像を表示できるようになります。

 

 この時のレイアウト用の座標を初期値として考えた場合、この座標を基準に用意した変域も座標に対する数値の変動に連動するので、初期値の座標を移動させるともれなく変域の座標も動かす事が出来るので、初期値の指定はグローバル座標での定数項での値の指定をしますが、扱う場合には変数指定をしておき、その一点の座標の数値での制御によって移動を実装させることになります。

 

 スプライトは矩形なので、四点の制御になりますが、ポリゴンの場合、形状を生成する頂点座標が孫座敷いていますが、基本的な考え方はスプライトと同じで、初期値を指定した一つの座標を基準として、そこから任意の距離にある座標の集合体を用意する事になります。この座標を基準となる座標からの距離で管理する事で、スプライトと同じようにジオメトリ単位での移動ができるようになるので、ジオメトリを構成する頂点座標はローカル座標で管理されている事になります。

 

 一次関数の場合、 【 y=ax 】 のような原点ベースの考え方の物のようなイメージをしているかもしれませんから、【 項 】 や 【 変域 】 の変化と言うのはイメージしにくいと思いますが、 【 項bを加算して切片がある状態 】 については、グラフィックとして考えた場合には、 【 ローカル座標でのグラフの推移 】 になります。

 

 グラフィックの考え方がベクトルと同じなので、関数とは少し異なりますが、数値の確定をする場合には、現点0から考えるので、グローバル座標での指定をする必要になり、数的な推移を考える場合、初期値が存在するので、原点以外の初期値を用意する事になりますから、ローカル座標を用いる事になります。この初期値のある状態での推移が、Y切片が発生する 【 y = a x + b 】 の形で  【 b > 0 】 の条件を満たした場合の式になります。