タグ : ,

三角関数(回転行列を用いた円運動) : ActionScript2.0

投稿日 : 2008年5月8日 | 更新日 : 2010年12月10日 前のページへ戻る

回転行列を用いたActionScript2.0による円運動のサンプルです。

/*回転行列を使った円運動*/
// クリップ作成オブジェクト
function PointClip(degree, radius, centerX, centerY) {
	// 変化分(弧度)
	var radian = Math.PI/180*degree;
	// 径
	var radius = radius;
	// 円中心
	var centerX = centerX;
	var centerY = centerY;
	// 三角比
	var cos = Math.cos(radian);
	var sin = Math.sin(radian);
	// 初期位置
	this._x = radius*Math.cos(0)+centerX;
	this._y = radius*Math.sin(0)+centerY;
	var i = 1;
	/* onEnterFrame */
	this.onEnterFrame = function() {
		var x1 = this._x-centerX;
		var y1 = this._y-centerY;
		var x2 = cos*x1-sin*y1;
		var y2 = sin*x1+cos*y1;
		this._x = x2+centerX;
		this._y = y2+centerY;
	};
}
// 角度の増分,半径,中心のX座標,Y座標
var o = new PointClip(5, 50, 100, 100);
_root.attachMovie('point', 'point', 0, o);
逆に回転させる
/*回転行列を使った円運動*/
// クリップ作成オブジェクト
function PointClip(degree, radius, centerX, centerY) {
	// 変化分(弧度)
	var radian = Math.PI/180*degree;
	// 径
	var radius = radius;
	// 円中心
	var centerX = centerX;
	var centerY = centerY;
	// 三角比
	var cos = Math.cos(radian);
	var sin = Math.sin(radian);
	// 初期位置
	this._x = radius*Math.cos(0)+centerX;
	this._y = radius*Math.sin(0)+centerY;
	var i = 1;
	/* onEnterFrame */
	this.onEnterFrame = function() {
		var x1 = this._x-centerX;
		var y1 = this._y-centerY;
		var x2 = cos*x1+sin*y1;
		var y2 = -sin*x1+cos*y1;
		this._x = x2+centerX;
		this._y = y2+centerY;
	};
}
// 角度の増分,半径,中心のX座標,Y座標
var o = new PointClip(5, 50, 100, 100);
_root.attachMovie('point', 'point', 0, o);

ActionScript2.0 | 固定リンク | Comments (0)

関連記事

このページの上へ移動

コメント

コメントはまだありません。

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。

 

 

 


トラックバックURL

http://www.findxfine.com/flash/actionscript/355.html/trackback

このページの上へ