วันจันทร์ที่ 15 กันยายน พ.ศ. 2557

Lab 3 : Task#2 - Graph (with Min & Max & Avg)



Warning >>> A little text position bug on Processing
int n=8;
float w_box;
float[] y=new float[n];

void setup()
{
  size(480,300);
  background(0);
  w_box=width/n;
  for(int i=0;i<n;i++)
  {y[i]=0;}
}

void draw()
{
  background(0);
  draw_graph();
  draw_max();
  draw_min();
  draw_avg();
  draw_grid();
}

void mousePressed()
{
  for(int i=0;i<n;i++)
  {
    if(mouseX>i*w_box&&mouseX<(i+1)*w_box)
    {
      y[i]=height-mouseY;
    }
  }
}

void mouseDragged()
{
  for(int i=0;i<n;i++)
  {
    if(mouseX>i*w_box&&mouseX<(i+1)*w_box)
    {
      y[i]=height-mouseY;
    }
  }
}

void draw_graph()
{
  stroke(0,255,0);
  textAlign(CENTER);
  for(int i=0;i<n;i++)
  {
    fill(0,255,0,50);
    rect(i*w_box,height,w_box,-y[i]);
    fill(0,255,0,255);
    text(round(y[i]/3),(i*w_box)+(w_box/2),height-5);
  }
}

void draw_max()
{
  float $max;
  $max=max(y);
  line(0,height-$max,width,height-$max);
  textAlign(RIGHT);
  text("max = "+round($max/3),width-2,height-$max+13);
}

void draw_min()
{
  float $min;
  $min=min(y);
  line(0,height-$min,width,height-$min);
  textAlign(RIGHT);
  text("min = "+round($min/3),width-2,height-$min+13);
}

void draw_avg()
{
  float sum=0,avg;
  for(int i=0;i<n;i++)
  {
    sum=sum+y[i];
  }
  avg=(sum/n);
  line(0,height-avg,width,height-avg);
  textAlign(RIGHT);
  text("avg = "+round(avg/3),width-2,height-avg+13);
}

void draw_grid()
{
  stroke(0,255,0,80);
  for(int i=height;i>=0;i=i-10)
  {
    line(0,i,width,i);
  }
  for(float i=width;i>=0;i=i-w_box)
  {
    line(i,0,i,height);
  }
}

Lab 3 : Task#1 - Balloon



Warning >>> Bug on firefox
int num=100,stop_r_p=0,count=0,click_fix=0;
float[] px=new float[num],py=new float[num];
float a;

void setup()
{
  size(500,500);
  strokeWeight(3);
  for(int i=0;i<num;i++)
  {py[i]=height+100;}
}

void draw()
{
  background(150);
  if(stop_r_p<=num)
    {
      for(int i=0;i<num;i++)
      {px[i]=random(0,width);stop_r_p++;}
    }
  if(mousePressed&&click_fix==0)
  {
    click_fix=1;
    count=count+1;
    if(count==num)
    {count=0;}
    py[count]=height+100;;
  }
  for(int i=0;i<count;i++)
    {
      draw_balloon(px[i],py[i]);
      a=0.005*(py[i]+height);
      py[i]=py[i]-a;
    }
}

void draw_balloon(float px,float py)
{
  fill(255,190,210,200);
  ellipse(px,py,100,120);
  line(px,py+60,px,py+180);
  fill(255,190,210);
  triangle(px,py+63,px+7,py+75,px-7,py+75);
}

void mouseReleased()
{
  click_fix=0;
}