前回は特別編が加わったため,
平面上のふたつのベクトルの外積から互いの位置関係がわかる
三角形はもっとも単純な多角形だ。そのため,
ベクトルの外積を使うと,
まず,
第52回表1 外積A×Bで定められるベクトル
外積の要素 | 求められた外積のベクトルとふたつのベクトルAとBとの関係 | ||
---|---|---|---|
方向 | 角度 | ふたつのベクトルAとBのどちらにも垂直 | ![]() |
向き | ベクトルAからBに向かう回転で右ネジの進む向き | ||
大きさ | |A||B|sinθ | ![]() |
お題は,
そこで,
では早速,
スクリプト1 ふたつのベクトルが右ネジの位置にあるかどうかを返す関数定義
function xIsRight(point0:Point, point1:Point):Boolean {
var vector3D_0:Vector3D = new Vector3D(point0.x, point0.y, 0);
var vector3D_1:Vector3D = new Vector3D(point1.x, point1.y, 0);
var crossProduct:Vector3D = vector3D_0.crossProduct(vector3D_1);
var bIsRight:Boolean = (crossProduct.z >= 0);
return bIsRight;
}
あいにく,
前述のとおり,
var bResult:Boolean = xIsRight(new Point(0, -1), new Point(1, 0))
trace(bResult); // 出力: true
この関数ができあがれば,
第1に,
第2は,