Pembentukan Garis
Pembentukan Garis
Pembentukan Garis
NIM : 1818057
NAMA : Febryan Alfaridzi
MATERI : Algoritma Pembentukan Objek
TUGAS : Membuat grafik dengan algoritma DDA dan Bressenham
3.1 Tujuan
1. Praktikan mampu mengetahui Algoritma Pembentukan Objek
2. Praktikan mampu membuat grafik dengan algoritma DDA dan Bressenham di
Microsoft Visual Studio 2013
3. Praktikan mampu mengatahui algoritma DDA dan Bressenham
3.2 Alat dan Bahan
1. Laptop
2. Visual studio 2013
3. OpenGL
4. Modul Grafika Komputer 2020
B. Algoritma Bressenham
Algoritma Garis Bresenham adalah suatu algoritma yang menentukan titik-titik
dalam dimensi yang membentuk pendekatan dekat dengan garis lurus antara dua titik
yang diberikan. Pendekatan ini biasa digunakan untuk menggambar garis pada layar
komputer, karena hanya menggunakan integer penambahan, pengurangan dan
pergeseran. Algoritma ini merupakan salah satu algoritma paling awal yang
dikembangkan di bidang komputer grafis.
0 - - 1 5
1 2 5,28 2 5
2 3 5,56 3 6
3 4 5,84 4 6
4 5 6,12 5 6
5 6 6,40 6 7
6 7 6,68 7 7
7 8 6,96 8 7
4. Grafik
8
7
6
5
4
3
2
1
0
1 2 3 4 5 6 7 8
1. NIM : 1818057
1818057 = NIM Depan = 5 , NIM Belakang = 7
2. Perhitungan
a. Koordinat titik awal (1,5) Koordinat titik akhir (8,7)
b. Menentukan titik
X1 = 1 Y1 = 5
X2 = 8 Y2 = 7
c. Hitung |dx| dan |dy|
|dx| = |x2 – x1| = (8 – 1) = 7
|dy| = |y2 – y1| = (7 – 5) = 2
2dy – 2dx = 2(2) – 2(7) = -10
d. Menghitung pk = 2dy – dx = 2(2) – 7 = -3
e. Jika pk > 0, maka nilai pk+1, x dan y selanjutnya adalah
K7 = (P7 = -7)
x = xk + 1 = 7 + 1 = 8
y = yk = 7
pk = pk + 2dy = -7 + 4 =
-3
f. Tabel Perhitungan
Interasi Pk x y Pk + 1
0 - 1 5 -3
1 -3 1+1=2 5 -3 + 4 = 1
2 1 2+1=3 5+1=6 1 + 4 - 14 = -9
3 -9 3+1=4 6 -9 + 4 = -5
4 -5 4+1=5 6 -5 + 4 = -1
5 -1 5+1=6 6 -1 + 4 = 3
6 3 6+1=7 6+1=7 3 + 4 - 14 = -7
7 -7 7+1=8 7 -7 + 4 = -3
g. Grafik
8
7
6
5
4
3
2
1
0
1 2 3 4 5 6 7 8
Source code
Program DDA
DDA.cpp
#include <stdlib.h>
#include <glut.h>
#include <iostream>
using namespace std;
void init();
void display(void);
void dda(void);
int window_x;
int window_y;
int window_width = 720;
int window_height = 480;
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glColor3f(255., 8.0, 1.0);
glPointSize(5.0);
glLoadIdentity();
gluOrtho2D(.0, 20.0, 0.0, 20.0);
}
void dda(void) {
int x1, y1, x2, y2;
float x, y, dx, dy, steps, x_inc, y_inc;
x1 = 1;
y1 = 5;
x2 = 8;
y2 = 7;
x = x1;
y = y1;
dx = x2 - x1;
dy = y2 - y1;
glBegin(GL_LINE_STRIP);
glVertex2i(x, y);
do {
x += x_inc;
y += y_inc;
glVertex2i(round(x), round(y));
} while (x < x2);
glEnd();
glFlush();
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
dda();
glutSwapBuffers();
}
glutInit(&argc, argv);
glutInitWindowSize(window_width, window_height);
glutInitWindowPosition(window_x, window_y);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow(judul_window);
init();
glutDisplayFunc(display);
glutMainLoop();
}
Tampilan Hasil :
Bresenham.cpp
#include <stdlib.h>
#include <glut.h>
#include <iostream>
}
void LineBres(GLint x1, GLint y1, GLint xEnd, GLint
yEnd)//rumus
{
void drawMyLine()
{
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 50.0, 0.0, 50.0);
}
2.5 Kesimpulan
1. Prinsip algoritma ini adalah mengambil nilai integer terdekat dengan jalur garis
berdasarkan atas sebuah titik yang telah ditentukan sebelumnya (titik awal garis
Algoritma pembentukan garis DDA).
2. Algoritma Garis Bresenham adalah suatu algoritma yang menentukan titik-titik dalam
dimensi yang membentuk pendekatan dekat dengan garis lurus antara dua titik yang
diberikan.
3. Pada praktikum ini saya dapat membuat seuah program DDA dan Bresenham.