วันอาทิตย์ที่ 7 กันยายน พ.ศ. 2557

Show Quadrant

เบื่อจริงๆ กับ Processing
ที่เวลาวาดแล้วเลื่อนขึ้นด้านบนเป็น -Y แทนที่จะเป็น +Y
ก็เลยวาดแกนใหม่ซะเองเลย



void setup(){
    size(500,500);
    background(255);
    stroke(0);
    strokeWeight(3);
    noFill();
    translate(width/2,height/2);
    frameRate(80);
    
}
void draw(){
    translate(width/2,height/2);
    background(255);
    float RealMouseX = mouseX-(width/2);
    float RealMouseY = mouseY-(height/2);
    DrawAxis();
    DrawPoint(RealMouseX,RealMouseY);
    ShowQuadrant(RealMouseX,RealMouseY);
    ShowCoordinate(RealMouseX,RealMouseY);
}
void DrawAxis(){
    fill(0);
    //draw X axis
    line(-(width/2),0,width/2,0);
        //draw left arrow
        line(-(width/2),0,-(width/2)+20,-10);
        line(-(width/2),0,-(width/2)+20,10);
        text("-X",-(width/2)+5,-15);
        //draw right arrow
        line(width/2,0,(width/2)-20,-10);
        line(width/2,0,(width/2)-20,10);
        text("+X",(width/2)-20,-15);
    //draw Y axis
    line(0,-(height/2),0,height/2);
        //draw top arrow
        line(0,-(height/2),-10,-(height/2)+20);
        line(0,-(height/2),10,-(height/2)+20);
        text("+Y",10,-(height/2)+15);
        //draw bottom arrow
        line(0,height/2,-10,(height/2)-20);
        line(0,height/2,10,(height/2)-20);
        text("-Y",10,(height/2)-5);
    noFill();
}
void DrawPoint(X,Y){
    noStroke();
    fill(255,0,0);
    ellipse(X,Y,5,5);
    stroke(0);
}
void ShowQuadrant(X,Y){
    int TSize = 40;
    textSize(TSize);
    fill(0,0,255);
    //check Q1
    if((X>0)&&(Y<0)){
        text("Q1",width/4-(TSize/2),-(height/4)+(TSize/2));
        }
    //check Q2
    if((X<0)&&(Y<0)){
        text("Q2",-(width/4)-(TSize/2),-(height/4)+(TSize/2));
        }
    //check Q3
    if((X<0)&&(Y>0)){
        text("Q3",-(width/4)-(TSize/2),height/4+(TSize/2));
        }
    //check Q4
    if((X>0)&&(Y>0)){
        text("Q4",width/4-(TSize/2),height/4+(TSize/2));
        }
}

void ShowCoordinate(X,Y){
    float CalX = X;
    float CalY = -Y;
    fill(255,0,0);
    textSize(10);
    text("("+CalX+","+CalY+")",X+5,Y-5);
}