スポンサーリンク

Processing

衝突判定のプログラム(Collision)

投稿日:

書き方

円Aの中心から円Bの中心までの距離が、円Aと円Bの半径より小さければ交差している
円の中心同士の距離は、ピタゴラスの定理(三平方の定理)を使う。

正直むずかしいので、とりあえずマウスが円に入れば背景色が変更されるように書いてみた。
マウスの座標を使用していますが、ピタゴラスの定理(三平方の定理)を使用してます。

Processingでの記述

int x,y;

void setup(){
  size(300,300,P2D);
  x = width/2; //横150
  y = height/2; //縦150
  background(255,255,255);//背景色、白を指定
}

void draw(){
  if(dist(x,y,mouseX,mouseY)<=50){ //マウスが円に入ったら背景色を変更、変形です。
    background(0,255,255); //背景色、水色を指定
  }else{
    background(255,255,255); //背景色、白を指定
  }
    fill(0,0,0);//円の塗り、黒を指定
    ellipse(x,y,100,100); //円をスケッチの中心に全長100px;の円を描画
}

マウスの座標と円の座標が当たると背景色が変更されますが、ちょっと試してみて次の記事では図形同士での衝突を試してみたいと思います。

実行結果

移動させている円に対しての衝突判定

単純にx+1をしてあげて右に動かしています。円にmouseカーソルが当たればバックグラウンドの色は変化します。

int x,y;
void setup(){
  size(300,300,P2D);
  x = width/2; //横150
  y = height/2; //縦150
  background(255,255,255);//背景色、白を指定
}

void draw(){
  if(dist(x,y,mouseX,mouseY)<=50){ //マウスが円に入ったら背景色を変更、変形です。
    background(0,255,255); //背景色、水色を指定
  }else{
    background(255,255,255); //背景色、白を指定
  }
    fill(0,0,0);//円の塗り、黒を指定
    ellipse(x,y,100,100); //円をスケッチの中心に全長100px;の円を描画
    x = x +1;
}

Originally posted 2016-01-07 18:56:20.

スポンサーリンク

-Processing
-,

Copyright© office606 , 2023 All Rights Reserved Powered by STINGER.