OLEH : KELOMPOK 6
SRI ERFIANA (1829041009)
EMA HUMAERA (1829040039)
PTIK F 2018
void lineBresVer (GLint x0, GLint y0, GLint xEnd, GLint yEnd) //rumus
{
GLint dx = (xEnd - x0);
GLint dy = (yEnd - y0);
GLint p = 2*(dy-dx); GLint twoDy = 2*dy;
GLint twoDyMinusDx = 2*(dy-dx); GLint x,y;
if(x0 > xEnd) {
x=xEnd;
y=yEnd;
xEnd =x;
}
else{ x=x0; y=y0;
}
setPixel (x,y);
while(y<yEnd){
y++;
if(p>0) p+=twoDy; else{
x++;
p+=twoDyMinusDx;
}
setPixel(x,y);
}
}
void lineBresMKiri (GLint x0, GLint y0, GLint xEnd, GLint yEnd) //rumus
{
GLint dx = (float)fabs((float)xEnd-x0);
GLint dy = (float)fabs((float)yEnd-y0);
GLint p = 2*dy-dx; GLint twoDy = 2*dy;
GLint twoDyMinusDx = 2*(dy-dx); GLint x,y;
void elips (float ra, float rb, int jumlah_titik, int x_tengah, int y_tengah){
glBegin(GL_POLYGON);
for (i=0; i<=jumlah_titik;i++){
float sudut=i* 2.0 * PI/jumlah_titik;
float x=x_tengah+ra*cos(sudut);
float y=y_tengah+rb*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void garis () {
glColor3f(0.9,0.7,0.3);
elips(100, 200, 50, -700, 200);
glColor3f(0.2, 0.0, 0.7);
elips(50, 150, 50, -700, 200);
glColor3f(1.0,1.0,0.0);//latar atas
glBegin (GL_POLYGON);
glVertex2f(-1200, 0);
glVertex2f(1200, 0);
glColor3f(1.0,0.5,0.6);
glBegin (GL_POLYGON);
glVertex2f(1200, 1200);
glVertex2f(-1200,1200);
glEnd ();
glColor3f(0.5,0.2,0.0);//latar bawah
glBegin (GL_POLYGON);
glVertex2f(-1200, 0);
glVertex2f(1200, 0);
glColor3f(0.5,0.2,0.0);
glBegin (GL_POLYGON);
glVertex2f(1200, -1200);
glVertex2f(-1200,-1200);
glEnd ();
glColor3f(1.0, 1.0, 0.0);
lingkaran(150, 100, 0, 900); //matahari
glColor3f(0.0, 0.0, 0.0);
lingkaran(20, 100, -50, 950);
lingkaran(20, 100, 50, 950);
glColor3f(1.0, 1.0, 1.7);
elips(10, 30, 50, 0, 890);
elips(50, 20, 50, 0, 810);
glColor3f(1.0,1.0,1.0);//jalanan
glBegin (GL_POLYGON);
glVertex2f(-1200, 0);
glVertex2f(1200, 0);
glColor3f(0.0,0.0,0.0);//jalanan
glBegin (GL_POLYGON);
glVertex2f(1200, -500);
glVertex2f(-1200,-500);
glEnd ();
glColor3f(0.9,0.7,0.3);
elips(100, 200, 50, -700, 200);
glColor3f(0.2, 0.0, 0.7);
elips(50, 150, 50, -700, 200);
glColor3f(0.7,0.0,0.0);
glBegin (GL_POLYGON);
glVertex2f(-700, 500);
glVertex2f(-650, 500);
glVertex2f(-500, 600);
glVertex2f(380, 600);
glVertex2f(600, 350);
glVertex2f(650, 350);
glVertex2f(740, 300);
glVertex2f(740, -200);
glVertex2f(-700, -200);
glEnd ();
glColor3f(0.2, 0.0, 0.7);
glBegin (GL_POLYGON);
glVertex2f(650, 350);
glVertex2f(630, 300);
glVertex2f(630,260);
glVertex2f(650, 230);
glVertex2f(640, 230);
glVertex2f(740, 200);
glVertex2f(740, 300);
glEnd ();
glColor3f(1.0,1.0,0.0);
glBegin (GL_POLYGON);
glVertex2f (-500, 200);
glVertex2f (100, 200);
glColor3f(1.10,0.5,0.0);
glBegin (GL_POLYGON);
glVertex2f(100, 500);
glVertex2f(-500, 500);
glEnd();
glColor3f (1.10,0.5,0.0);
glBegin (GL_POLYGON);
glVertex2f(130, 200);
glVertex2f(130, 500);
glColor3f (1.0,1.0,0.0);
glBegin (GL_POLYGON);
glVertex2f(300, 500);
glVertex2f(440, 350);
glVertex2f(440, 200);
glEnd ();
glColor3f(0.0,0.0,0.0);
glBegin (GL_POLYGON);
glVertex2f(-500, 130);
glVertex2f(-500, 170);
glVertex2f(-380, 170);
glVertex2f(-380, 130);
glEnd ();
glBegin (GL_POLYGON);
glVertex2f(130, 130);
glVertex2f(130, 170);
glVertex2f(200, 170);
glVertex2f(200, 130);
glEnd ();
glColor3f(0.2, 0.0, 0.7);
glBegin (GL_POLYGON);
glVertex2f(-640, -250);
glVertex2f(-640, -140);
glVertex2f(-730, -140);
glVertex2f(-730, -250);
glEnd ();
glColor3f(0.2, 0.0, 0.7);
glBegin (GL_POLYGON);
glVertex2f(640, -250);
glVertex2f(640, -140);
glVertex2f(760, -140);
glVertex2f(760, -250);
glEnd ();
glColor3f(0.0, 0.5, 0.2);//POHON
glBegin (GL_POLYGON);
glVertex2f(800, 0);
glVertex2f(900, 0);
glVertex2f(900, 500);
glVertex2f(800, 500);
glEnd ();
glColor3f(0.0, 0.5, 0.2);
glBegin (GL_POLYGON);
glVertex2f(900, 500);
glVertex2f(1050, 500);
glVertex2f(900, 600);
glVertex2f(800, 600);
glVertex2f(650, 500);
glEnd ();
glColor3f(0.0, 0.5, 0.2);
glBegin (GL_POLYGON);
glVertex2f(900, 600);
glVertex2f(1050, 600);
glVertex2f(900, 700);
glVertex2f(800, 700);
glVertex2f(650, 600);
glEnd ();
glColor3f(0.0, 0.5, 0.2);
glBegin (GL_POLYGON);
glVertex2f(900, 700);
glVertex2f(1050, 700);
glVertex2f(850, 850);
glVertex2f(650,700);
glVertex2f(800, 700);
glEnd ();
glEnd ();
glColor3f(0.0, 0.5, 0.2);
glBegin (GL_POLYGON);
glVertex2f(-900, 500);
glVertex2f(-750, 500);
glVertex2f(-900, 600);
glVertex2f(-1000, 600);
glVertex2f(-1150, 500);
glEnd ();
glColor3f(0.0, 0.5, 0.2);
glBegin (GL_POLYGON);
glVertex2f(-900, 600);
glVertex2f(-750, 600);
glVertex2f(-900, 700);
glVertex2f(-1000, 700);
glVertex2f(-1150, 600);
glEnd ();
glColor3f(0.0, 0.5, 0.2);
glBegin (GL_POLYGON);
glVertex2f(-900, 700);
glVertex2f(-750, 700);
glVertex2f(-950, 850);
glVertex2f(-1150,700);
glVertex2f(-1000, 700);
glEnd ();
}
void drawMyLine ()
{
glClear(GL_COLOR_BUFFER_BIT);
garis();
GLint x9 =700; GLint y9 = -30; GLint x10 = 740; GLint y10 =-60;
lineBresMKiri(x9,y9,x10,y10);
GLint x11 = 700; GLint y11 = -30; GLint x12 = 700; GLint y12 =70;
lineBresVer(x11,y11,x12,y12);
GLint x13 = 740; GLint y13 = -60; GLint x14 = 740; GLint y14 = 100;
lineBresVer(x13,y13,x14,y14);
GLint x19 = -200; GLint y19 = 300; GLint x20 = -50; GLint y20 = 400;
lineBresMKanan(x19,y19,x20,y20);
GLint x21 = -50; GLint y21 = 400; GLint x22 = 100; GLint y22 = 300;
lineBresMKiri(x21,y21,x22,y22);
GLint x25 = 760; GLint y25 = -250; GLint x26 = 760; GLint y26 = -140;
lineBresVer(x25,y25,x26,y26);
GLint x27 = 640; GLint y27 = -250; GLint x28 = 760; GLint y28 = -250;
lineBres(x27,y27,x28,y28);
GLint x29 = 640; GLint y29 = -140; GLint x30= 760; GLint y30 = -140;
lineBres(x29,y29,x30,y30);
GLint x31 = -730; GLint y31 = -250; GLint x32 = -730; GLint y32 = -140;
lineBresVer(x31,y31,x32,y32);
GLint x33 = -640; GLint y33 = -250; GLint x34 = -640; GLint y34 = -140;
lineBresVer(x33,y33,x34,y34);
GLint x35 = -730; GLint y35 = -250; GLint x36 = -640; GLint y36 = -250;
lineBres(x35,y35,x36,y36 );
GLint x37 = -730; GLint y37 = -140; GLint x38 = -640; GLint y38 = -140;
lineBres(x37,y37,x38,y38 );
GLint x41 = -750; GLint y41 = -400; GLint x42 = -650; GLint y42 = -400;
lineBres(x41,y41,x42,y42);
GLint x43 = -550; GLint y43 = -400; GLint x44 = -450; GLint y44 = -400;
lineBres(x43,y43,x44,y44);
GLint x45 = -350; GLint y45 = -400; GLint x46 = -250; GLint y46 = -400;
lineBres(x45,y45,x46,y46);
GLint x47 = -150; GLint y47 = -400; GLint x48 = -50; GLint y48 = -400;
lineBres (x47,y47,x48,y48);
GLint x49 = 50; GLint y49 = -400; GLint x50 = 150; GLint y50 = -400;
lineBres(x49,y49,x50,y50);
GLint x51 = 250; GLint y51 = -400; GLint x52 = 350; GLint y52 = -400;
lineBres(x51,y51,x52,y52);
GLint x53 = 450; GLint y53 = -400; GLint x54 = 550; GLint y54 =-400;
lineBres(x53,y53,x54,y54);
GLint x55 = 650; GLint y55= -400; GLint x56 = 750; GLint y56 = -400;
lineBres(x55,y55,x56,y56);
GLint x57 = 850; GLint y57= -400; GLint x58 = 950; GLint y58 = -400;
lineBres(x57,y57,x58,y58);