@bayu_aji94
mari saling sharing di twitter
Bayu Aji
temukan saya di facebook
Serikat Mahasiswa Indonesia
Embrio Persatuan Serikat Mahasiswa Indonesia ( SMI ) adalah organisasi yang tidak lahir begitu saja, namun SMI mempunyai sejarah yang cukup panjang terutama dalam proses pembangunannya. Diawali sejak akhir tahun 2001.
Manchester City
Manchester City merupakan klub sepak bola asli kota manchester - Inggris
Selasa, 09 Desember 2014
Minggu, 23 November 2014
prak 9 p citra
23.30
No comments
function apply_Callback(hObject, eventdata, handles)
% hObject handle to apply (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Flag = get(handles.transfCheck, 'value');
image_file=get(handles,inEdit, 'string');
orim = inread(char(image_file));
orim=double(orim);
if Flag == 0
set(handles.newIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
axes(handles.orgIm);
axis equal;
axis tight;
axis off
else
set(handles.newIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
I=imread(char(image_file));
mean=mean2(I);
stddev=std2(I);
rendah=(mean-(stddev)/2)/256;
tinggi=(mean-(stddev)/2)/256;
toleransi=[rendah tinggi];
rendah_tinggi = stretchlim(I, toleransi);
I_constreth2 = imadjust(I, rendah_tinggi, []);
set(handles.newIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
image(I_constreth2);
colormap(gray(256));
axis equal;
axis tight;
axis off;
end;
Minggu, 09 November 2014
pintu investasi asing semakin lebar
22.59
No comments
VIVAnews - Pada pidatonya di hadapan para pemimpin bisnis dalam pertemuan CEO APEC di Beijing, Senin 10 November, Presiden Indonesia Joko Widodo (Jokowi) menyebut negaranya sebagai tujuan utama investasi.
Dilansir dari Wall Street Journal, Jokowi dalam pidato pertamanya di acara internasional itu berjanji memangkas subsidi BBM, yang disebutnya telah menghalangi kemampuan pemerintah untuk membiayai pembangunan infrastruktur dan sosial.
Jokowi menyebut $27 miliar yang dihabiskan setiap tahun hanya untuk subsidi BBM, adalah jumlah yang sangat besar. "Kami ingin menyalurkan subsidi BBM kami dari konsumsi menjadi aktivitas yang produktif," kata Jokowi.
Dana yang dapat dihemat dari pemangkasan subsidi BBM akan digunakan untuk membangun pelabuhan, rel kereta dan infrastruktur lainnya. Jokowi menyebut Indonesia akan membangun 24 pelabuhan dalam lima tahun, di Sumatera, Kalimantan, Jawa, Sulawesi, Maluku dan Papua.
Dia juga mengungkapkan rencana memperluas jaringan kereta api dan pembangunan jaringan transportasi massal di enam kota besar termasuk Jakarta, Bandung dan Surabaya. Proyek kunci lainnya adalah pembangkit listrik, yang akan membantu pembangunan sektor industri Indonesia.
"Ini kesempatan Anda," kata Jokowi dalam bahasa Inggris, pada pidatonya di hadapan para pemimpin bisnis kawasan yang disampaikan dengan bahasa Indonesia. Lebih lanjut, Jokowi menyampaikan keinginannya membangun 25 bendungan dalam lima tahun, mengalihkan anggaran subsidi menjadi pengairan bagi pertanian.
Jokowi yang beberapa kali mengulang kalimat kesempatan dalam pidatonya, berusaha menjamin tentang resiko berbisnis di Indonesia. Dia mengakui bahwa Indonesia sebelumnya berada pada peringkat rendah dalam survei.
"Banyak investor, saat mereka datang pada saya, hampir semuanya, mereka selalu mengeluhkan tentang akuisisi tanah. Saya akan mendorong menteri-menteri, gubernur, walikota, untuk membantu menyelesaikan masalah ini," ujarnya.
Jokowi menceritakan pengalamannya saat harus menyelesaikan sengketa tanah selama menjabat Gubernur DKI Jakarta, termasuk yang terkait dengan pembangunan jalan tol. Dia juga mengingatkan latar belakangnya sebagai pengusaha.
Dia menjamin bahwa pemerintah Indonesia akan membantu para investor asing dalam percepatan izin usaha. "Ini kesempatan Anda, karena Anda tahu anggaran nasional kami terbatas," ucapnya.
Dilansir dari Wall Street Journal, Jokowi dalam pidato pertamanya di acara internasional itu berjanji memangkas subsidi BBM, yang disebutnya telah menghalangi kemampuan pemerintah untuk membiayai pembangunan infrastruktur dan sosial.
Jokowi menyebut $27 miliar yang dihabiskan setiap tahun hanya untuk subsidi BBM, adalah jumlah yang sangat besar. "Kami ingin menyalurkan subsidi BBM kami dari konsumsi menjadi aktivitas yang produktif," kata Jokowi.
Dana yang dapat dihemat dari pemangkasan subsidi BBM akan digunakan untuk membangun pelabuhan, rel kereta dan infrastruktur lainnya. Jokowi menyebut Indonesia akan membangun 24 pelabuhan dalam lima tahun, di Sumatera, Kalimantan, Jawa, Sulawesi, Maluku dan Papua.
Dia juga mengungkapkan rencana memperluas jaringan kereta api dan pembangunan jaringan transportasi massal di enam kota besar termasuk Jakarta, Bandung dan Surabaya. Proyek kunci lainnya adalah pembangkit listrik, yang akan membantu pembangunan sektor industri Indonesia.
"Ini kesempatan Anda," kata Jokowi dalam bahasa Inggris, pada pidatonya di hadapan para pemimpin bisnis kawasan yang disampaikan dengan bahasa Indonesia. Lebih lanjut, Jokowi menyampaikan keinginannya membangun 25 bendungan dalam lima tahun, mengalihkan anggaran subsidi menjadi pengairan bagi pertanian.
Jokowi yang beberapa kali mengulang kalimat kesempatan dalam pidatonya, berusaha menjamin tentang resiko berbisnis di Indonesia. Dia mengakui bahwa Indonesia sebelumnya berada pada peringkat rendah dalam survei.
"Banyak investor, saat mereka datang pada saya, hampir semuanya, mereka selalu mengeluhkan tentang akuisisi tanah. Saya akan mendorong menteri-menteri, gubernur, walikota, untuk membantu menyelesaikan masalah ini," ujarnya.
Jokowi menceritakan pengalamannya saat harus menyelesaikan sengketa tanah selama menjabat Gubernur DKI Jakarta, termasuk yang terkait dengan pembangunan jalan tol. Dia juga mengingatkan latar belakangnya sebagai pengusaha.
Dia menjamin bahwa pemerintah Indonesia akan membantu para investor asing dalam percepatan izin usaha. "Ini kesempatan Anda, karena Anda tahu anggaran nasional kami terbatas," ucapnya.
Minggu, 02 November 2014
praktikum p.citra
23.47
No comments
abal-abal
opening
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
image_file=get(handles,inEdit, 'string');
if -isempty(image_file)
orim =
inread(char(image_file))
set(handles.orgIm,
'HandleVisibility', 'ON');
axes(handles.orgIm);
image(orim);
axis equal;
axis tight;
axis off
set(handles.orgIm,
'HandleVisibility', 'OFF');
end
load
function untitled_OpeningFcn(hObject, eventdata, handles, varargin)
image_file=get(handles,inEdit, 'string');
if -isempty(image_file)
orim =
inread(char(image_file))
set(handles.orgIm,
'HandleVisibility', 'ON');
axes(handles.orgIm);
image(orim);
axis equal;
axis tight;
axis off
end
app6
Flag = get(handles.transfCheck, ‘value’);
image_file=get(handles,inEdit, 'string');
orim = inread(char(image_file));
orim=double(orim);
if Flag == 0
set(handles.orgIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
axes(handles.orgIm);
axis equal;
axis tight;
axis off
end
Else
I=imread(image_file);
mean=mean2(I);
stddev=std2(I);
rendah=(mean-(stddev)/2/256;
tinggi=(mean-(stddev)/2/256;
toleransi=[rendah tinggi];
rendah_tinggi = stretchlim(I, toleransi);
I_constreth2 = imadjust(I, rendah_tinggi, []);
%image(I_constreth2);
set(handles.orgIm, 'HandleVisibility', 'OFF');
set(handles.orgIm, 'HandleVisibility', 'ON');
axes(handles.orgIm);
axis equal;
axis tight;
axis off
end
app7
app
Flag = get(handles.transfCheck, ‘value’);
image_file=get(handles,inEdit, 'string');
orim = inread(char(image_file));
orim=double(orim);
if Flag == 0
set(handles.orgIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
axes(handles.orgIm);
axis equal;
axis tight;
axis off
end
Else
I=imread(image_file);
mean=mean2(I);
stddev=std2(I);
rendah=(mean-(stddev)/2/256;
tinggi=(mean-(stddev)/2/256;
toleransi=[rendah tinggi];
rendah_tinggi = stretchlim(I, toleransi);
I_constreth2 = imadjust(I, rendah_tinggi, []);
%image(I_constreth2);
set(handles.orgIm, 'HandleVisibility', 'OFF');
set(handles.orgIm, 'HandleVisibility', 'ON');
axes(handles.orgIm);
axis equal;
axis tight;
axis off
end
app
Flag = get(handles.transfCheck, ‘value’);
image_file=get(handles,inEdit, 'string');
orim = inread(char(image_file));
orim=double(orim);
if Flag == 0
nim = orim*1;
nim = (nim<= 255).*nim + (nim>255)*255;
set(handles.orgIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
axes(handles.orgIm);
image(orim/255);
axis equal;
axis tight;
axis off
set(handles.orgIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
axes(handles.newIm);
n = max(max(max(nim)));
if n>255
t=n;
else
t=255;
end;
image(nim/t);
colormap(gray(256));
axis equal;
axis tight;
axis off;
set(handles.orgIm, 'HandleVisibility', 'OFF');
inwrite(nim/t, ‘123.bap’);
else
nim=orim;
image=nim;
dimension=ndims(Image);
if dimension=2
H=histeq(Image);
Elseif dimension=3;
R=Image(:,:,1);
G=Image(:,:,2);
B=Image(:,:,3);
r=histeq(R);
g=histeq(G);
b=histeq(B);
H=cat(3, r,g,b);
end
set(handles.newIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
set(handles.newIm, 'HandleVisibility', 'ON');
set(handles.orgIm, 'HandleVisibility', 'OFF');
axes(handles.newIm);
image(H);
colormap(gray(256));
axis equal;
axis tight;
axis off;
set(handles.orgIm, 'HandleVisibility', 'ON');
inwrite(H, ‘123.bap’);
end;
Selasa, 16 September 2014
Senin, 15 September 2014
Praktikum 1 Kecerdasan buatan
download borland turbonya dan materinya dahulu
turbo : http://www.4shared.com/folder/uu6Y2HTg/borland_turbo_prolog.html
modul : http://www.4shared.com/office/RCUBcQgvba/Kecerdasan_Buatan.html
ketik coding ini pada prolog :
/* Program Silsilah */
domains
name = symbol
predicates
ayah(name,name)
setiaporang
clauses
ayah(slamet,amin).
ayah(slamet,anang).
ayah(amin,badu).
setiaporang if
ayah(X,Y),
write(X," is ",Y,"'s ayah\n") and
fail.
turbo : http://www.4shared.com/folder/uu6Y2HTg/borland_turbo_prolog.html
modul : http://www.4shared.com/office/RCUBcQgvba/Kecerdasan_Buatan.html
ketik coding ini pada prolog :
/* Program Silsilah */
domains
name = symbol
predicates
ayah(name,name)
setiaporang
clauses
ayah(slamet,amin).
ayah(slamet,anang).
ayah(amin,badu).
setiaporang if
ayah(X,Y),
write(X," is ",Y,"'s ayah\n") and
fail.
Senin, 09 Juni 2014
Sabtu, 07 Juni 2014
Rabu, 04 Juni 2014
soal inhal jarkomdat 2014
SOAL INHAL
PRAKTIKUM KOMUIKASI DATA DAN JARINGAN 2014
1.Pengkabelan menggunakan kabel UTP
Pretes:
a.Jelaskan apa yang anda ketahui mengenai Kabel UTP
b.Jelaskan /sebutkan macam pengkabelan kabel UTP
Postes:
Buatlah makalah mengenai pengkabelan kabel UTP ( Min 5
Lembar )
2.Pengalamatan IP
Pretes:
a. Apa yang dimaksud dengan IP address
b.Jelaskan apa yang anda ketahui mengenai Internet protokol
versi 4 dan internet protokol versi 6
Postes:
Lihat Modul praktikum 2 dan laksankan langkah praktikum
dan kerjakan lembar kerja
3.LAN dan Aplikasinya
Pretes:
a. Jelaskan apa yang dimaksud dengan LAN
b.Sebutkan dan jelaskan macam-macam topologi LAN
Postes:
Buatlah makalah dengan topik LAN (Lokal Area Network) (Min.
5 Lembar )
4.Subnetting
Pretes:
a. Apa yang dimaksud dengan subnetting
b. Jelaskan kegunaan dari subnetting yang anda ketahui
Postes:
Diberikan IP
192.168.129.0/24
Pecahlah
kedalam 5 subnet subnet#1, subnet#2 … subnet #5.
a.Tentukan
jumlah bit yang diperlukan untuk alamat subnet
b.Tentukan
netprefix yang terbentuk
c.Tentukan
subnetmask
Tentukan IP
untuk host #3 dan host #5 dari setiap subnet, sesuai dengan masing-masing
subnet.
5. VPN (
Virtual Private Network )
Pretes:
a. Jelaskan
apa yang dimaksud dengan VPN
b. Sebutkan
dan jelaskan macam-macam VPN yang anda ketahui
Postes:
Kerjakan
Soal Simulasi VPN menggunakan cisco packet tracer,
download
file dan soal di : bit.ly/inhalvpn
6.
ROUTING
Pretes:
a. Jelaskan
apa yang dimaksud dengan routing
b.Jelaskan
metode routing yang anda ketahui
Postes:
Kerjakan
Soal Simulasi menggunakan cisco packet tracer,
download
file dan soal di: bit.ly/inhalrouting
7. DNS
Pretes:
a. Jelaskan
apa yang dimaksud dengan DNS
b. Sebutkan
komponen DNS
Postes:
Lakukan
konfigurasi DNS server menggunakan linux
(lihat modul)
8.Web dan
Keamanan
Pretes:
a. Jelaskan
apa yang dimaksud dengan web server
b. Sebutkan
aplikasi web server yang anda ketahui
Postes:
Kerjakan
konfigurasi web server (lihat
modul)
9.Wireless
LAN
Pretes:
a. Jelaskan
apa yang dimaksud dengan wireless LAN
b.Jelaskan
apa yang dimaksud dengan access point
Postes:
Lakukan
konfigurasi wireless dan hotspot di mikrotik
10.Keamanan
Jaringan
Pretes:
a. Jelaskan
tujuan dari keamanan jaringan
b. Sebutkan
contoh ancaman/serangan yang dapat terjadi dalam jaringan komputer
Postes:
Laksanakan
langkah praktikum 10
Tata Cara Pengumpulan Tugas Inhal
1. Semua
tugas dikumpul dalam bentuk HARDCOPY
(wajib di print tidak boleh tulis tangan )
2. Tugas
dikumpulan pada saat responsi (sesuai
jam praktikum)
3. Tugas
konfigurasi dan simulasi sertakan hasil
capture gambar
4. Jangan
lupa beri Nama, NIM dan Jam Praktikum pada lembar kerja (tidak boleh tulis
tangan)
5. Dilarang
copy paste jawaban ( apabila terjadi,
nilai akan dibagi jumlah yang melakukan copy paste )
6. Pretes
dan Postes dijadikan satu ( tidak dikumpul secara terpisah )
7. Kalau ada
yang ditanyakan silahkan tanyakan ke asisten pada jam bersangkutan atau nomor
kontak dibawah, sebelum bertanya pastikan baca baik-baik petunjuk diatas.
Kontak :
fuad 085777000997 (sms/whatsapp only)
Jarkomdat prak 10
Tutorial mengecek data jaringan menggunakan wireshark
1.
Buka aplikasi wireshark
2. Pilih menu bar capture, kemudian klik option
3. maka akan tampil
4. pilih browser sebagai
tempat tujuan pengecekan
5. Isikan nama file dengan extensi .txt dan pilih
folder yang diinginkan untuk menyimpan
6. Kemudian
pilih start / Ctrl+K
7. Kmudian jalankan web yang ingin di cek username
dan passwordnya
8. P ilih Stop / Ctrl+E
8. Kemudian cari dan buka file .txt pada folder yang
di tujukan
9. Selamat mencari password pada file tersebut
Selasa, 03 Juni 2014
inhal grafkom 5
/* Praktikum 05
* Membuat objek lingkaran sederhana
*/
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include<math.h>
using namespace std;
typedef unsigned char uchar;
// number of line segments
static int num_lines = 4;
static int num_lines1 = 20;
// callback prototypes
void disp(void);
void keyb(uchar k, int x, int y);
void reshape(int x, int y);
// main
int main(int argc, char **argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("circle.cpp");
glClearColor(1.0,1.0,1.0,1.0);
glutDisplayFunc(disp);
glutKeyboardFunc(keyb);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
// disp
void disp(void){
double angle;
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
glColor3f(0.0,1.0,0.0);
for(int i =0;i<num_lines;i++){
angle = i*2*3.14/num_lines;//kotak
glVertex2f(cos(angle),sin(angle));
}
glEnd();
glBegin(GL_LINE_LOOP);
glColor3f(1.0,0.0,0.0);// lingkaran
for(int i =0;i<num_lines1;i++){
angle = i*2*3.14/num_lines1;
glVertex2f(cos(angle),sin(angle));
}
glEnd();
//elipe
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
for(int i =0;i<num_lines1;i++){
angle = i*2*3.14/num_lines1;
glVertex2f((cos(angle)/5),(sin(angle)/2));
}
glEnd();
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
for(int i =0;i<num_lines1;i++){
angle = i*2*3.14/num_lines1;
glVertex2f((cos(angle)/2),(sin(angle)/5));
}
glEnd();
//
glutSwapBuffers();
}
// keyb
void keyb(uchar k, int x, int y){
switch (k){
case 'q':
exit(0);
break;
case '+':
if(num_lines< 99){
num_lines++;
num_lines1--;
cout << "Circle consists of " << num_lines << " lines " << endl;
glutPostRedisplay();
}
break;
case '-':
if(num_lines >3){
num_lines--;
num_lines1++;
cout << "Circle consists of " << num_lines << " lines " << endl;
glutPostRedisplay();
}
break;
}
}
// reshape
void reshape(int x,int y){
if(x<y)
glViewport(0,(y-x)/2,x,x);
else
glViewport((x-y)/2,0,y,y);
}
* Membuat objek lingkaran sederhana
*/
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include<math.h>
using namespace std;
typedef unsigned char uchar;
// number of line segments
static int num_lines = 4;
static int num_lines1 = 20;
// callback prototypes
void disp(void);
void keyb(uchar k, int x, int y);
void reshape(int x, int y);
// main
int main(int argc, char **argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("circle.cpp");
glClearColor(1.0,1.0,1.0,1.0);
glutDisplayFunc(disp);
glutKeyboardFunc(keyb);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
// disp
void disp(void){
double angle;
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
glColor3f(0.0,1.0,0.0);
for(int i =0;i<num_lines;i++){
angle = i*2*3.14/num_lines;//kotak
glVertex2f(cos(angle),sin(angle));
}
glEnd();
glBegin(GL_LINE_LOOP);
glColor3f(1.0,0.0,0.0);// lingkaran
for(int i =0;i<num_lines1;i++){
angle = i*2*3.14/num_lines1;
glVertex2f(cos(angle),sin(angle));
}
glEnd();
//elipe
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
for(int i =0;i<num_lines1;i++){
angle = i*2*3.14/num_lines1;
glVertex2f((cos(angle)/5),(sin(angle)/2));
}
glEnd();
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
for(int i =0;i<num_lines1;i++){
angle = i*2*3.14/num_lines1;
glVertex2f((cos(angle)/2),(sin(angle)/5));
}
glEnd();
//
glutSwapBuffers();
}
// keyb
void keyb(uchar k, int x, int y){
switch (k){
case 'q':
exit(0);
break;
case '+':
if(num_lines< 99){
num_lines++;
num_lines1--;
cout << "Circle consists of " << num_lines << " lines " << endl;
glutPostRedisplay();
}
break;
case '-':
if(num_lines >3){
num_lines--;
num_lines1++;
cout << "Circle consists of " << num_lines << " lines " << endl;
glutPostRedisplay();
}
break;
}
}
// reshape
void reshape(int x,int y){
if(x<y)
glViewport(0,(y-x)/2,x,x);
else
glViewport((x-y)/2,0,y,y);
}
postest grafkom 1-10
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
void mydisplay(){
glClear (GL_COLOR_BUFFER_BIT);
glBegin (GL_POLYGON);
glVertex2f(0, 0);
glVertex2f(0.5, 0.5);
glVertex2f(0, 1);
glVertex2f(-0.5, 0.5);
glVertex2f(0, 0);
glVertex2f(0.5, -0.5);
glVertex2f(0, -1);
glVertex2f(-0.5, -0.5);
glVertex2f(0, 0);
glEnd();
glFlush();
}
int main (int argc, char** argv)
{
printf ("contoh
sederhana kotak");
glutCreateWindow("Praktikum
1");
glutDisplayFunc (mydisplay);
glutMainLoop();} |
PRAKTIKUM 2
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <GL/glut.h>
#define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES);
glVertex2f
((x1),(y1)); glVertex2f ((x2),(y2)); glEnd();
using namespace std;
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void display(void)
{
int i;
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glEnable (GL_LINE_STIPPLE);
glLineStipple (1, 0x0101);
drawOneLine (50.0, 125.0, 150.0,
125.0);
glLineStipple (1, 0x00FF);
drawOneLine (150.0, 125.0, 250.0,
125.0);
glLineStipple (1, 0x1C47);
drawOneLine (250.0, 125.0, 350.0,
125.0);
glLineWidth(5.0);
glLineStipple(1, 0x0101);
drawOneLine(50.0, 100.0, 150.0, 100.0);
glLineStipple(1, 0x00FF);
drawOneLine(150.0, 100.0, 250.0,
100.0);
glLineStipple(1, 0x1C47);
drawOneLine(250.0, 100.0, 350.0,
100.0);
glLineWidth(1.0);
/*
glLineWidth(1.0);
glLineStipple (1, 0x0101);
drawOneLine (48.0, 48.0,
50.0, 125.0);
glLineWidth(1.0);
glLineStipple (1, 0x0101);
drawOneLine (248.0, 248.0,
50.0, 50.0);
*/
glLineStipple(1, 0x0101);
glBegin(GL_LINE_STRIP);
for(i=0;i<7;i++)
glVertex2f(50.0 + ((GLfloat) i * 50.0),
75.0);
glEnd();
for
(i=0;i<6;i++) {
drawOneLine(50.0 + ((GLfloat) i
* 50.0),
50.0, 50.0
+ ((GLfloat) (i+1) * 50.0), 50.0);
}
glLineStipple(5, 0x1C47);
drawOneLine(50.0, 25.0, 350.0, 25.0);
glDisable(GL_LINE_STIPPLE);
glFlush();
}
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(intargc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE
|GLUT_RGB);
glutInitWindowSize(400,150);
glutInitWindowPosition(100,100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
system("PAUSE");
return
EXIT_SUCCESS;
}
|
PRAKTIKUM 3
#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};
GLubyte
S[] = {
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF,
0xFF, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
0x00,
0x03, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
0xC0,
0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00,
0xC0,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,};
glClear
(GL_COLOR_BUFFER_BIT);
glColor3f
(1.0, 1.0, 1.0);
/* draw one solid, unstippled rectangle, */
/* then two stippled rectangles */
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);
*/
glPolygonStipple
(S);
glRectf
(125.0, 25.0, 225.0, 125.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
(350, 150);
glutCreateWindow
(argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
|
PRAKTIKUM 4
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <math.h>
void display (void)
{
glClearColor(1.0,1.0,1.0,0.0);
glMatrixMode (GL_PROJECTION);
gluOrtho2D(0.0,300.0,0.0,300.0);
}
void setPixel (GLint xCoordinate, GLint yCoordinate)
{
glBegin (GL_POINTS);
glVertex2i (xCoordinate, yCoordinate);
glEnd();
glFlush();
}
void lineBres (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);
}
}
void drawMyLine(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f (1.0,0.0,0.0);
glPointSize(4.0);
GLint x0 = 50;
GLint y0 = 50;
GLint xEnd = 125;
GLint yEnd = 100;
lineBres (x0, y0, xEnd, yEnd);
glColor3f (0.0,1.0,0.0);
glPointSize(4.0);
GLint x1 = 75;
GLint y1 = 50;
GLint x1End = 125;
GLint y1End = 150;
lineBres (x1, y1, x1End, y1End);
glColor3f (0.0,0.0,1.0);
glPointSize(4.0);
GLint x2 = 50;
GLint y2 = 50;
GLint x2End = 75;
GLint y2End = 50;
lineBres (x2, y2, x2End, y2End);
}
int main (int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE |
GLUT_RGB);
glutInitWindowSize (400,400);
glutInitWindowPosition (0,0);
glutCreateWindow ("Digital Differential Analyzer Algorithm");
display();
glutDisplayFunc (drawMyLine);
glutMainLoop();
return
0;
}
|
PRAKTIKUM 5
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include<math.h>
using namespace std;
typedef unsigned char uchar;
// number of line segments
static int num_lines = 20;
static int num_liness = 3;
// callback prototypes
void disp(void);
void keyb(uchar k, int x, int y);
void reshape(int x, int y);
// main
int main(int argc, char **argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGBA |
GLUT_DOUBLE);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("circle.cpp");
glClearColor(0.0,0.0,0.0,0.0);
glutDisplayFunc(disp);
glutKeyboardFunc(keyb);
glutReshapeFunc(reshape);
glutMainLoop();
return 0; }
// disp
void disp(void){
double
angle;
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
glColor3f(1.0,1.0,0.0);
for(int i =0;i<num_lines;i++)
{
angle = i*2*3.14/num_lines;
glVertex2f(cos(angle),sin(angle));
}
glEnd();
// glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
glColor3f(0.0,0.0,1.0);
for(int i =0;i<3;i++)
{
angle = i*2*3.14/3;
glVertex2f(cos(angle),sin(angle));
}
glEnd();
glBegin(GL_LINE_LOOP);
for(int i =0;i<num_lines;i++){
glColor3f(0.0,1.0,0.0);
angle = i*2*3.14/num_lines;
glVertex2f(cos(angle)/2,sin(angle)/2);
}
glEnd();
glBegin(GL_LINE_LOOP);
for(int i =0;i<4;i++){
glColor3f(1.0,0.0,0.0);
angle = i*2*3.14/4;
glVertex2f(cos(angle)/4,sin(angle)/4);
}
glEnd();
glBegin(GL_LINE_LOOP);
for(int i =0;i<num_lines;i++){
glColor3f(1.0,0.1,0.0);
angle = i*2*3.14/num_lines;
glVertex2f(cos(angle)/4,sin(angle)/4);
}
glEnd();
glutSwapBuffers();
}
// keyb
void keyb(uchar k, int x, int y){
switch (k){
case 'q':
exit(0);
break;
case '+':
if(num_lines
< 99){
num_lines++;
cout << "Circle
consists of " << num_lines << " lines " << endl;
glutPostRedisplay();
}
break;
case '-':
if(num_lines >3){
num_lines--;
cout << "Circle
consists of " << num_lines << " lines " << endl;
glutPostRedisplay();
}
break; } }
// reshape
void reshape(int x,int y){
if(x<y)
glViewport(0,(y-x)/2,x,x);
else
glViewport((x-y)/2,0,y,y); }
|
PRAKTIKUM 6
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <glu.h>
#include <iostream>
float _angle = 45.0f; //sudut saat melakukan rotasi
//Draws the 3D scene
void mydisplay() //bentuk objek berupa kotak
{
glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);//Switch to setting
glLoadIdentity();//Reset the camera
glPushMatrix();//Save
the transformations
//glTranslatef(0.0f, 0.0f, 0.0f); //mentraslasikan kotak geser sesuai
koor
//glScalef(0.7f, 0.7f, 0.7f); //merubah ukuran dari objek kotak
glRotatef(_angle, 0.0f, 0.0f, 1.0f); //diputar
sebesar angle
//bentuk
kotak
glBegin(GL_POLYGON);
glVertex3f(-0.1f, -0.1f,0.0f);
glVertex3f(-0.1f, 0.1f,0.0f);
glVertex3f(0.1f, 0.1f,0.0f);
glVertex3f(0.1f, -0.1f,0.0f);
glEnd();
//glPopMatrix();//Undo
the move to the center of
glPushMatrix();//Save the transformations
glTranslatef(0.0f, 0.4f, 0.0f); //mentraslasikan
kotak geser sesuai koor
glScalef(0.6f, 0.6f, 0.6f);
//merubah ukuran dari objek kotak
glRotatef(_angle, 0.0f, 0.0f, -1.0f); //diputar
sebesar angle
//bentuk
kotak
glBegin(GL_POLYGON);
glVertex3f(-0.1f, -0.1f,0.0f);
glVertex3f(-0.1f, 0.1f,0.0f);
glVertex3f(0.1f, 0.1f,0.0f);
glVertex3f(0.1f, -0.1f,0.0f);
glEnd();
//glPopMatrix();//Undo
the move to the center of
glTranslatef(0.0f, 0.6f, 0.0f); //mentraslasikan
kotak geser sesuai koor
glScalef(0.5f, 0.5f, 0.5f);
//merubah ukuran dari objek kotak
glRotatef(_angle, 0.0f, 0.0f, -1.0f); //diputar
sebesar angle
glPushMatrix();//Save the transformations
//bentuk
kotak
glBegin(GL_POLYGON);
glVertex3f(-0.1f, -0.1f,0.0f);
glVertex3f(-0.1f, 0.1f,0.0f);
glVertex3f(0.1f, 0.1f,0.0f);
glVertex3f(0.1f, -0.1f,0.0f);
glEnd();
glPopMatrix();//Undo
the move to the center of
glutSwapBuffers();//Send the 3D scene to the
glFlush();
}
void update(int value) { //bantuan dari glrotate
_angle += 9.0f;
if
(_angle > 360) {
_angle -= 360;
}
glutPostRedisplay();
glutTimerFunc(35, update, 0);//25:ukuran milisecond
}
int main(int argc, char** argv)
{
glutInitWindowSize(400,
400);
printf("Contoh Sederhana Kotak ");
glutCreateWindow("Praktikum06");
glutDisplayFunc(mydisplay);
glutTimerFunc(35,
update, 0);
glutMainLoop();
return 0;
}
|
PRAKTIKUM 7
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdarg.h>
#include<glut.h>
#include<glu.h>
void init(void)
{
glClearColor
(0.0, 0.0, 0.0, 0.0);
glShadeModel
(GL_FLAT);
}
void display(void)
{
glClear
(GL_COLOR_BUFFER_BIT);
glColor3f
(1.0, 1.0, 1.0);
glLoadIdentity ();/* clear the matrix */
/* viewing transformation */
gluLookAt (0.5, 2.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0,
0.0);
glScalef
(1.0, 1.0, 1.0); /* modeling
transformation 1*/
glutWireCube(0.5);
glTranslatef(-1.0,0.0,0.0);
/* modeling transformation 2*/
glutWireCube(0.5);
glTranslatef(2.0,0.0,0.0);
/* modeling transformation 3*/
glutWireCube(0.5);
/* modeling transformation */
glTranslatef(0.0,0.0,1.0);
glutWireCube(0.5);
glTranslatef(-2.0,0.0,0.0);
/* modeling transformation */
glutWireCube(0.5);
glTranslatef(1.0,0.0,0.0);
/* modeling transformation */
glutWireCube(0.5);
glColor3f(0.0,0.0,1.0);
glTranslatef(0.5,0.5,-0.5);
/* modeling transformation */
glutWireCube(0.5);
glColor3f(1.0,0.0,0.0);
glTranslatef(-1.0,0.0,0.0);
/* modeling transformation */
glutWireCube(0.5);
glColor3f(1.0,1.0,1.0);
glTranslatef(0.5,0.5,0.0);
/* modeling transformation */
glutWireCube(0.5);
glFlush ();
}
void reshape (int w, int h)
{
glViewport
(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode
(GL_PROJECTION);
glLoadIdentity ();
glFrustum
(-1.0, 1.0, -1.0, 1.0, 2.0, 20.0);
glMatrixMode
(GL_MODELVIEW);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500, 500);
//glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
|
PRAKTIKUM 8
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <glu.h>
float _angle = 45.0f;
void initRendering() {
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glShadeModel(GL_SMOOTH);
}
void handleResize(int w, int h) {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (double)w / (double)h,7.0,
100.0); //sdt pandang
glMatrixMode (GL_MODELVIEW);
}
void drawScene() {
glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -8.0f);//pindah posisi xyz
GLfloat ambientColor[] = {0.0f, 0.0f,
0.0f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,
ambientColor);
GLfloat lightColor0[] = {0.0f, 1.0f,
1.0f, 2.0f};
GLfloat lightPos0[] = {3.0f, 10.0f,
2.0f, 4.0f}; //
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor0);
glLightfv(GL_LIGHT0, GL_POSITION,
lightPos0);
gluLookAt (2.0, 4.0, 5.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0);
//glScalef
(2.0, 2.0, 2.0);
glTranslatef(0.0, 0.0,0.0);
glutSolidCube(1.0);
//
glTranslatef(1.0f, 0.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor1[] = {0.0f, 1.0f,
1.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor1);
glutSolidCube(1.0);
glTranslatef(1.0f, 0.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor2[] = {0.0f, 1.0f,
1.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor2);
glutSolidCube(1.0);
//
glTranslatef(0.0f, -1.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor3[] = {1.0f, 1.0f,
0.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor3);
glutSolidCube(1.0);
glTranslatef(0.0f, -1.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor4[] = {1.0f, 1.0f,
0.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor4);
glutSolidCube(1.0);
glTranslatef(0.0f, -1.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor5[] = {1.0f, 1.0f,
0.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor5);
glutSolidCube(1.0);
glTranslatef(-2.0f, 0.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor6[] = {0.0f, 0.0f,
2.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor6);
glutSolidCube(1.0);
glTranslatef(-1.0f, 0.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor7[] = {0.0f, 0.0f,
2.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor7);
glutSolidCube(1.0);
glTranslatef(-1.0f, 0.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor8[] = {0.0f, 0.0f,
2.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor8);
glutSolidCube(1.0);
glTranslatef(0.0f, 1.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor9[] = {0.0f, 1.0f,
0.0f, 0.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor9);
glutSolidCube(1.0);
glTranslatef(0.0f, 1.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor10[] = {0.0f, 1.0f,
0.0f, 0.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor10);
glutSolidCube(1.0);
glTranslatef(0.0f, 1.0f, 0.0f);//pindah posisi xyz
GLfloat lightColor11[] = {0.0f, 1.0f,
0.0f, 0.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor11);
glutSolidCube(1.0);
glTranslatef(0.0f, 2.0f, 0.0f);//pindah posisi xyz
glRotatef(_angle,
0.0f, 1.0f, 0.0f);
GLfloat lightColor12[] = {1.0f, 0.0f,
0.0f, 2.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor12);
glutSolidCube(1.0);
glFlush ();
glEnd();
glutSwapBuffers();
}
void update(int value) {
_angle += 9.0f;
if
(_angle > 360) {
_angle -= 360;
}
glutPostRedisplay();
glutTimerFunc(25, update, 0);
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |
GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400, 400);
glutCreateWindow("praktikum_8");
initRendering();
glutDisplayFunc(drawScene);
glutReshapeFunc(handleResize);
glutTimerFunc(25,
update, 0);
glutMainLoop();
return
0;
}
|
PRAKTIKUM 9
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <glu.h>
void initRendering() {
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_NORMALIZE);
glShadeModel(GL_SMOOTH);
}
void handleResize(int w, int h) {
glViewport(0,
0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0,
(double)w / (double)h,
1.0, 200.0);
}
float _angle = 60.0f;
void drawScene() {
glClear(GL_COLOR_BUFFER_BIT
| GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f,
0.0f, -8.0f);
GLfloat
ambientColor[] = {0.2f, 0.2f, 0.2f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,
ambientColor);
GLfloat
lightColor0[] = {0.5f, 0.5f, 0.5f, 1.0f};
GLfloat
lightPos0[] = {4.0f, 0.0f, 8.0f, 1.0f};
glLightfv(GL_LIGHT0,
GL_DIFFUSE, lightColor0);
glLightfv(GL_LIGHT0,
GL_POSITION, lightPos0);
//radius
GLfloat
lightColor1[] = {0.5f, 0.2f, 0.2f, 1.0f};
GLfloat
lightPos1[] = {-1.0f, 0.5f, 0.5f, 0.0f};
glLightfv(GL_LIGHT1,
GL_DIFFUSE, lightColor1);
glLightfv(GL_LIGHT1,
GL_POSITION, lightPos1);
glRotatef(_angle,
1.5f, 1.0f, 2.0f);
glBegin(GL_QUADS);
glColor3f(0.0f,
1.0f, 0.0f); //green
glVertex3f(0, 3, 0);
glVertex3f(1,
0, -1);
glVertex3f(1,
0, 1);
glVertex3f(0,
3, 0);
glColor3f(0.0f,
0.0f, 1.0f); //blue
glVertex3f(0, 3, 0);
glVertex3f(1,
0, 1);
glVertex3f(-1,
0, 1);
glVertex3f(0,
3, 0);
glColor3f(1.0f,
0.0f, 0.0f); //red
glVertex3f(0, 3, 0);
glVertex3f(1,
0, -1);
glVertex3f(-1,
0, -1);
glVertex3f(0,
3, 0);
glColor3f(1.0f,
1.0f, 0.0f); //yellow
glVertex3f(0, 3, 0);
glVertex3f(-1,
0, -1);
glVertex3f(-1,
0, 1);
glVertex3f(0,
3, 0);
glColor3f(1.0f,
1.0f, 1.0f); //alas
glVertex3f(-1, 0, -1);
glVertex3f(-1,
0, 1);
glVertex3f(1,
0, 1);
glVertex3f(1,
0, -1);
glEnd();
glutSwapBuffers();
}
void update(int value) {
_angle +=
1.5f;
if (_angle > 360) {
_angle -=
360;
}
glutPostRedisplay();
glutTimerFunc(25,
update, 0);
}
int main(int argc, char** argv) {
glutInit(&argc,
argv);
glutInitDisplayMode(GLUT_DOUBLE
| GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400,
400);
glutCreateWindow("Lighting - videotutorialsrock.com");
initRendering();
glutDisplayFunc(drawScene);
glutReshapeFunc(handleResize);
glutTimerFunc(25,
update, 0);
glutMainLoop();
return 0;
}
|
PRAKTIKUM 10
main
#include <windows.h>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>
#include <glu.h>
#include "imageloader.h"
using namespace std;
Image::Image(char* ps, int w, int h) : pixels(ps), width(w), height(h) {
}
Image::~Image()
{
delete[]
pixels;
}
namespace {
//Converts a
four-character array to an integer, using little-endian form
int
toInt(const char*
bytes) {
return
(int)(((unsigned
char)bytes[3] << 24) |
((unsigned char)bytes[2] << 16) |
((unsigned char)bytes[1] << 8) |
(unsigned char)bytes[0]);
}
//Converts a
two-character array to a short, using little-endian form
short
toShort(const char*
bytes) {
return
(short)(((unsigned
char)bytes[1] << 8) |
(unsigned char)bytes[0]);
}
//Reads the
next four bytes as an integer, using little-endian form
int
readInt(ifstream &input) {
char
buffer[4];
input.read(buffer, 4);
return
toInt(buffer);
}
//Reads the
next two bytes as a short, using little-endian form
short
readShort(ifstream &input) {
char
buffer[2];
input.read(buffer, 2);
return
toShort(buffer);
}
//Just like
auto_ptr, but for arrays
template<class T>
class
auto_array {
private:
T* array;
mutable
bool isReleased;
public:
explicit
auto_array(T* array_ = NULL) :
array(array_), isReleased(false)
{
}
auto_array(const auto_array<T> &aarray) {
array = aarray.array;
isReleased =
aarray.isReleased;
aarray.isReleased =
true;
}
~auto_array() {
if (!isReleased && array
!= NULL) {
delete[] array;
}
}
T* get() const {
return array;
}
T &operator*() const {
return *array;
}
void
operator=(const
auto_array<T> &aarray) {
if (!isReleased && array
!= NULL) {
delete[] array;
}
array = aarray.array;
isReleased =
aarray.isReleased;
aarray.isReleased =
true;
}
T* operator->() const
{
return array;
}
T* release() {
isReleased = true;
return array;
}
void
reset(T* array_ = NULL) {
if (!isReleased && array
!= NULL) {
delete[] array;
}
array = array_;
}
T* operator+(int i) {
return array + i;
}
T &operator[](int i) {
return array[i];
}
};
}
Image*
loadBMP(const char*
filename) {
ifstream input;
input.open(filename, ifstream::binary);
assert(!input.fail() || !"Could not find file");
char
buffer[2];
input.read(buffer, 2);
assert(buffer[0] == 'B' && buffer[1] == 'M' || !"Not a
bitmap file");
input.ignore(8);
int
dataOffset = readInt(input);
//Read the
header
int
headerSize = readInt(input);
int
width;
int
height;
switch(headerSize)
{
case
40:
//V3
width = readInt(input);
height = readInt(input);
input.ignore(2);
assert(readShort(input)
== 24 || !"Image is not 24 bits per
pixel");
assert(readShort(input)
== 0 || !"Image is compressed");
break;
case
12:
//OS/2
V1
width = readShort(input);
height =
readShort(input);
input.ignore(2);
assert(readShort(input)
== 24 || !"Image is not 24 bits per
pixel");
break;
case
64:
//OS/2
V2
assert(!"Can't load OS/2 V2 bitmaps");
break;
case
108:
//Windows
V4
assert(!"Can't load Windows V4 bitmaps");
break;
case
124:
//Windows
V5
assert(!"Can't load Windows V5 bitmaps");
break;
default:
assert(!"Unknown bitmap format");
}
//Read the
data
int
bytesPerRow = ((width * 3 + 3) / 4) * 4 - (width * 3 % 4);
int
size = bytesPerRow * height;
auto_array<char>
pixels(new char[size]);
input.seekg(dataOffset, ios_base::beg);
input.read(pixels.get(), size);
//Get the
data into the right format
auto_array<char>
pixels2(new char[width
* height * 3]);
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
for(int c = 0; c < 3; c++) {
pixels2[3 * (width
* y + x) + c] =
pixels[bytesPerRow
* y + 3 * x + (2 - c)];
}
}
}
input.close();
return new Image(pixels2.release(), width, height);
}
GLuint
loadTexture(Image* image) {
GLuint textureId;
glGenTextures(1, &textureId); //Make room for our texture
glBindTexture(GL_TEXTURE_2D,
textureId); //Tell OpenGL which texture to edit
//Map the
image to the texture
glTexImage2D(GL_TEXTURE_2D, //Always
GL_TEXTURE_2D
0, //0
for now
GL_RGB, //Format OpenGL uses for image
image->width, image->height, //Width and
height
0, //The border of the image
GL_RGB, //GL_RGB,
because pixels are stored in RGB format
GL_UNSIGNED_BYTE, //GL_UNSIGNED_BYTE,
because pixels are stored
//as
unsigned numbers
image->pixels); //The
actual pixel data
return
textureId; //Returns the id of the texture
}
GLuint
_textureId; //The id of the texture
void initRendering() {
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_NORMALIZE);
glShadeModel(GL_SMOOTH);
Image* image = loadBMP("mu.bmp");
_textureId = loadTexture(image);
delete
image;
}
void handleResize(int w, int h) {
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (double)w / (double)h,
1.0, 200.0);
}
float _angle = 60.0f;
void drawScene() {
glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -8.0f);
GLfloat ambientColor[] = {0.2f, 0.2f,
0.2f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,
ambientColor);
GLfloat lightColor0[] = {0.5f, 0.5f,
0.5f, 1.0f};
GLfloat lightPos0[] = {4.0f, 0.0f,
8.0f, 1.0f};
glLightfv(GL_LIGHT0, GL_DIFFUSE,
lightColor0);
glLightfv(GL_LIGHT0, GL_POSITION,
lightPos0);
//radius
GLfloat lightColor1[] = {0.5f, 0.2f,
0.2f, 1.0f};
GLfloat lightPos1[] = {-1.0f, 0.5f,
0.5f, 0.0f};
glLightfv(GL_LIGHT1, GL_DIFFUSE,
lightColor1);
glLightfv(GL_LIGHT1, GL_POSITION,
lightPos1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _textureId);
glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,
GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glRotatef(_angle, 0.0f, 1.0f, 0.0f);
glColor3f(1.0f, 1.0f, 0.0f);
//glScalef(1.0f,
1.5f, 1.0f);
glBegin(GL_QUADS);
//Front
glNormal3f(0.1f, 0.0f, 1.0f);
//glNormal3f(-1.0f,
0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.5f, -1.0f, 1.5f);
glNormal3f(1.0f, 0.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.5f, -1.0f, 1.5f);
glNormal3f(1.0f, 0.0f, 1.0f);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.5f, 1.0f, 1.5f);
glNormal3f(-1.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-1.5f, 1.0f, 1.5f);
//Right
glColor3f(0.0f, 1.0f, 2.0f);
glNormal3f(1.0f, 0.0f, 0.0f);
//glNormal3f(1.0f,
0.0f, -1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.5f, -1.0f, -1.5f);
glNormal3f(1.0f, 0.0f, -1.0f);
//glTexCoord2f(1.0f,
0.0f);
glVertex3f(1.5f, 1.0f, -1.5f);
glNormal3f(1.0f, 0.0f, 1.0f);
glVertex3f(1.5f, 1.0f, 1.5f);
//glTexCoord2f(1.0f,
1.0f);
glNormal3f(1.0f, 0.0f, 1.0f);
//glTexCoord2f(0.0f,
1.0f);
glVertex3f(1.5f, -1.0f, 1.5f);
//Back
glColor3f(0.0f, 1.0f, 1.0f);
glNormal3f(0.0f, 0.0f, -1.0f);
//glNormal3f(-1.0f,
0.0f, -1.0f);
glVertex3f(-1.5f, -1.0f, -1.5f);
glNormal3f(-1.0f, 0.0f, -1.0f);
glVertex3f(-1.5f, 1.0f, -1.5f);
glNormal3f(1.0f, 0.0f, -1.0f);
glVertex3f(1.5f, 1.0f, -1.5f);
glNormal3f(1.0f, 0.0f, -1.0f);
glVertex3f(1.5f, -1.0f, -1.5f);
//Left
glColor3f(1.0f, 1.0f, 1.0f);
glNormal3f(-1.0f, 0.0f, 0.0f);
//glNormal3f(-1.0f,
0.0f, -1.0f);
glVertex3f(-1.5f, -1.0f, -1.5f);
glNormal3f(-1.0f, 0.0f, 1.0f);
glVertex3f(-1.5f, -1.0f, 1.5f);
glNormal3f(-1.0f, 0.0f, 1.0f);
glVertex3f(-1.5f, 1.0f, 1.5f);
glNormal3f(-1.0f, 0.0f, -1.0f);
glVertex3f(-1.5f, 1.0f, -1.5f);
glEnd();
glDisable(GL_TEXTURE_2D);
glutSwapBuffers();
}
void update(int value) {
_angle += 1.5f;
if
(_angle > 360) {
_angle -= 360;
}
glutPostRedisplay();
glutTimerFunc(25, update, 0);
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |
GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400, 400);
glutCreateWindow("Lighting");
initRendering();
glutDisplayFunc(drawScene);
glutReshapeFunc(handleResize);
glutTimerFunc(25, update, 0);
glutMainLoop();
return
0;
}
|
header
#ifndef IMAGE_LOADER_H_INCLUDED
#define IMAGE_LOADER_H_INCLUDED
//Represents an image
class Image {
public:
Image(char*
ps, int w, int
h);
~Image();
/* An
array of the form (R1, G1, B1, R2, G2, B2, ...) indicating the
* color of each pixel in image. Color components range from 0 to 255.
* The array starts the bottom-left pixel,
then moves right to the end
* of the row, then moves up to the next
column, and so on. This is the
* format in which OpenGL likes images.
*/
char*
pixels;
int
width;
int
height;
};
//Reads a bitmap image from file.
Image*
loadBMP(const char*
filename);
#endif
|
Langganan:
Komentar (Atom)
"bayuaji-master.blogspot.com". Diberdayakan oleh Blogger.












