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アニメーションから抜粋させていただきました。
随時追加。
Tweet
May 22nd, 2010 at 17:35
[...] tion = list[n] / Math.PI * 180; この式をいっつもどっちがどっちだか忘れてしまうので、こっちにも書いてあるけどもっかいメモ ラジアン = 度 * Math.PI / 180; 度 = ラジアン * 180 / Math.PI; [...]
May 28th, 2010 at 05:11
[...] 3.0 アニメーション いろいろな計算式の参考になってとても勉強になる。 ここにこの本から公式を見て書いたエントリーもかいたんですが、 [...]