‘flash’ カテゴリーのアーカイブ

「AS3で半径小さい円を描いて拡大したらつぶれていて~」の原因を検証

2009 年 1 月 2 日 金曜日 by key

先日nitoyonさんの AS3で半径小さい円を描いて拡大したらいびつになってる にコメント書かせてもらったのですが、推測のままだったので検証してみました。

「drawCircle内部で行われている描画の各座標が1twipで丸められている」という仮説なので、drawCircleのコードを見て丸めてやれば良いのでは…と思ったんですがdrawCircleのコードが見れないですね。はいはい書きます書きます。

  1. /**
  2. * flash.display.Graphics#drawCircle再実装
  3. * コードは推測。でも合っているっぽい
  4. */
  5. private function drawCircle(graphics:Graphics, x:Number, y:Number, radius:Number):void {
  6.     var cradius:Number = radius * CONTROLPOINT_RADIUS;
  7.     graphics.moveTo(x + radius, y);
  8.     for (var i:uint=0; i<8; i++) {
  9.         var ca:Number = (i + 0.5) / 8 * Math.PI * 2;
  10.         var aa:Number = (i +   1) / 8 * Math.PI * 2;
  11.         graphics.curveTo(
  12.             x + Math.cos(ca) * cradius, y + Math.sin(ca) * cradius,
  13.             x + Math.cos(aa) * radius, y + Math.sin(aa) * radius
  14.         );
  15.     }
  16. }

この内部で使われているmoveToとcurveToに渡す座標を、拡大後の0.05pixelに相当する大きさで丸めて同じ表示になれば成功。

コード全体と結果はwonderflで。

ふわっふわ!ファーのレンダリング

2008 年 12 月 14 日 日曜日 by key

名刺の上に出てくる子達は、PV3DではなくFlashPlayer10で追加された描画APIを直に使っています。これらのAPIを使った描画は、パースペクティブコレクトをサポートしているうえ、今まで使われていた3D描画手法より高速に動きます。もうDisplacementMapFilterで地球を回してる場合じゃないよ!

そこで、ふわふわ大好きなBOWメンバーの要望に答え、ふわふわの毛皮が生えたようなエフェクト、いわゆるファーを力技で作ってみました。

fluffy_fur_rendering-300x225.jpg

クリックで再生(要FlashPlayer10)

目の周りの段差が良いですね!作り方は続きに。

(more…)

BOW cARdについて

2008 年 12 月 3 日 水曜日 by key

こんにちは、BOWです!

BOWって何?については後ほどお伝えするとして、このエントリーでは、サイトのトップにあるBOW cARdについて説明します。

(more…)