Advertisement
AgungAlfiansyah

Untitled

Apr 26th, 2016
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1. /*
  2. Subrutin membuat lingkaran dengan pusat (0,0) dan jari-jari radius.
  3. Dengan menggunakan persamaan parametrik.
  4. Lingkaran ini digambar penuh
  5. */
  6. void circle1(int radius){
  7.   float density=0.5; //ganti nilai density untuk memperoleh gambar yg lebih baik
  8.   int px,py;
  9.   for (float i=0.0; i<360; i=i+density){  //gambarkan titik untuk tiap sudut
  10.     px=int(radius*cos(radians(i)));
  11.     py=int(radius*sin(radians(i)));
  12.     point(px,py);
  13.   }
  14. }
  15.  
  16. /*
  17. Subrutin membuat lingkaran dengan pusat (0,0) dan jari-jari radius.
  18. Dengan menggunakan persamaan quadratik lingkaran.
  19. Lingkaran ini digambar penuh
  20. */
  21. void circle2(int radius){
  22.   int py;
  23.   for (int px=-radius; px<radius; px++){  //dari mulai -r sampai +r
  24.     py=int(sqrt(pow(radius,2)-pow(px,2)));
  25.     point(px,py);
  26.   }
  27. }
  28.  
  29. /*
  30. Subrutin membuat lingkaran dengan pusat (0,0) dan jari-jari radius.
  31. Dengan menggunakan algoritma Bressenham.
  32. Lingkaran ini digambar tidak penuh, hanya 1/8 saja
  33. */
  34. void circle3(int radius){
  35.   int px = 0;
  36.   int py = radius;
  37.   int d1 = 3 - (2 * radius);
  38.  
  39.   boolean rov=true;
  40.  
  41.   while (rov){
  42.     if (px>=py){
  43.        rov=false;}
  44.     if (d1 < 0) {
  45.        d1 = d1 + (4 * px) + 6; }
  46.     else{
  47.       d1 = d1 + 4 * (px-py) + 10; // (1)
  48.       py = py-1;
  49.     }
  50.     point(px,py);
  51.     px++;
  52.   }
  53. }
  54.  
  55. void setup(){
  56.   size(700,700);
  57.   stroke(200,0,0);
  58.   circle1(600);
  59.   stroke(0,0,0);
  60.   circle2(640);
  61.   stroke(0,0,255);
  62.   circle3(680);
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement