News Update :
Tampilkan postingan dengan label kuliah. Tampilkan semua postingan
Tampilkan postingan dengan label kuliah. Tampilkan semua postingan

penggambaran garis dengan algoritma DDA dan bresenham

Penulis : Unknown on Senin, 08 April 2013 | 05.57

Senin, 08 April 2013


Selamat Malem teman-teman,
 Sebelum saya mengerjakan tugas kuliah apah salahnya saya untuk posting dulu, barang kali artikel saya bermafaat buat teman-teman.
ok langsung saja kali ini saya akan memposting tetang penggambaran garis dengan algoritma DDA dan bresenham, tidak lama-lama langsung saja ini source code nya :

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <math.h>

voiddisplay(void)
{
glClearColor (1.0 ,1.0, 1.0, 0.0);
glMatrixMode (GL_PROJECTION);
gluOrtho2D (0.0, 300.0, 0.0, 300.0);
}
voidsetPixel (GLint xCoordinate, GLint yCoordinate)
{
glBegin(GL_POINTS);
glVertex2i (xCoordinate, yCoordinate);
glEnd();
glFlush();
}

voidlineBres(GLint x0, GLint y0, GLint xEnd, GLint yEnd)
{
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;

if (x0 > xEnd){
x = xEnd;
y = yEnd;
xEnd = x;
}else{
x = x0;
y = y0;
}
setPixel (x,y);
while(x<xEnd){
x++;
if(p<0)
p  += twoDy;
else{
y++;
p += twoDyMinusDx;
}
setPixel(x,y);
}
}
voiddrawMyLine(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 0.0, 0.0);
glPointSize (4.0);
GLint x0 = 100;
GLint y0 = 100;
GLint xEnd = 200;
GLint yEnd = 100;
lineBres (x0, y0, xEnd, yEnd);

glColor3f (0.0, 0.0, 1.0);
glPointSize (4.0);
GLint x1 = 100;
GLint y1 = 200;
GLint xEnd1 = 200;
GLint yEnd1 = 200;
lineBres (x1, y1, xEnd1, yEnd1);

glColor3f (1.0, .0, 1.0);
glPointSize (4.0);
GLint x2 = 100;
GLint y2 = 300;
GLint xEnd2 = 200;
GLint yEnd2 = 300;
lineBres (x2, y2, xEnd2, yEnd2);
}

intmain (int argc, char** argv)
{
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400, 400);
glutInitWindowPosition (0, 0);
glutCreateWindow ("Digital Differential Anallyzer Algorithm");
display();
glutDisplayFunc (drawMyLine);
glutMainLoop();
return 0;
}

Dan ini Hasil Output nya :


penggambaran garis dengan algoritma DDA dan bresenham

komentar (2) | | Read More...

Objek Primitif Poligon Grafika Komputer

Selamat malem sahabat blogger,
 Kali ini saya akan memposting cara membuat Program Objek Primitif Poligon (Grafika Komputer), ok langsung saja saya kasih source code nya :

#include < windows.h >
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
#include < stdarg.h >
#include < glut.h >

void display(void)
{
GLubyte fly[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60,
0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20,
0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20,
0x04, 0x06, 0x60, 0x20, 0x44, 0x03, 0xC0, 0x22,
0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
0x66, 0x01, 0x80, 0x66, 0x33, 0x01, 0x80, 0xCC,
0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30,
0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0,
0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0,
0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30,
0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08,
0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0c, 0x08,
0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08};
GLubyte halftone[] = {
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55};

glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glRectf (25.0, 25.0, 125.0, 125.0);
glEnable (GL_POLYGON_STIPPLE);
glPolygonStipple (fly);
glRectf (125.0, 25.0, 225.0, 125.0);
glPolygonStipple (halftone);
glRectf (225.0, 25.0, 325.0, 125.0);
glColor3f (1.0, 1.0, 0.0);
glDisable (GL_POLYGON_STIPPLE);
glFlush ();
}
void init (void)

{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (550, 150);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc (display);
glutReshapeFunc (reshape);
glutMainLoop();
return 0;
}


Lalu ini adalah Outputnya :

Objek Primitif Poligon Grafika Komputer
komentar | | Read More...

Partner Ads

 
Copyright © 2011. .:: wahyudin 21 ::. . All Rights Reserved.
Design Template by panjz-online | Support by creating website | Powered by Blogger