ベクトル A(ax,ay)ベクトル、B(bx,by)ベクトルとのなす角が 直角 ( 内積 == 0 ) >A.dotProduct(B) == 0 >ax * bx + ay * by == 0 鈍角 ( 内積 < 0 ) >A.dotProduct(B) < 0 >ax * bx + ay * by < 0 鋭角 ( 内積 > 0 ) >A.dotProduct(B) > 0 >ax * bx + ay * by > 0 A1(ax1,ay1)ベクトル、B(bx,by)ベクトルとのなす角α1とする。 Aが移動した点A2(ax2,ay2) ベクトルとBとのなす角α2とする。 α1とα2を比較する方法 >A1とB、A2とB内積を計算して、それぞれA1、A2のベクトルの長さで割った値を比較する ABベクトルと、進行方向Aiと、地点Bへの進入角度Biとが平行で向きが等しい >ab.assimilarity(ai) == 0 && ab.dotProduct(ai) > 0 && ab.assimilarity(bi) == 0 && ab.dotProduct(bi) > 0 >public int assimilarity(Ray r){ >return Math.abs(x * r.y - y * r.x); >}