城戸さんの話しを聞いて1から3Dをやってみることにした。
とりあえずこれをAS3に移植してみる。
Webデザインとグラフィックの総合情報サイト - MdN Interactive - 第1回 3D表現とは?
http://www.mdn.co.jp/content/view/1093/88/
http://labs.un-q.net/as3/3d/01/
package {
import flash.display.*;
import flash.events.*;
[SWF(width="400",height="300",frameRate="24",backgroundColor="#FFFFFF")]
public class Test3D01 extends Sprite {
private var panel:Sprite;
private var centerX:Number = stage.width/2; // 中心点のx座標をステージの横中央に
private var centerY:Number = stage.height/2; // 中心点のy座標をステージの縦中央に
private var centerZ:Number = 0; // 中心点の座標を設定
private var fl:int = 300; // 視点からの焦点(screen)までの距離を設定
private var r:int = 100; // 回転の半径
private var angle:Number = 0; // 回転角の初期値
private var px:Number;
private var py:Number;
private var pz:Number;
private var rad:Number;
private var scale:Number;
function Test3D01() {
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
addEventListener(Event.ENTER_FRAME, loop);
init();
}
private function init():void {
panel = new Sprite();
panel.graphics.beginFill(0x000000);
panel.graphics.drawRect(0,0,50,50);
addChild(panel);
}
private function loop(e:Event):void {
angle += 5;
rad = angle / 180 * Math.PI; // 角度をラジアンに変換
px = Math.cos(rad)*r; // 半径、ラジアンをもとに仮想3D空間のx座標を計算
py = 0;
pz = centerZ - Math.sin(rad) * r; // 半径、ラジアンをもとに仮想3D空間のz座標を計算
scale = fl / (fl+pz); // 透視変換の比率を計算
panel.x = px * scale + centerX;
panel.y = py * scale + centerY;
panel.scaleX = panel.scaleY = scale;
panel.x += 150;
panel.y += 150;
}
}
}




コメント (4)
おおーありがとうございます!
AS3の勉強になります^^
投稿者: kaya | 2007年07月26日 10:53
日時: 2007年07月26日 10:53
>kayaさん
いえいえとんでもないです。
記事書かれてる方から直々にコメントでびっくりしました。
結構前から
http://www.procreo.jp/
は知っていて、すごいなーと思ってました。
時間を見つけて3DのやつAS3に移植していきまーす
投稿者: yo-suke | 2007年07月26日 20:07
日時: 2007年07月26日 20:07
はじめまして。
AS3.0 による 3D 表現なら、friends of ED から出ている次の書籍が役立つんではないかと思います。
"Foundation Actionscript 3.0 Animation:Making Things Move!"
本を買わずともソースが落とせるのがありがたいところ。
friends of ED 様々です。
ch15~17が 3D 表現に関わるコードが格納されたディレクトリです。
投稿者: Aquioux | 2007年07月26日 22:35
日時: 2007年07月26日 22:35
> Aquiouxさん
コメントありがとうございます。
Blogのほういつも購読させてもらってます。
ソースがダウンロードできるんですね。
参考になりそうです。
ありがとうございまーす
投稿者: yo-suke | 2007年07月26日 22:41
日時: 2007年07月26日 22:41