Changes between Version 8 and Version 9 of lab-intro


Ignore:
Timestamp:
Feb 24, 2009, 8:00:31 PM (15 years ago)
Author:
msitar
Comment:

Dopolnjena poglavja Makefile in OpenGL primer

Legend:

Unmodified
Added
Removed
Modified
  • lab-intro

    v8 v9  
    2626Po namestitvi lahko preostale datoteke v začasnem imeniku pobrišemo.
    2727
    28 Če nam iz kakršnihkoli razlogov ne uspe namestiti navideznega računalnika z dvoklikom na '''namesti''', lahko to storimo tako, da v programu Virtualbox ustvarimo nov navidezni računalnik, za katerega nastavimo {{{vaje.vdi}}} kot ''Hard disk''. Navidezni računalnik nato zaženemo s klikom na ikono ''Start''.
     28Če nam iz kakršnihkoli razlogov ne uspe namestiti navideznega računalnika z dvoklikom na '''namesti''', lahko to storimo tako, da v programu Virtualbox ustvarimo nov navidezni računalnik, za katerega nastavimo {{{vaje.vdi}}} kot ''Hard disk''. Navidezni računalnik nato zaženemo s klikom na ikono ''Start'', kot kaže slika 1.
     29
     30[[Image(VirtualBox.PNG)]]
     31
     32Slika 1: Virtual Box
    2933
    3034Datoteke za namestitev si lahko v laboratoriju tudi zapišemo na ključek USB.
     
    5660}}}
    5761
    58 Primer prikazuje prevajanje izvorne kode ''hello.c'' in ''readbel.c''. Primer enostavnega programa, kjer je izvorna koda zapisana v eni sami datoteki, prikazuje program ''hello''. Pri ''readbel'' pa se izvorna koda nanaša še na ''lupack'' datoteke.
    59 
    60 Pri tem je zelo pomembno, da drugo vrstico posameznega "cilja" vedno začnemo s tabulatorjem in ne s presledki! Komentarje v Makefile pa pišemo z znakom #, kot je razvidno iz primera.
     62Primer prikazuje prevajanje izvorne kode ''hello.c'' in ''readbel.c''. Primer enostavnega programa, kjer je izvorna koda zapisana v eni sami datoteki, prikazuje program ''hello''. Pri ''readbel'' pa se izvorna koda nanaša še na ''lupack'' datoteke. Ko prevedemo kode, se ustvarijo datoteke programov. V našem primeru gre to za datoteko ''hello'' in ''readbel''.
     63
     64Pri tem je zelo pomembno, da drugo vrstico posameznega "cilja" vedno začnemo s tabulatorjem in ne s presledki! Komentarje v ''Makefile'' pa pišemo z znakom #, kot je razvidno iz primera.
    6165
    6266[[BR]]
     
    177181 1. Program zaženemo s pomočjo terminalskega okna z ukazom {{{./a.out}}} .   
    178182
    179 Več o osnovah programiranja s programskim jezikom c si lahko ogledamo pod ''c-intro'' na naslednji povezavi [http://www.lecad.uni-lj.si:8000/vaje/wiki/c-intro?version=8 c-intro].
     183Več o osnovah programiranja s programskim jezikom c si lahko ogledamo pod ''Uvod v programski jezik C'' na naslednji povezavi [http://www.lecad.uni-lj.si:8000/vaje/wiki/c-intro?version=8 c-intro].
    180184
    181185[[BR]]
     
    183187== OpenGL primer ==
    184188
    185 Primer minimalnega programa, ki izriše črto:
     189[[Image(Trikotnik.png)]]
     190
     191Slika 2: Trikotnik s prelivajočimi barvami
     192
     193Primer programa, ki nam izriše trikotnik, kot kaže slika 2:
    186194{{{
    187195#!c
     
    191199{
    192200  glClear(GL_COLOR_BUFFER_BIT);
    193   glColor3f(1.0, 0.4, 1.0);
    194   glBegin(GL_LINES);
    195   glVertex2f(0.1, 0.1);
    196   glVertex3f(0.8, 0.8, 1.0);
     201  glBegin(GL_TRIANGLES);
     202  glColor3f(1.0, 0.0, 0.0);
     203  glVertex2f(-1.0, -1.0);
     204  glColor3f(0.0, 1.0, 0.0);
     205  glVertex2f(0.0, 1.0);
     206  glColor3f(0.0, 0.0, 1.0);
     207  glVertex2f(1.0, 0.0);
    197208  glEnd();
    198   glFlush();
     209  glFlush(); 
    199210}
    200211
     
    203214  glutInit(&argc,argv);
    204215  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    205   glutCreateWindow("C GLUT program");
     216  glutCreateWindow("Trikotnik");
    206217  glutDisplayFunc(display);
    207218  glutMainLoop();
     
    210221}}}
    211222
    212 Za prevod te kode uporabimo ukaz {{{cc minimalni_program.c -lglut}}} , kjer z ''lglut'' povemo, da imamo vključeno knjižnico ''glut''.
    213 
    214 
     223Za prevod te kode uporabimo ukaz {{{cc ime_programa.c -lglut}}} , kjer z ''lglut'' povemo, da imamo vključeno knjižnico ''glut''.
     224
     225Pri tem opazimo, da moramo za grafični izris nekoliko dopolniti funkcijo ''main'' in sicer z argumentoma ''argc'' in ''argv''. Poleg tega moramo klicati še naslednje funkcije:
     226
     227 - ''glutInit(&argc,argv)''
     228 
     229 - ''glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)'' - S tem definiramo, da program dela samo v eni ravnini (SINGLE), poleg tega pa definiramo še barve red, green in blue. Poznamo še DOUBLE, kjer dela program v dveh ravninah (program izrisuje na spodnjo ravnino, ko vse izriše, poda rezultat na zgornjo ravnino, ki jo vidi uporabnik).
     230
     231 - ''glutCreateWindow("C GLUT program")''
     232
     233 - ''glutDisplayFunc(display)'' - Kličemo podprogram ''display'', v katerem imamo definirano, kaj naj program pravzaprav izriše.
     234
     235 - ''glutMainLoop()'' - Predstavlja zanko, ki ponavlja vse funkcije v ''main''. Zanko prekinemo šele, ko zapremo okno.
     236
     237Več o OpenGL si lahko preberemo pod ''Računalniška grafika z OpenGL'' na povezavi [http://www.lecad.uni-lj.si:8000/vaje/wiki/opengl-intro?version=23 opengl-intro].