This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Tuesday, March 31, 2020

Gambar Objek Spiral berbentuk Hati menggunakan phython OpenGL

halo teman-teman kembali dengan saya, kali ini saya akan berbagi lagi informasi cara membuat gambar love pada phyton OpenGL. Berikut adalah syntaxnya. Pada syntax ini kita menggunakan library numpy karna numpy berfungsi untuk melakukan operasi vektor dan matriks dengan mengolah array dan array multidimensi.


from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

import numpy as np


def init():
    glClearColor(0.5, 0.5, 0.5, 0.0) #warna gambar background
    gluOrtho2D(-2.0, 2.0, -2.0, 2.0)


def plotpoints():
    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f(1, 1.0, 1.0) #warna garis
    glPointSize(13)
    glBegin(GL_LINES)
    glVertex2f(-500, 0)
    glVertex2f(500, 0)

    glVertex2f(0, -500)
    glVertex2f(0, 500)
    glEnd()
    heart_shape()
    glFlush()

def heart_shape(): #fungsi menggambar hati
    glBegin(GL_LINE_STRIP)
    glColor3f(1.0, 1.0, 1.0) #untuk menentukan warna dari gambar hati
    x = -1.140 #x memiliki nilai -1.140

    while(x <= 1.140): #selama x kurang dari sama dengan 1.140 maka akan melakukan looping
        delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4 #dengan rumus delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4
        y1 = (np.cbrt(x*x) + np.sqrt(delta)) / 2 #mencari y1
        y2 = (np.cbrt(x*x) - np.sqrt(delta)) / 2 #mencari y2
        
        glVertex2f(x, y1) #mendapat koordinat x dan y1
        glVertex2f(x, y2) #mendapat koordinat x dan y2

        x += 0.001 #x akan bertambah 0.001
    glEnd() #perulangan berakhir


def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
    glutInitWindowSize(500, 500)
    glutInitWindowPosition(100, 100)
    glutCreateWindow("Gambar Hati  Pertemuan 5")
    glutDisplayFunc(plotpoints)

    init()
    glutMainLoop()


main()
seperti biasa pada syntax sudah terdapat sedikit penjelasan programnya yang bisa membantu teman-teman. Sekian terima kasih

dan ini outputnya

Share:

Tuesday, March 24, 2020

Membuat lingkaran dengan menggunakan Algoritma Bressenham

Halo kawan-kawan sekalian, pada kesempatan kali ini saya akan membagikan pada kalian Membuat lingkaran dengan menggunakan Algoritma Bressenham. Algoritma Bressenham adalah algoritma
konversi penambahan nilai integer yang juga dapat diadaptasi untuk menggambar sebuah lingkaran. Berikut adalah source code programnya


from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *


def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    gluOrtho2D(-100.0, 100.0, -100.0, 100.0)
    glPointSize(5)


def plot(x, y):
    glBegin(GL_POINTS)
    glVertex2f(x, y)
    glEnd()


def bresenham_circle_drawing(r):

    # fungsi untuk membuat lingksran

    x_position = 1
    y_position = 1

    r = 40 #adalah jari-jari yang ada pada lingkaran
    x = 0
    y = r

    # parameter keputusan
    d = 3 - 2 * r

 
    plot(x + x_position, y + y_position) #membuat koordinat titik

    while y > x:

        if d < 0:
            x += 1
            d += 4 * x + 6
        else:
            x += 1
            y -= 1
            d += (4 * (x - y)) + 10

        # Tidak perlu mencari semua nilai koordinat
        # cukup dapatkan nilai (x, y) saja
        # lalu balik menjadi (y, x)

        # Untuk pixel (x, y)

        # Quadrant 1
        plot(x + x_position, y + y_position)

        # Quadrant 2
        plot(x + x_position, -y + y_position)

        # Quadrant 3
        plot(-x + x_position, -y + y_position)

        # Quadrant 4
        plot(-x + x_position, y + y_position)

        # Untuk pixel (y, x)

        # Quadrant 1
        plot(y + x_position, x + y_position)

        # Quadrant 2
        plot(-y + x_position, x + y_position)

        # Quadrant 3
        plot(-y + x_position, -x + y_position)

        # Quadrant 4
        plot(y + x_position, -x + y_position)


def plotpoints():

    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f(0.75, 0.6, 1.0) #UNTUK MENENTUKAN WARNA GARIS

    glBegin(GL_LINES)
#koordinat diagram x, y
    glVertex2f(-100, 0)
    glVertex2f(100, 0)

    glVertex2f(0, -100)
    glVertex2f(0, 100)

    glEnd()

    bresenham_circle_drawing(40)

    glFlush()


def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
    glutInitWindowSize(500, 500)
    glutInitWindowPosition(100, 100)
    glutCreateWindow("Bresenham Circle Drawing Algoritm")
    glutDisplayFunc(plotpoints)

    init()
    glutMainLoop()


main()
dalam program diatas sudah terdapat penjelasan dari program tersebut. Dan Output dari program tersebut adalah 


Demikian sedikt ilmu dari saya terimakasih atas kunjungan teman-teman sampai jumpa

Share:

Tuesday, March 10, 2020

Tutorial membuat rumah dengan OpenGL


Assalamualaikum kawan-kawan, kali ini saya akan beragi informasi membuay sebuah gambar rumah di OpenGL. Perlu diketehui untuk bisa mengerjakan prosesnya kita butuh tools yaitu Phyton dengan OpenGL sebagai librarynya. Dalam proses membuat kita menngunakan syntax glvortex 2f yang nantinya di dalanya ada deklarasi untuk mementukan titik koordinatnya. Berikut saya tampilkan syntax programnya

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
#import OpenGL


def init():
    glClearColor(0.0, 0.0, 0.0, 0.0) #tampilan warna dari background/kanvas
    gluOrtho2D(-100.0, 100.0, -100.0, 100.0) #koordinat maksimal dari sumbu x dan y

   
def plotlines():
    glClear(GL_COLOR_BUFFER_BIT)
#atap
    glColor3f(0.0, 1.0, 1.0) #untuk memberi warna pada garis
    glBegin(GL_LINES) #bentuk objek berupa line/garis
    glVertex2f(-100.0,20.0)
    glVertex2f(-80.0,70.0)
   
    glVertex2f(-80.0,70.0)
    glVertex2f(-23.0,70.0)

    glVertex2f(-23.0,70.0)  
    glVertex2f(-60.0,20.0)

    glVertex2f(-60.0,20.0)
    glVertex2f(-100.0,20.0)

    glVertex2f(-23.0,70.0)
    glVertex2f(0.0,100.0)

    glVertex2f(0.0,100.0)
    glVertex2f(23.0,70.0)
   
    glVertex2f(23.0,70.0)
    glVertex2f(80.0,70.0)
   
    glVertex2f(80.0,70.0)
    glVertex2f(100.0,20.0)
   
    glVertex2f(100.0,20.0)
    glVertex2f(60.0,20.0)
   
    glVertex2f(60.0,20.0)
    glVertex2f(23.0,70.0)
   
    glVertex2f(60.0,20.0)
    glVertex2f(-60.0,20.0)
   
    glVertex2f(-20.0,25.0)
    glVertex2f(-20.0,55.0)

    glVertex2f(-20.0,55.0)
    glVertex2f(20.0,55.0)

    glVertex2f(20.0,55.0)
    glVertex2f(20.0,25.0)

    glVertex2f(20.0,25.0)
    glVertex2f(-20.0,25.0)

    glVertex2f(-10.0,25.0)
    glVertex2f(-10.0,55.0)
   
    glVertex2f(10.0,25.0)
    glVertex2f(10.0,55.0)
   
    glVertex2f(-20.0,40.0)
    glVertex2f(-10.0,40.0)
   
    glVertex2f(10.0,40.0)
    glVertex2f(20.0,40.0)

   
    glVertex2f(-20.0,55.0)
    glVertex2f(-25.0,55.0)
   
    glVertex2f(-25.0,55.0)
    glVertex2f(-25.0,60.0)
   
    glVertex2f(-25.0,60.0)
    glVertex2f(-20.0,60.0)
   
    glVertex2f(-20.0,60.0)
    glVertex2f(-20.0,65.0)
   
    glVertex2f(-20.0,65.0)
    glVertex2f(20.0,65.0)
   
    glVertex2f(20.0,65.0)
    glVertex2f(20.0,60.0)
       
    glVertex2f(20.0,60.0)
    glVertex2f(25.0,60.0)
       
    glVertex2f(25.0,60.0)
    glVertex2f(25.0,55.0)
       
    glVertex2f(25.0,55.0)
    glVertex2f(20.0,55.0)

    glVertex2f(-20.0,60.0)
    glVertex2f(20.0,60.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk atap menggunakan tipe gl_line diatas


    glEnd()
    glFlush()
#badan
    glColor3f(0.0, 0.0, 1.0)
    glBegin(GL_LINES)
    glVertex2f(-90.0,20.0)
    glVertex2f(-90.0,-65.0)
   
    glVertex2f(-90.0,-65.0)
    glVertex2f(-95.0,-65.0)

    glVertex2f(-95.0,-65.0)
    glVertex2f(-95.0,-80.0)

    glVertex2f(-95.0,-80.0)
    glVertex2f(95.0,-80.0)

    glVertex2f(90.0,20.0)
    glVertex2f(90.0,-65.0)
   
    glVertex2f(90.0,-65.0)
    glVertex2f(95.0,-65.0)

    glVertex2f(95.0,-65.0)
    glVertex2f(95.0,-80.0)

    glVertex2f(95.0,-65.0)
    glVertex2f(-95.0,-65.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk badan rumah menggunakan tipe gl_line diatas

   
    glEnd()
    glFlush()

#tangga bawah
    glColor3f(0.0, 0.0, 1.0)
    glBegin(GL_LINES)
    glVertex2f(-40.0,-80.0)
    glVertex2f(-40.0,-75.0)

    glVertex2f(-40.0,-75.0)
    glVertex2f(-35.0,-75.0)

    glVertex2f(-35.0,-75.0)
    glVertex2f(-35.0,-70.0)

    glVertex2f(-35.0,-70.0)
    glVertex2f(-30.0,-70.0)
   
    glVertex2f(-30.0,-70.0)
    glVertex2f(-30.0,-65.0)

    glVertex2f(40.0,-80.0)
    glVertex2f(40.0,-75.0)

    glVertex2f(40.0,-75.0)
    glVertex2f(35.0,-75.0)

    glVertex2f(35.0,-75.0)
    glVertex2f(35.0,-70.0)

    glVertex2f(35.0,-70.0)
    glVertex2f(30.0,-70.0)
   
    glVertex2f(30.0,-70.0)
    glVertex2f(30.0,-65.0)

    glVertex2f(-40.0,-75.0)
    glVertex2f(40.0,-75.0)
   
    glVertex2f(-35.0,-70.0)
    glVertex2f(35.0,-70.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk tangga bawah menggunakan tipe gl_line diatas

  
    glEnd()
    glFlush()

#pintu
    glColor3f(0.0, 1.0, 0.0)
    glBegin(GL_LINES)
    glVertex2f(-20.0,-65.0)
    glVertex2f(-20.0,-10.0)

    glVertex2f(-20.0,-10.0)
    glVertex2f(-25.0,-10.0)
   
    glVertex2f(-25.0,-10.0)
    glVertex2f(-25.0,-5.0)
   
    glVertex2f(-25.0,-5.0)
    glVertex2f(-20.0,-5.0)
       
    glVertex2f(-20.0,-5.0)
    glVertex2f(-20.0,0.0)

    glVertex2f(-20.0,0.0)
    glVertex2f(20.0,0.0)
   
    glVertex2f(20.0,0.0)
    glVertex2f(20.0,-5.0)
   
    glVertex2f(20.0,-5.0)
    glVertex2f(25.0,-5.0)
       
    glVertex2f(25.0,-5.0)
    glVertex2f(25.0,-10.0)
       
    glVertex2f(25.0,-10.0)
    glVertex2f(20.0,-10.0)
       
    glVertex2f(20.0,-10.0)
    glVertex2f(20.0,-65.0)
       
    glVertex2f(-20.0,-5.0)
    glVertex2f(20.0,-5.0)
           
    glVertex2f(-20.0,-10.0)
    glVertex2f(20.0,-10.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk pntu menggunakan tipe gl_line diatas


    glEnd()
    glFlush()

#jendela kanan
    glColor3f(1.0, 0.0, 1.0)
    glBegin(GL_LINES)
    glVertex2f(40.0,0.0)
    glVertex2f(70.0,0.0)

    glVertex2f(70.0,0.0)
    glVertex2f(70.0,-30.0)
   
    glVertex2f(70.0,-30.0)
    glVertex2f(40.0,-30.0)
   
    glVertex2f(40.0,-30.0)
    glVertex2f(40.0,0.0)
   
    glVertex2f(50.0,0.0)
    glVertex2f(50.0,-30.0)
   
    glVertex2f(60.0,0.0)
    glVertex2f(60.0,-30.0)
   
    glVertex2f(40.0,-15.0)
    glVertex2f(50.0,-15.0)
   
    glVertex2f(60.0,-15.0)
    glVertex2f(70.0,-15.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk jendela kanan menggunakan tipe gl_line diatas

   
    glEnd()
    glFlush()

#jendela kiri
    glColor3f(1.0, 0.0, 1.0)
    glBegin(GL_LINES)
    glVertex2f(-40.0,0.0)
    glVertex2f(-70.0,0.0)

    glVertex2f(-70.0,0.0)
    glVertex2f(-70.0,-30.0)
   
    glVertex2f(-70.0,-30.0)
    glVertex2f(-40.0,-30.0)
   
    glVertex2f(-40.0,-30.0)
    glVertex2f(-40.0,0.0)
   
    glVertex2f(-50.0,0.0)
    glVertex2f(-50.0,-30.0)
   
    glVertex2f(-60.0,0.0)
    glVertex2f(-60.0,-30.0)
   
    glVertex2f(-40.0,-15.0)
    glVertex2f(-50.0,-15.0)
   
    glVertex2f(-60.0,-15.0)
    glVertex2f(-70.0,-15.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk jendela kiri menggunakan tipe gl_line diatas

   
    glEnd()
    glFlush()
   
def main():
    glutInit(sys.argv) #inisiasi window
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB) #inisiasi window
    glutInitWindowSize(500,500) #ukuran window
    glutInitWindowPosition(100,100) #menetapkan posisi dari window
    glutCreateWindow("Plot Lines") #memberi nama projek
    glutDisplayFunc(plotlines) #mengerjakan semua fungsi

    init()
    glutMainLoop()
main()


berikut adalah output gambarnya



Pada syntax diatas sudah ada beberapa penjelasan dari setiap langkah, hanya saja penjelasan dari penetapan koordinat tidak saya jelaskan. Teman-teman bisa pelajari sendiri dengan membuat coretan di kertas untuk membantu dalam membayaangkan setiap koordinat.

Demikian adalah sedikit ilmu yang saya share ke teman-teman. Mohon maaf jika ada kesalahan dalam menyampaikan. Terima kasih...... Wassalamualaikum wr.wb.
Share:

Definition List

Unordered List

Support