読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

primitivesを並べてみる

Flex Papervision3D

Papervision3Dでは、org.papervision3d.objects.primitivesパッケージ以下に、立方体とか球といった基本的なオブジェクトが用意されています。どんなのがあるのかな、ということで、primitivesパッケージ以下のオブジェクトを並べてみました。


動いているところはこちら

左から

  1. Cube
  2. Sphere
  3. Arrow
  4. Cone
  5. Cylinder
  6. PaperPlane
  7. Plane

です。(画像だとArrowとかはちょいわかりにくいですが。)x座標だけオブジェクトごとに変えていますが、他は初期値で生成しています。CubeとPlaneだけなんかデカイ。

ソース

サンプルのソースは以下です。

package {
 
  import flash.events.Event;
  import org.papervision3d.materials.*;
  import org.papervision3d.materials.utils.*;
  import org.papervision3d.objects.primitives.*;
  import org.papervision3d.view.BasicView;
  
  /**
   * org.papervision3d.objects.primitives 以下に用意されているオブジェクトを並べてみるサンプル
   */
  public class Sample extends BasicView {
    
    private var objects:Array = [];
    
    /**
     * コンストラクタ
     */
    public function Sample() {
      
      /**
       * org.papervision3d.objects.primitives 以下に用意されているオブジェクトを生成する。
       */
      var classes:Array = [Cube,Sphere,Arrow,Cone,Cylinder,PaperPlane,Plane];
      classes.forEach( function(item:*, i:Number, arr:Array):void {
        var obj:* = null;
        var material:WireframeMaterial = new WireframeMaterial(0x002222 * i);
        if ( item === Cube ) {
          // Cude だけ引数がMaterialsListなので別処理。
          // (各面ごとにMaterialが指定できる模様/allですべての面に適用するMaterialを指定できる)
          obj = new item( new MaterialsList({"all" : material}) );
        } else {
          obj = new item( material );
        }
        obj.x = -400 + 200 * i;
        scene.addChild(obj);
        objects.push(obj);
      });
      
      // レンダリング開始
      startRendering();
    }
    
    override protected function onRenderTick(event:Event = null):void {
      // オブジェクトを回転
      objects.forEach( function(item:*, i:Number,arr:Array):void {
        item.yaw(2);
      });
      super.onRenderTick(event);
    }
 }
}