[AS3.0] 小数点以下を任意の位で切り捨て
ちょこっとメモ
_hoge = ( ( _hoge * 10 ) | 0 ) / 10; // 10 が任意の位 , _hoge:Number
四捨五入とかしたかったらMath系使っちゃえばいいやって感じで。
[AS3.0] 2次ベジェ曲線ってやったこと無かったなあ
curveToとか使って2次ベジェ曲線ってやったこと無かったなあと思ったので勉強。
This movie requires Flash Player 9
Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]
最後の部分は単純に書いてあげればいいんだけど、その前の部分では自然に線をつなげてあげるために工夫が必要っぽい
-
//arrは入った配列
graphics.moveTo(arr[0].x, arr[0].y);
var _len:uint = arr.length
for (var i: int = 1; i < _len-2; i++)
{
graphics.curveTo( arr[i].x, arr[i].y, (arr[i].x + arr[i + 1].x) * 0.5 , (arr[i].y + arr[i + 1].y) * 0.5);
}
graphics.curveTo( arr[_len - 2].x, arr[_len - 2].y, arr[_len-1].x, arr[_len-1].y);
-
このソースで、曲線を作るために必要な点がいくつになっても、汎用的に曲線を表現できる!
ベースは本に載ってるとおりだけど、上のソースで配列の全体から -2 している部分があるんだけど、本だと-3になってて最後の部分でも -3 から書いてある部分があって、でも -3 だとうまくいかなくて -2 ならうまくいく。 ここらへんは-2 で正しいとは思うんだけども、どうなんでしょう、、、
例).
pt1からpt2まで線を求めて
pt2からpt3を通ってpt4....っていくときは (pt2.x, pt2.y) から (pt3.x, pt3.y) の中心点を求めて pt1からpt2-pt3の中心点 で曲線を描く
次はpt3からpt4の中心点を求めて pt2-pt3の中心点からpt3-pt4の中心点 で曲線を描く
で、最後は単純にpt4からpt5の線を描く
- moveTo(pt1.x, pt1.y); curveTo(pt2.x , pt2.y,(pt2.x + pt3.x)*0.5, (pt2.y + pt3.y)*0.5); // ( pt2.x , pt2.y, pt2とpt3の中心点x, pt2とpt3の中心点y); curveTo(pt3.x , pt3.y,(pt3.x + pt4.x)*0.5, (pt3.y + pt4.y)*0.5); // ( pt3.x , pt3.y, pt3とpt4の中心点x, pt3とpt4の中心点y); curveTo(pt4.x , pt4.y, pt5.x , pt5.y); - //curveTo( カーブを作る点.x , カーブを作る点.y , 曲線の目的地.x , 曲線の目的地.y ); -
なんかうまく言葉にできないけど、理解はできた。 勉強になる。
下のswfは最初と最後をくっつけたバージョン。
最初と最後をくっつけたい場合は、最初と最後のポイントを、最初のポイントと最後のポイントとの中心点 にしてあげればおっけい。
※ stageクリックでラインを引きなおす
This movie requires Flash Player 9
[other] いまさらだけど、、
いまさらだけど、、
ブログのタイトルを ぶろぐー から blog.azzip-azzip.com に変更しました。
ただドメイン名にしただけです。
なんとなく ぶろぐー で初めてから変えよう変えようと思っていてようやく変更。。
まあ、特に意味はないんですけどね~。









