3-3-2 Fisicaで扱う物体

Fisicaで扱う物体には、剛体(FBody)、弾性体(FBlob)、これらをつなぐジョイント(FJoint)が用意されている。

剛体

剛体には線分(FLine)、球(FCircle)、箱(FBox)、多角形(FPoly)がある。

弾性体

部品の設定

bodyはいずれかの物体を表す。

次の例は床に置かれた2つの球をシミュレートする。左の球の上でマウスをクリックすると右向きの力積が加えられる。

import fisica.*;

FWorld world;
FCircle ball1, ball2;


void setup(){
  size(600,300);
  Fisica.init(this);
  world = new FWorld();
  world.setEdges();
  world.setEdgesFriction( 0 );
  ball1=new FCircle(40);
  ball1.setDamping( 0 );
  ball1.setDensity( 2 );
  ball1.setFriction( 0.1 );
  ball1.setRestitution( 1 );
  ball1.setPosition( 50, 274.5 );
  ball1.setGrabbable( false );
  ball1.setFill( 128, 255, 128 );
  world.add( ball1 );

  ball2=new FCircle(40);
  ball2.setDamping( 0 );
  ball2.setDensity( 4 );
  ball2.setFriction( 0.1 );
  ball2.setRestitution( 1 );
  ball2.setPosition( 200, 274.5 );
  ball2.setGrabbable( false );
  ball2.setFill( 255, 128, 128 );
  world.add( ball2 );
}

void mouseClicked(){
  if( dist( mouseX, mouseY, ball1.getX(), ball1.getY() )<20 ){
    ball1.addImpulse( ball1.getMass()*100, 0 );
  }
}


void draw(){
  background(0);
  world.step();
  world.draw();
}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS