この記事のURL

http://www.dango-itimi.com/blog/archives/2006/000861.html


FLASH tips 円に対する線分の反射

前回のベクトル反射と今まで作ってきたもろもろの円関連の処理を行うメソッドを利用し、円に対する線分の反射処理を行い、反射に必要な各データを得られるメソッドを作成しました

【 サンプル 】

各青点はドラッグ&ドロップが可能です。


【 ソース 】
 →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メソッドのものと同じです。
また、円内部からのベクトル反射にも対応しております。

[ FLASH ] [ tips ] 投稿者 siratama : 2006年03月02日 01:14

トラックバック

http://www.dango-itimi.com/blog/mt-tb.cgi/821

コメント

以下コメントを書き込むだけでは、管理人には通知が行われません。通知を行いたい場合、管理人の書き込みに「返信」を押してコメントをしていただくか、あるいは Google+, Twitter へご連絡ください。




[EDIT]