Changes between Version 56 and Version 57 of naloge


Ignore:
Timestamp:
Nov 30, 2008, 2:51:38 PM (15 years ago)
Author:
Leon Kos
Comment:

130-134

Legend:

Unmodified
Added
Removed
Modified
  • naloge

    v56 v57  
    912912Kakšna je lastnost take spremembe okna? Začetno okno izrišite v velikosti 500x300.
    913913
     914
     915== vaja130 ==
     916
     917Izrišite trikotnik s prelivanjem osnovnih barv v vozliščih. Za osnovo naj vam bo naslednji fortranski program:
     918
     919{{{
     920#!f
     921subroutine display
     922implicit none
     923include ’GL/fgl.h’
     924call fglClear(GL_COLOR_BUFFER_BIT)
     925call fglBegin(GL_TRIANGLES)
     926call fglColor3f(1.0, 0.0, 0.0)
     927call fglVertex2f(-1.0, -1.0)
     928call fglColor3f(0.0, 1.0, 0.0)
     929call fglVertex2f(0.0, 1.0)
     930call fglColor3f(0.0, 0.0, 1.0)
     931call fglVertex2f(1.0, 0.0)
     932call fglEnd
     933call fglFlush
     934end
     935}}}
     936
     937
     938== vaja131 ==
     939Izrišite kocko v prostoru tako, da uporabite podprogram, ki izrisuje kvadrate različnih barv
     940s funkcijo
     941{{{
     942#!c
     943void glRectf( GLfloat x1, GLfloat y1, GLfloat x2,  GLfloat y2 );
     944}}}
     945Funkcija glRectf riše v ravnini z=0. Z uporabo matričnih transformacij pa lahko rišemo
     946v poljubni ravini.
     947Za osnovo naj vam bo naslednji fortarnski program:
     948{{{
     949#!f
     950subroutine kvadrat(i)
     951real r(6), g(6), b(6)
     952data r /1,0,0,1,1,1/, g /0,1,0,1,0,0/
     953data b /0,0,1,0,1,1/
     954call fglPushMatrix
     955call fglColor3f(r(i), g(i), b(i))
     956call fglTranslatef(0.0, 0.0, 1.0)
     957call fglRectf(-1.0, -1.0, 1.0, 1.0)
     958call fglPopMatrix
     959end
     960subroutine display
     961implicit none
     962include ’GL/fgl.h’
     963call fglClear(GL_COLOR_BUFFER_BIT+GL_DEPTH_BUFFER_BIT)
     964call fglPushMatrix
     965call fglRotatef(30.0, 1.0, 0.0, 0.0)
     966call fglRotatef(30.0, 0.0, 1.0, 0.0)
     967call fglScalef(0.5, 0.5, 0.5)
     968call kvadrat(1)
     969call fglRotatef(90.0, 0.0, 1.0, 0.0)
     970call kvadrat(2)
     971call fglRotatef(90.0, 0.0, 1.0, 0.0)
     972call kvadrat(3)
     973call fglRotatef(90.0, 0.0, 1.0, 0.0)
     974call kvadrat(4)
     975call fglRotatef(90.0, 1.0, 0.0, 0.0)
     976call kvadrat(5)
     977call fglRotatef(180.0, 1.0, 0.0, 0.0)
     978call kvadrat(6)
     979call fglPopMatrix
     980call fglFlush
     981end
     982}}}
     983
     984Pri izbiri okna morate vklopiti globinski pomnilnik z
     985{{{
     986#!c
     987glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGB);
     988glEnable(GL DEPTH TEST);
     989}}}
     990
     991
     992== vaja132 ==
     993Tako kot v nalogi 130 izrišite prelivajoč se trikotnik s tem da prijavite še
     994naslednjo funkcijo pri izrisu okna velikosti 500x300:
     995{{{
     996#!c
     997void reshape (intw, inth) {
     998glViewport(0, 0, w, h);
     999glMatrixMode(GL_PROJECTION);
     1000glLoadIdentity();
     1001gluOrtho2D (0.0, w, 0.0, h);
     1002}
     1003}}}
     1004
     1005
     1006== vaja133 ==
     1007Izrišite naslednji mnogokotnik v oknu velikosti 300x300 tako, da bo z leve in desne
     1008strani okoli 20% praznega prostora. Če želite ga lahko tudi pobarvate.
     1009{{{
     1010#!c
     1011glBegin(GL_POLYGON);
     1012glVertex2f(0.0, 0.0);
     1013glVertex2f(0.0, 3.0);
     1014glVertex2f(4.0, 3.0);
     1015glVertex2f(6.0, 1.5);
     1016glVertex2f(4.0, 0.0);
     1017glEnd();
     1018}}}
     1019
     1020== vaja134 ==
     1021
     1022Kocko iz vaje 124 rišite z gladkimi črtami debeline 1.5, za kar uporabite naslednja
     1023ukaza v glavnem programu:
     1024{{{
     1025#!c
     1026glEnable(GL_LINE_SMOOTH);
     1027glLineWidth(1.5);
     1028}}}
     1029