Entri Populer

Kamis, 04 Januari 2018

Membuat objek 3d menggunakan bahasa Basic

'posisi mata
Dim pmatax# = 3
Dim pmatay# = 7
Dim pmataz# = 19

'posisi titik pandang
Dim ppandangx# = 0
Dim ppandangy# = 0
Dim ppandangz# = 0 

Dim pindah# = 0.4 

'variabel untuk menyimpan gambar tekstur
Dim tekstur
tekstur = loadmipmaptexture("gbr/kayu.jpg")                                       

'beritahu bahwa akan menggunakan tekstur
glEnable(gl_texture_2d)

while true
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
glLoadIdentity()

gluLookAt(pmatax#, pmatay#, pmataz#, ppandangx#, ppandangy#, ppandangz#, 0,1,0) 'posisi mata, posisi titik pandang, vektor up (0,1,0)

glBindTexture(gl_texture_2d, tekstur)

glBegin(GL_QUADS)  'sisi kiri depan 
   glTexCoord2d(1,1)
   glVertex3f(0, 7, 1) 'kanan atas 
   glTexCoord2d(0,1)
   glVertex3f(0, 7, 1) 'kiri atas
   glTexCoord2d(0,0)
   glVertex3f(-7, -9, 1) 'kiri bawah
   glTexCoord2d(1,0)
   glVertex3f(0, -5, 1)'kanan bawah
glEnd()

glbegin(gl_quads)'sisi kanan depan
    glTexCoord2d(1,1)
    glvertex3f(0,7,1)
    glTexCoord2d(0,1)
    glvertex3f(0,7,1)
    glTexCoord2d(0,0)
    glvertex3f(7,-9,1)
    glTexCoord2d(1,0)
    glvertex3f(0,-5,1)
glEnd()

glBegin(GL_QUADS)  'sisi tengah depan
   'glColor3f(0,1,0) 'warna hijau
   glTexCoord2d(1,1)
   glVertex3f(8, 1, 1) 'kanan atas 
   'glColor3f(1,0,0) 'warna merah
   glTexCoord2d(0,1)
   glVertex3f(-8, 1, 1) 'kiri atas
   'glColor3f(0,0,1) 'warna biru
   glTexCoord2d(0,0)
   glVertex3f(0, -5, 1) 'kiri bawah
   'glColor3f(1,1,0) 'warna kuning
   glTexCoord2d(1,0)
   glVertex3f(0, -5, 1)'kanan bawah
glEnd()

glbegin(gl_quads)'sisi kanan tengah
    glTexCoord2d(0,1)
    glvertex3f(0,7,1)'kanan depan atas
    glTexCoord2d(0,0)
    glvertex3f(0,7,-2)'kanan belakang atas
    glTexCoord2d(1,0)
    glvertex3f(7,-9,-2)'kanan belakang bawah
    glTexCoord2d(1,1)
    glvertex3f(7,-9,1)'kanan depan bawah
glend()                                       

glbegin(gl_quads)'sisi kiri tegah
    glTexCoord2d(0,1)
    glvertex3f(0,7,1)
    glTexCoord2d(0,0)
    glvertex3f(0,7,-2)
    glTexCoord2d(1,0)
    glvertex3f(-7,-9,-2)
    glTexCoord2d(1,1)
    glvertex3f(-7,-9,1)
glend()

glbegin(gl_quads)'sisi tengah bawah kanan
    glTexCoord2d(0,1)
    glvertex3f(8,1,1)
    glTexCoord2d(0,0)
    glvertex3f(8,1,-2)
    glTexCoord2d(1,0)
    glvertex3f(0,-5,-2)
    glTexCoord2d(1,1)
    glvertex3f(0,-5,1)
glend()

glbegin(gl_quads)'sisi tengah bawah kiri
    glTexCoord2d(0,1)
    glvertex3f(-8,1,1)
    glTexCoord2d(0,0)
    glvertex3f(-8,1,-2)
    glTexCoord2d(1,0)
    glvertex3f(0,-5,-2)
    glTexCoord2d(1,1)
    glvertex3f(0,-5,1)
glend()

glbegin(gl_quads)'sisi tengan atas
    glTexCoord2d(1,1)
    glvertex3f(8,1,1)
    glTexCoord2d(0,1)
    glvertex3f(8,1,-2)
    glTexCoord2d(0,0)
    glvertex3f(-8,1,-2)
    glTexCoord2d(1,0)
    glvertex3f(-8,1,1)
glend()

glBegin(GL_QUADS)  'sisi kiri belakang 
   'glColor3f(1,0,0) 'warna merah
   glTexCoord2d(1,1)
   glVertex3f(0, 7, -2) 'kanan atas 
   'glColor3f(0,1,0) 'warna hijau
   glTexCoord2d(0,1)
   glVertex3f(0, 7, -2) 'kiri atas
   'glColor3f(0,0,1) 'warna biru
   glTexCoord2d(0,0)
   glVertex3f(-7, -9, -2) 'kiri bawah
   'glColor3f(1,1,0) 'warna kuning
   glTexCoord2d(1,0)
   glVertex3f(0, -5, -2)'kanan bawah
glEnd()

glbegin(gl_quads)'sisi kanan belakang
    glTexCoord2d(1,1)
    glvertex3f(0,7,-2)
    glTexCoord2d(0,1)
    glvertex3f(0,7,-2)
    glTexCoord2d(0,0)
    glvertex3f(7,-9,-2)
    glTexCoord2d(1,0)
    glvertex3f(0,-5,-2)
glEnd()

glBegin(GL_QUADS)  'sisi tengah belakang
   'glColor3f(0,1,0) 'warna hijau
   glTexCoord2d(0,1)
   glVertex3f(8, 1, -2) 'kanan atas 
   'glColor3f(1,0,0) 'warna merah
   glTexCoord2d(0,0)
   glVertex3f(-8, 1, -2) 'kiri atas
   'glColor3f(0,0,1) 'warna biru
   glTexCoord2d(1,0)
   glVertex3f(0, -5, -2) 'kiri bawah
   'glColor3f(1,1,0) 'warna kuning
   glTexCoord2d(1,1)
   glVertex3f(0, -5, -2)'kanan bawah
glEnd()

swapBuffers()

if scankeydown(VK_RIGHT) then
    pmatax# = pmatax# + pindah#
'    ppandangx# = ppandangx# + pindah#
elseif scankeydown(VK_LEFT) then
    pmatax# = pmatax# - pindah#     
'    ppandangx# = ppandangx# - pindah#
endif

wend




ketika program di jalankan ini hasilnya :




Minggu, 05 November 2017

Menggambar Lingkaran Dengan Algoritma Bresenham

Menggambar Lingkaran Algoritma Bresenham Dengan Bahasa JAVA

Berikut ini adalah sourcodenya :

JFrame frame = new JFrame("algoritma pembuat lingkaran");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300,300);
        frame.setVisible(true);

        gambar gbr = new gambar();
        gbr.setxc(200);
        gbr.setyc(200);
        gbr.setr(100);
        frame.add(gbr);


    public int getxc() {
        return xc;
    }

    public int getyc() {
        return yc;
    }

    public int getr() {
        return r;
    }

    public void setxc(int xa) {
        xc = xa;
    }

    public void setyc(int ya) {
        yc = ya;
    }

   
    public void setr(int jari2) {
        r = jari2;
    }

    public void paint(Graphics g) {   
        int p =  1-r;
        int x = 0;
        int y = r;

        super.paint(g);
        this.setBackground(Color.WHITE);
       
        g.setColor(Color.red);

        while(x<=y) {
            x++;
            if (p<0) {
               p+=2*x+1;
            } else {
                y--;
                p+=2*(x-y)+1;
            }
           
            g.drawRect(xc+x, yc+y, 1, 1);
            g.drawRect(xc-x, yc+y, 1, 1);
            g.drawRect(xc+x, yc-y, 1, 1);
            g.drawRect(xc-x, yc-y, 1, 1);
            g.drawRect(xc+y, yc+x, 1, 1);
            g.drawRect(xc-y, yc+x, 1, 1);
            g.drawRect(xc+y, yc-x, 1, 1);
            g.drawRect(xc-y, yc-x, 1, 1);
        }

Ini hasil ketika program di jalankan



Menggambar Garis Dengan Algoritma Bresenham

Menggambar Garis Algoritma Bresenham Dengan Bahasa Java

Berikut ini adalah sourcecode algoritma bresenham:

JFrame frame = new JFrame("algoritma garis bresenham");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        garis grs = new garis();
       
        grs.setx0(10);
        grs.sety0(10);
        grs.setx1(270);
        grs.sety1(260);
        grs.setBackground(Color.WHITE);
       
        frame.add(grs);
        frame.setSize(600,400);
        frame.setVisible(true);


    public int getx0() {
        return x0;
    }
   
    public int getx1() {
        return x1;
    }
   
    public int gety0() {
        return y0;
    }
   
    public int gety1() {
        return y1;
    }
   
    public void setx0(int xa) {
        x0 = xa;
    }
   
    public void sety0(int ya) {
        y0 = ya;
    }
   
    public void setx1(int xb) {
        x1 = xb;
    }
   
    public void sety1(int yb) {
        y1 = yb;
    }
   
    public void paint(Graphics g) {
        int x,y,xend;
        int dx = Math.abs(x1-x0);
        int dy = Math.abs(y1-y0);
        int p = 2*dy-dx;
        int duady = 2*dy;
        int duadydx = 2*(dy-dx);
        if (x0>x1) {
            x = x1;
            y = y1;
            xend = x0;
        } else {
            x = x0;
            y = y0;
            xend = x1;
        }
       
     
        g.drawRect(x, y, 1, 1);
        while(x<xend) {
            x++;
            if(p<0) {
                p+=duady;
            } else {
                if (y0>y1) {
                    y--; } else y++;
                p+=duadydx;
            }
            g.drawRect(x, y, 1, 1);
        }
    }
   
    public garis() {
       
    }
Ini adalah hasil ketika program dijalankan