Processing Forum
import processing.opengl.*;
static int canvasX = 600;
static int canvasY = 600;
void setup()
{
size(canvasX, canvasY);
background(255);
}
//--------------------------------- variable global ditulis disini
int x1 = 3;
int y1 = 7;
int x2 = 12;
int y2 = 15;
int dx;int dy; int x; int y; int end; float p;
//variabel buat input masukan
int r1=0; int r2=0;int jari2 = 100; int jarix=100; int jariy=90; // --> Variabel buat inputan pada lingkaran dan Elips
color wrn;
//--------------------------------- disini mulai codingnya
void draw() {
drawHelpLines();
stdPoint(x1, y1);
stdPoint(x2, y2);
//lingkaran_utama(r1,r2,jari2);
fill_circle(0,0,20);
}
// -------------------------------- normalisasi, ga perlu dirubah
void stdPoint(int xxx, int yyy)
{
point(xxx+(canvasX/2), (yyy*-1)+(canvasY/2));
}
void drawHelpLines()
{
stroke(0, 0, 255);
for (int z=0; z<canvasX; z=z+1) {
point((canvasX/2), z);
point(z, (canvasY/2));
}
stroke(0, 0, 0);
}
//SOAL LINGKARAN
void lingkaran_utama (int pusat1, int pusat2, int radius){
x=0;
y= radius;
p = 1-radius;
lingkaran1(pusat1,pusat2,x ,y);
while (x<y)
{
if (p<0)
{
x++;
lingkaran1(pusat1,pusat2,x ,y); //ambil nilai (X,Y)
p =p+(2*x)+1;
}
else
{
x++;
y--;
lingkaran1(pusat1,pusat2,x ,y); //ambil nilai (x,y)
p= p + (2*x)- (2*y) +1;
}
}
}
void lingkaran1 (int X_center, int Y_center,int x , int y){
//lingkaran dibagi menjadi 8 bagian
stroke(255,0,0);
if ((x % 50)<20) {
stdPoint (X_center + x, Y_center + y);
stdPoint (X_center - x, Y_center + y);
stdPoint (X_center + x, Y_center - y);
stdPoint (X_center - x, Y_center - y);
stdPoint (X_center + y, Y_center + x);
stdPoint (X_center - y, Y_center + x);
stdPoint (X_center + y, Y_center - x);
stdPoint (X_center - y, Y_center - x);
}
}
void fill_circle(int x, int y, int r){
int rr = 10;
int rx=rr+r;
for (int i=r;i<rx;i++){
lingkaran_utama (x,y,r );
r=i;
}
}
//void fill_lingkaran(int X_center, int Y_center,color wrn_baru, color wrn_lama){
//int cur_col;
//cur_col = stdPoint(x,y);
//if (cur_col!=wrn_lama && cur_col!=wrn_baru) {
//stdPoint(x,y,wrn_baru);