プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Processing、丸の上にマウスカーソルが乗ると丸の色が変わるサンプル
気分転換に作ってみました。
マウスカーソルが丸の上に乗ると丸の色が変わるサンプルです。

ソースコードは、こんな感じφ(--)

color COLOR_OFF = #0000ff;    //マウスカーソルが丸の上にないときの色
color COLOR_ON = #ff0000;    //マウスカーソルが丸の上にあるときの色

int DIAMETER = 100;        //丸の直径
int positionX = 150;        //丸を描く場所(横位置)
int positionY = 200;        //丸を描く場所(縦位置)

void setup(){
    size(640, 480);
    background(255);
}

void draw(){
    background(255);
    
    if(onMaru() == true){    //マウスカーソルが丸の上にあるかのチェック
        fill(COLOR_ON);    //丸の上にあるときの色
    }else{
        fill(COLOR_OFF);    //丸の上にないときの色
    }

    //丸を描く
    ellipse(positionX, positionY, DIAMETER, DIAMETER);
}

//マウスカーソルが丸の上にあるかを返してくれる関数
boolean onMaru(){
    if(dist(positionX, positionY, mouseX, mouseY) <= DIAMETER / 2){    //マウスカーソルの位置と丸の中心の距離が半径(直径の半分)より小さいとき
        //マウスカーソルは丸の上だよ
        return true;
    }else{
        //マウスカーソルは丸の上じゃないよ
        return false;
    }
}

ポイントは

//マウスカーソルが丸の上にあるかを返してくれる関数
boolean onMaru(){
    if(dist(positionX, positionY, mouseX, mouseY) <= DIAMETER / 2){    //マウスカーソルの位置と丸の中心の距離が半径(直径の半分)より小さいとき
        //マウスカーソルは丸の上だよ
        return true;
    }else{
        //マウスカーソルは丸の上じゃないよ
        return false;
    }
}

の部分です。
丸の中心(positionX, positionY)とマウスカーソルの位置(mouseX, mouseY)の距離をdist()関数で求め
距離が丸の半径(DIAMETER / 2)より小さければ丸の上にマウスカーソルがあると判断しています。

あとは

    if(onMaru() == true){    //マウスカーソルが丸の上にあるかのチェック
        fill(COLOR_ON);    //丸の上にあるときの色
    }else{
        fill(COLOR_OFF);    //丸の上にないときの色
    }

の部分で、丸の色を変えているだけです。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:Processing  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事