円に対する線分の反射
前回のベクトル反射と今まで作ってきたもろもろの円関連の処理を行うメソッドを利用し、円に対する線分の反射処理を行い、反射に必要な各データを得られるメソッドを作成しました
【 サンプル 】
各青点はドラッグ&ドロップが可能です。
【 ソース 】
→Equation.reflectCrclメソッド
Equation.reflectCrclメソッド内で利用しているEquation.checkCrossingメソッドは前回のベクトル反射のエントリーから、以前作成したメソッドよりシンプルな内容の処理に変更しています。バグの疑いもありました。
【 使用例 】
//_rootに点を示すムービークリップ mc1, mc2, mc3が存在する
var CRCL_R:Number = 45; //円の半径
var pt1:Object = { x:_root.mc1._x, y:_root.mc1._y };
var pt2:Object = { x:_root.mc2._x, y:_root.mc2._y };
var crcl:Object = { x:_root.mc3._x, y:_root.mc3._y, r:CRCL_R };
var line:Object = { pt1:pt1, pt2:pt2 };
//二直線交差・反射データ取得
var data:Object = Equation.reflectCrcl( line, crcl );
if( data != null ){
//赤点位置
trace( data.cls.x );
trace( data.cls.y );
//緑点位置
trace( data.vr.x+data.cls.x );
trace( data.vr.y+data.cls.y );
//紫点位置
trace( data.vn.x+data.vr.x+data.cls.x );
trace( data.vn.y+data.vr.y+data.cls.y );
}
Equation.reflectCrclメソッドの戻り値は、前回のベクトル反射でのEquation.reflectLineメソッドのものと同じです。
また、円内部からのベクトル反射にも対応しております。


