Membuat Elips di Processing

Setelah sebelumnya kita bisa membuat lingkaran, sekarang bagaimanakah membuat Elips? dimana elips ini merupakan turunan dari lingkaran pada dasarnya ­čśÇ

Di bawah ini akan  dicontohkan bagaimana membuat elips di Processing.

void elips(int xPusat,int yPusat,int rx,int ry)
{
  int x=0,y=ry,a,b;
  float px=0;
  float py=2*pow(rx,2)*y;
  while(2*pow(ry,2)*x<2*pow(rx,2)*y)
  {
     x++;
     if( equ(x,y-(float)1/2,rx,ry)>=0) // mencari nilai P
        y--;

      stdPoint(xPusat + x,yPusat + y);
      stdPoint(xPusat - x,yPusat + y);
      stdPoint(xPusat - x,yPusat - y);
      stdPoint(xPusat + x,yPusat - y);
  }
  while(y!=0)
  {
     y--;
     if( equ(x+(float)1/2,y,rx,ry)<=0)
        x++;
      stdPoint(xPusat + x,yPusat + y);
      stdPoint(xPusat - x,yPusat + y);
      stdPoint(xPusat - x,yPusat - y);
      stdPoint(xPusat + x,yPusat - y);
  }

}

Perlu diketahui bahwa terdapat fungsi pow yg merupakan fungsi yg digunakan untuk melakukan pemangkatan. Mengapa tidak menggunakan pemangkatan biasa? Silahkan cari tahu sendiri bedanya ­čśÇ

Selamat Mencoba :mrgreen:

Advertisements

Membuat Lingkaran Dengan MidPoint Circle Algorithm di Processing

Processing merupakan bahasa pemrograman dan lingkungan pemrograman (development environment) open source untuk memprogram gambar, animasi dan interaksi.

Program ini berbasis Java, sehingga untuk menjalankannya dibutuhkan instalasi JDK dan JRE terlebih dahulu.

Di bawah ini akan saya contohkan bagaimana membuat lingkaran di Processing menggunakan MidPoint Circle Algorithm.

void midDrawCircle(int x1,int y1,int r)
{
 int x=0,y=r,p=1-r;
 int xctr=x1,yctr=y1;
   stdPoint(xctr+x,yctr+y);
   stdPoint(xctr-x,yctr+y);
   stdPoint(xctr+x,yctr-y);
   stdPoint(xctr-x,yctr-y);
   stdPoint(xctr+y,yctr+x);
   stdPoint(xctr-y,yctr+x);
   stdPoint(xctr+y,yctr-x);
   stdPoint(xctr-y,yctr-x);
 while(x<y)
 {
 x++;
 if(p<0)
  p+=2*x+1;
  else
  {
   y--;
   p+=2*(x-y)+1;
  }
   stdPoint(xctr+x,yctr+y);
   stdPoint(xctr-x,yctr+y);
   stdPoint(xctr+x,yctr-y);
   stdPoint(xctr-x,yctr-y);
   stdPoint(xctr+y,yctr+x);
   stdPoint(xctr-y,yctr+x);
   stdPoint(xctr+y,yctr-x);
   stdPoint(xctr-y,yctr-x);
 }
}

untuk menjalankannya, tinggal memanggil method midDrawCircle() di void draw().

Selamat mencoba :mrgreen: