AS3.0_数式(公式)のメモ


actionscript3.0のアニメーションで使う数式とかのメモ!!
※6/5にいろいろ修正! と 追加





◯三角関数の計算:
角度のサイン    = 対辺 / 斜辺
角度のコサイン   = 隣辺 / 斜辺
角度のタンジェント = 対辺 / 隣辺

 
◯ラジアンから度へ、度からラジアンへの変換:

ラジアン = 度 * Math.PI / 180;
度 = ラジアン * 180 / Math.PI;
 
※Math.PIは円周率(π)
※ラジアンでは2πが360(Math.PI * 2 )


 

◯マウス(または任意の点)への回転:

//mouseX、mouseYは、その方向に向かわせる任意の点(xとy)
dx = mouseX - sprite.x;
dy = mouseY - sprite.y;
sprite.rotation = Math.atan2(dy , dx) * 180 / Math.PI;


 

◯波の作成:

//valueはスプライトやムービークリップのx,yなどのプロパティに割り当て描画する
public function enterHandler(event:Event):void{
     value = center + Math.sin(angle) * range;
     angle += speed;
}




◯円の作成:

public function enterHandler(event:Event):void{
     ball.x = center + Math.sin(angle) * radius;
     ball.y = center + Math.cos(angle) * radius;
     angle += speed;
}




◯楕円の作成:

public function enterHandler(event:Event):void{
     ball.x = center + Math.cos(angle) * radiusX;
     ball.y = center + Math.sin(angle) * radiusY;
     angle += speed;
}




◯二点間の距離:

dx = x2 - x1;
dy = y1 - y2
dist = Math.sqrt(dx * dx + dy * dy);




◯角速度のx,y速度への変換:

var angle:Number = 45 * Math.PI / 180; //45は進む角度 
vx = Math.cos(angle) * speed;
vy = Math.sin(angle) * speed;



 
◯角加速度のx,y加速度への変換:

ax = Math.cos(angle) * speed;
ay = Math.sin(angle) * speed;




◯加速度の速度への加算:

vx += ax;
vy += ay;




◯速度の位置への加算:

_mc.x += vx;
_mc.y += vy;


 

◯単純なイージング:

var vx:Number = (targetX - ball.x) * easing;
var vy:Number = (targetY - ball.y) * easing;
ball.x += vx;
ball.y += vy;

 


◯単純なバネ運動:

ball.vx += (targetX - ball.x) * spring;
ball.vy += (targetY - ball.y) * spring;
ball.vy += gravity;
ball.vx *= friction;
ball.vy *= friction;		
ball.x += ball.vx;
ball.y += ball.vy;




◯引力の公式:

var dx:Number = __parent.x - __child.x;
var dy:Number = __parent.y - __child.y;
var dist:Number = Math.sqrt(dx * dx + dy * dy);
 
var ax:Number = dx * _fiction;
var ay:Number = dy * _fiction;
 
__parent.vx -= ax / __parent.mass;
__parent.vy -= ay / __parent.mass;
__child.vx += ax / __parent.mass;
__child.vy += ay / __parent.mass;




◯任意の点を通る曲線:

// xt , xy は通過させる点
// x0 , y0 , x2 , y2 は曲線の両端の点
x1 = xt * 2 - ( x0 + x2) / 2;
y1 = yt * 2 - ( y0 + y2) / 2;
 
moveTo( x0 , y0);
curveTo( x1 , y1 , x2 , y2 );




◯高度な座標回転:

var dx:Number = ball.x - stage.stageWidth / 2;
var dy:Number = ball.y -  stage.stageHeight / 2;
var x1:Number = Math.cos(_vr) * dx - Math.sin(_vr) * dy;
var y1:Number = Math.cos(_vr) * dy + Math.sin(_vr) * dx;
ball.x = stage.stageWidth / 2 + x1;
ball.y = stage.stageHeight / 2 + y1;




◯colorの連結:

var r:uint = 0xFF;
var g:uint = 0;
var b:uint = 0;
 
var color:uint = r << 16 | g << 8 | b;




◯color成分の取得:

var red:uint = color >> 16;
var green:uint = color >> 8 & 0xFF;
var blue:uint = color  & 0xFF;





ActionScript3.0アニメーションから抜粋させていただきました。


 

随時追加。

  このエントリーをはてなブックマークに追加    

2 Responses to “AS3.0_数式(公式)のメモ”

  1. AS3.0_フィボナッチの勉強 › ぶろぐー Says:

    [...] tion = list[n] / Math.PI * 180; この式をいっつもどっちがどっちだか忘れてしまうので、こっちにも書いてあるけどもっかいメモ ラジアン = 度 * Math.PI / 180; 度 = ラジアン * 180 / Math.PI; [...]

  2. 数式_物理の参考書とかいろいろ › ぶろぐー Says:

    [...] 3.0 アニメーション いろいろな計算式の参考になってとても勉強になる。 ここにこの本から公式を見て書いたエントリーもかいたんですが、 [...]

Leave a Reply