Leksjon 3: Lys og materialer

Størrelse: px
Begynne med side:

Download "Leksjon 3: Lys og materialer"

Transkript

1 Lineær algebra med grafiske anvendelser Leksjon 3: Lys og materialer Innledning side 2 Fjerning av skjulte flater side 2 Lystyper og tilhørende materialrespons side 3 Bakgrunnslys( Ambient light) side 4 Retningsbestemt lys ( Diffuse light) side 5 Skinnede lys ( Specular light ) side 6 Utstrålt lys ( Emitted light ) side 7 Lysegenskaper På- av side 8 Posisjon side Svekking av lysstyrken side Spotlights side 16 Belysningsmodeller: Bakgrunnslys, flatesidespesifikasjon og refleksjonsberegninger side 16 Eksempler på OpenGL spesifikasjon av en lyskilder og et materiale side Flatenormaler side 20 V2008 Jan H. Nilsen 1Leksjon 1 Side 1

2 Fjerning av skjulte flater Den enkleste måten å fjerne skjulte flater på i OpenGL er å benytte dybdebufferet Et dybdebuffer assosierer en dybde eller avstand fra synsplanet (nærmeste klippeplan) til hver pixel i vinduet. Inisielt er det assosiert dybdeverdier til hver enkelt pixel, lik størst mulige avstand fra synsplanet (det fjerneste klippeplanet) Steg 1: public void init(){. gl.glenable(gl.gl_depth_test) // Gjøres en gang.. Steg 2: public void display() { gl.glclear(gl.gl_color_buffer_bit GL.GL_DEPTH_BUFFER _BIT) Steg 2 gjøres hver gang senen tegnes opp, dvs hver gang display() kalles. gl.glclear() sletter innholdet i både color- og depth bufferet. Leksjon 1, side 2

3 OpenGL-Lysmodellering OpenGL søker å modellere lys og belysning ved å anta at lys kan deles inn i røde, grønne og blå komponenter. Fargen på en lyskilde karakteriseres ved mengden rødt, grønt og blått lys som den sender ut. En flates (lys)-materialegenskaper karakteriseres ved den prosentandelen av det innfallende røde, grønne og blå lyset, som blir reflektert fra flaten i ulike retninger. I OpenGL-belysningsmodellering kan lyset i en sene komme fra flere lyskilder. Hver enkelt av disse lyskildene kan slås av eller på uavhengig av hverandre. I OpenGL lysmodeller, har en lyskilde bare effekt, dersom det finnes flater som kan absorbere og reflektere lys fra denne lyskilden. Hver enkelt flate kan antas å ha ulike lysmaterialegenskaper. I OpenGL antas belysningen å kunne bestå av fire ulike lystyper: Bakgrunnslys(ambient light) (retningsbestemt) diffust lys (diffuse light) direkte lysstråling (feks direkte sollys, specular light) lys utstrålt fra en (selvlysende)flate (emitted light) Leksjon 1, side 3

4 Lystyper: Bakgrunnslys (Ambient light) I OpenGL: Bakgrunnslys er lys som er så spredt og reflektert at det er umulig å angi noen retning på dette lyset. Bakgrunnslys som treffer en flate, reflekteres og spres likt i alle retninger. Bakgrunnslys gir en jevn/flat lyssetting av en flate. Verdien på bakgrunnslyset og flatematerialets respons på bakgrunnslys kan i OpenGL gies ved: R, G, B, alfa float [] lmodel_ambient = { 0.1f, 0.1f, 0.1f, 1.0f; // alfa [0,1] 1: ikke gjennomsiktig gl.glenable(gl.gl_lighting); Slå på lysberegninger gl.glenable(gl.gl_light0); Slå på lyskilde 0 Egenskaper til bakgrunnslyset: gl.gllightfv(gl.gl_light0, GL.GL_AMBIENT, lmodel_ambient); Flate- materialegenskaper: gl.glmaterial(surface side, GL.GL_AMBIENT, lmodel_ambient); // surface side: GL.GL_FRONT, GL.GL_BACK, GL.GL_FRONT_AND_BACK Belysningsmodell: gl.gllightmodelfv(gl.gl_light_model_ambient, lmodel_ambient); Leksjon 1, side 4

5 Lystyper: Diffust lys (Diffuse light) I OpenGL er diffust lys, lys som kommer fra en bestemt retning i rommet og som når det treffer en flate, blir reflektert like mye i alle retninger. Intensiteten/energien pr flateenhet på det tilbakereflekterte lyset fra en flate, Io, er proporsjonal med cos til vinkelen v mellom det innfallende lyset, eller den retningen flaten betraktes fra, og normalen til flaten, N, se figuren under. Totalt tilbakereflektert lysenergi fra et flatelement, Er, vil imidlertid, pga at størrelsen på flateelementet endrer seg med 1/cos v dersom det betraktes fra en retning som danner vinkelen v med flatenormalen, bli: Er(v) = Io * cos v *( da / cos v) = Io * da, dvs lik i alle retninger a b Figuren viser hvordan en lysstripe med bredde da treffe en flate. a: flaten står normalt på den innfallende lysstripen b: lysstripen danner vinkelen v med flatenormalen N. Leksjon 1, side 5

6 Lystyper:Diffust lys (Diffuse light) Diffust lys og flatematerialets respons på diffust lys kan i OpenGL gies ved: R G B alfa float [] light_diffuse = { 1.0F, 1.0F, 1.0F, 1.0F // default: hvitt lys gl.glenable(gl.gl_lighting); gl.glenable(gl.gl_light0); Egenskaper på det diffuse lyset: gl.gllightfv(gl.gl_light0, GL.GL_DIFFUSE, light_diffuse); Flate- materialegenskaper på det diffuse lyset: gl.glmaterialfv( GL.GL_FRONT, GL.GL_DIFFUSE, light_diffuse ); For virkelige objekter vil vanligvis bakgrunnslys og diffust lys gi samme farge på objektene. OpenGL tilbyr derfor muligheten for å sette samme verdier til materialegenskapene til disse to lystypene ved: float [] mat_amb_diff = { 0.1f, 0.5f, 0.8f, 1.0f ; // en dyp blå farge gl.glmaterialfv(gl.gl_front, GL.GL_AMBIENT_AND_DIFFUSE, mat_amb_diff); Leksjon 1, side 6

7 Lystyper: Direkte reflektert lysstråling (Specular light) 1 I OpenGL er direkte tilbakereflektert lysstråling, L, lys som kommer fra en lyskilde på et bestemt sted i rommet. Når dette lyset treffer en flate, blir det reflektert aller mest i den retningen, R, som tilsvarer en speilrefleksjon fra flaten. Se figuren under: N er flatenormalen, V er betraktningsretningen til observatøren. Intensiteten/energien pr flateenhet på det direkte tilbakereflekterte lyset fra en flate, er avhengig av vinkelen, b, mellom det direkte reflektertes lyset og betraktningsretningen. Beregningen av direkte tilbakespredt lys er i OpenGL avhengig av hvilken lysmodell som er valgt. ( Eks Phong: V(b) proporsjonal med (cos b) n ) Leksjon 1, side 7

8 Lystyper: Direkte reflektert lysstråling (Specular light) 2 Spesifikasjon av en lyskilde og materialegenskaper for direkte reflekterende lys i OpenGL: x y z w float [] light_position = {1.0f, 1.0f, 1.0f, 1.0f; R G B alfa float [] light_specular = { 1.0f, 1.0f, 1.0f, 1.0f; float [] mat_specular = { 1.0f, 1.0f, 1.0f, 1.0f; float [] mat_shininess = { 50.0; // VERDIER [ 0.0, 128.0] gl.glenable(gl.gl_lighting); gl.glenable(gl.gl_light0); gl.gllightfv( GL.GL_LIGHT0, GL.GL_POSITION, light_position); gl.gllightfv(gl.gl_light0, GL.GL_SPECULAR, light_specular); gl.glmaterialfv(gl.gl_front, GL.GL_SPECULAR, mat_specular);// spes. effekter //materialet. har på tilbakerefl. lys med GL.GL_SPECULAR gl.glmaterialfv(gl.gl_front, GL.GL_SHININESS, mat_shininess);// angir størrel. på den //skinnende lysflekken med verdier for GL.GL_SHININESS Leksjon 1, side 8

9 Lystyper: Selvlysende flater Selvlysende flater brukes i OpenGL til å simulere for eksempel lamper eller andre lyskilder. Disse flatene sender ikke selv ut lys. Kan betraktes som en materialegenskap til flaten. Flatene ser selvlysende ut. R G B alfa float [] mat_emission = { 0.3f, 0.2f, 0.2f, 0.0f; // gl.glmaterialfv(gl.gl_front, GL.GL_EMISSION, mat_emission ); Leksjon 1, side 9

10 Flatenormaler OpenGL metode-/kommandosyntaks Flatenormalen C i et punkt på en flate bestemmes som kryssproduktet mellom to ikke parallelle vektorer A og B som tangerer flaten i dette punktet (punkt). float[] A = { a1, a2, a3;, float [] B = { b1, b2, b3; float [] punkt = {x, y, z; C = A x B = det i a1 j a2 k a2 b3 a3 b2 a3 = a3 b1 a1 b3 b1 b2 b3 a1 b2 a2 b1 Eller normalen til vektorene A og B blir da gitt ved: C= {(a2b3 a3b2)i + (a3b1 a1b3)j + (a1b2 a2b1)k float [] C = {a2b3 a3b2, a3b1 a1b3, a1b2 a2b1; = { A[1]B[2] - A[2]B[1], A[2]B[0]-A[0]B[2], A[0]B[1]-A[1]B[0]; gl.glnormal3fv(c); gl.glvertex3fv(punkt); // Normalen C blir opprettet i punktet punkt Leksjon 1, side 10

11 A B = Flatenormaler I lysberegninger i OpenGL inngår beregninger av vinkler mellom vektorer ved skalarprodukter. A B cosv Vektorene må normaliseres før de brukes i OpenGL til å bestemme vinklene. Det gjelder også flatenormalene. Dette kan gjøres ved følgende metoder: public boolean normalize(float [] C){ float nc = (float)math.sqrt ( C[ 0] C[0] + C[1] C[1] + C[2] C[2] ); if (!(nc < && nc > )){ C[0] = C[0] / nc; C[1] = C[1] / nc; C[2] = C[2 ]/ nc; return true; else return false; En metode som returnerer et normalisert vektor-/kryssprodukt: public float [] normcrossprod( float[] A, float [] B){ float [] out = new float[3]; out[0] = A[1]*B[2] A[2] * B[1]; out[1] = A[2]*B[0]-A[0]*B[2]; out[2] = A[0]*B[2] A[1]*B[0]; normalize(out); return out; else return null; Vi kan unngå håndarbeidet med å normalisere vektorer ved å skru på automatisk normalisering: ved gl.glenable( GL.GL_NORMALIZE); og gl.glnormal3fv(out); Leksjon 1, side 11

12 Lysegenskaper Av og på En OpenGL-implementasjon kan ha mer enn 8 forskjellige lyskilder. De vi bruker må vi gi egenskaper. Etter at de er gitt egenskaper må vi skru dem på eller av. Det gjør vi ved: gl.glenable(gl.gl_ligthn) gl.gldisable(gl.gl_lightn) n: nummer på lyskilden For at OpenGL skal utføre lysberegninger må vi også kalle: gl.glenable(gl.gl_ligthing) slås av ved: gl.gldisable(gl.gl_ligthing) Posisjon En lyskilde kan ha en bestemt posisjon i rommet eller den kan ha en retning, som om lyset kommer uendelig langt borte fra. Posisjonen settes ved: float [] position = {xf, yf, zf, wf ; w = 0: Lyset har retning (x,y,z) w = 1:(x,y,z) er lysposisjon gl.gllightfv(gl.gl_light0, GL.GL_POSITION, position); Default-verdier er (0,0,-1,0), for lysposisjon, (0,0,-1) for lysretningen langs den neg. z-aksen. Leksjon 1, side 12

13 Lysegenskaper 2 Svekking av lys Intensiteten, I, på retningsbestemt lys som kommer fra en lyskilde i en gitt posisjon i rommet, I 0, kan i OpenGL svekkes ved en faktor f att : I = I 0 * f att d = avstanden til lyskilde c 1 = konstant svekningskoeffisient c 2 = lineær svekningskoeffisient c 3 = kvadratisk svekningskoeffisient Default-verdier er c 1 = 1, c 2 = c 3 =0. Verdiene på c 1, c 2 og c 3 kan gis ved: gl.gllightf(gl.gl_light0,gl.gl_constant_attenuation,c 1 ) gl.gllightf(gl.gl_light0,gl.gl_linear_attenuation,c 2 ) gl.gllightf(gl.gl_light0,gl.gl_quadratic_attenuation,c 3 ) Leksjon 1, side 13

14 Lysegenskaper 3 Spotlights Retningsbestem lys som kommer fra en lyskilde i en gitt posisjon i rommet, kan i OpenGL gis en avgrensning innenfor en kjegle med toppunkt i lyskilden. Vinkelen v mellom kjegleaksen og kjegleflaten kan i OpenGL gis ved; gl.gllightf(gl.gl_light0, GL.GL_SPOT_CUTOFF, v); v er mellom 0 og 90 grader. Default retning på kjegleaksen er nedover den negative z-aksen og med like stor spredning i alle retninger Retningen på spotlyset kan gis ved: float [] spotdir = { -1.0f, -1.0f, -1.0f gl.gllightfv(gl.gl_light0, GL.GL_SPOT_DIRECTION, spotdir); Variasjon i lysintensitet innfor kjeglen, e, kan gis ved: gl.gllightf(gl.gl_light0, GL.GL_SPOT_EXPONENT, e); Leksjon 1, side 14

15 Belysningsmodeller 1 OpenGL belysningsmodeller kan settes vha fire ulike komponenter: Intensiteten på det globale bakgrunnslyset: float [] lmodel_ambient = { 0.2, 0.2, 0.2, 1.0 ; gl.gllightmodelfv(gl.gl_light_model_ambient, lmodel_ambient); Betraktningspunktet er lokalt eller uendelig langt borte gl.gllightmodeli(gl.gl_light_model_local_viewer, GL.GL_TRUE); Lysberegningen skal gjøres forskjellig for fram og baksiden av en flate gl.gllightmodeli(gl.gl_light_model_two_side, GL.GL_TRUE); Fargen på den direkte reflekterte lysstrålingen skal separeres fra fargen på bakgrunnslys og diffust lys og anvendes etter texturoperasjoner gl.gllightmodeli(gl.gl_light_model_color_control,gl.gl_single_color); Leksjon 1, side 15

16 Belysningsmodeller 2 I OpenGL bestemmes fargen på en pixel som følge av belysning ved alle de fire lyskomponentene: Emittert lys (L e ), bakgrunnslys (L a ), retningsbestemt lys (L d ) og direkte reflektert lysstråling ( L s ). I tillegg, det generelle bakgrunnslyset som ikke refererer til noen spesiell lyskilde (L g ). Totalt får vi: summert opp over alle n lyskildene. Dette tilsvarer den beregningen som skal skje når OpenGL bestemmer verdien i et pixel. Vi må dessuten huske at vi får et tilsvarende uttrykk for hver fargekomponent. Vinkelberegningene, skalarproduktene, settes til 0 dersom vinkelen mellom de to berørte vektorene er større enn 180 grader. Spotlighteffekter inngår ikke i uttrykket ovenfor. Vektorene N, L, R og V blir indirekte bestemt ved at vi plasserer objekter, øyepunkt og lyskilder i rommet ved hjelp av de vanlige transformasjonene. Leksjon 1, side 16

17 Programeksempel: Roterende belyst kube 1 /** void init() Called just AFTER the GL-Context is created. */ public void init(glautodrawable gldrawable) { GL gl = gldrawable.getgl(); float width = (float)getsize().width; float height = (float)getsize().height; // prepare ligthsource float [] ambient = {0.4f,0.4f,0.4f,1.0f ; float [] diffuse = {1.0f,1.0f,1.0f,1.0f ; float [] position = {1.0f,1.0f,2.0f,0.0f ; float [] lmodel_ambient = {0.4f,0.4f,0.4f,1.0f ; gl.glenable(gl.gl_light0); gl.glenable(gl.gl_lighting); gl.glenable(gl.gl_normalize); gl.gllightfv(gl.gl_light0, GL.GL_AMBIENT, ambient); gl.gllightfv(gl.gl_light0, GL.GL_DIFFUSE, diffuse); gl.gllightfv(gl.gl_light0, GL.GL_POSITION, position); gl.glshademodel(gl.gl_smooth); //Enables Smooth Color Shading gl.glclearcolor(0.9f, 0.9f, 0.9f, 0.0f); //This Will Clear The Background Color To Light Grey gl.glcleardepth(1.0); //Enables Clearing Of The Depth Buffer gl.glenable(gl.gl_depth_test); //Enables Depth Testing gl.glenableclientstate(gl.gl_color_array); // Enables color arrays gl.glenableclientstate(gl.gl_vertex_array); // Enables vertex arrays gl.glenableclientstate(gl.gl_normal_array); // Enables normal arrays gl.gldepthfunc(gl.gl_lequal); //The Type Of Depth Test To Do gl.glhint(gl.gl_perspective_correction_hint, GL.GL_NICEST); // Really Nice Perspective Calculations Leksjon 1, side 17

18 Programeksempel: Roterende belyst kube 2 // VertexArray of the 8 Vertexes on the cube. static float [][] hp = {{-1f,-1f,1f, {-1f,1f,1f, {1f,1f,1f, {1f,-1f,1f, {-1f,-1f,-1f, {-1f,1f,-1f, {1f,1f,-1f, {1f,-1f,-1f; // ColorArray, one color for each side of the cube static float [][] colors= {{1.0f, 0.0f, 0.0f, {0.0f, 1.0f, 1.0f, {1.0f, 1.0f, 0.0f, {0.0f, 1.0f, 0.0f, {0.0f, 0.0f, -1.0f, {1.0f, 0.0f, 1.0f; // NormalArray for one side of the cube float [] norm = new float[3]; public boolean normalize(float [] C){ // Normalizes a vector C float nc = (float)(math.sqrt( C[0]* C[0] + C[1]* C[1] + C[2]* C[2])); if (!(nc < f nc > f)){ C[0] = C[0] / nc; C[1] = C[1] / nc; C[2] = C[2 ]/ nc; return true; else return false; public float [] normcrossprod( float[] A, float [] B){ // Calculates the cross-product of two vectors A and B // and normalize the result vector out ( surface normal ) float [] out = new float[3]; out[0] = A[1]*B[2] - A[2] * B[1]; out[1] = A[2]*B[0]-A[0]*B[2]; out[2] = A[0]*B[2] - A[1]*B[0]; if (normalize( out)) return out; else return null; Leksjon 1, side 18

19 Programeksempel: Roterende belyst kube 3 // Draw a polygonside between the points a,b,c og d on the cube public void polygon( int a, int b, int c, int d) { //static float [][] hp = {{-1f,-1f,1f, {-1f,1f,1f, {1f,1f,1f, {1f,-1f,1f, {-1f,-1f,-1f, {-1f,1f,-1f, {1f,1f,-1f, {1f,-1f,-1f; float [] v1 = { hp[b][0]-hp[a][0], hp[b][1]-hp[a][1], hp[b][2]-hp[a][2]; // vector ab (v1) float [] v2 = { hp[d][0]-hp[a][0], hp[d][1]-hp[a][1], hp[d][2]-hp[a][2]; // vector ad (v2) norm = normcrossprod( v1, v2); // Calculates a surface normal from v1 og v2 on a cube side gl.glcolor3fv(colors[a]); // Sets the color on the cubeside gl.glbegin(gl.gl_polygon); gl.glnormal3fv(norm); // Adress the surface normal to point a gl.glvertex3fv(hp[a]); gl.glvertex3fv(hp[b]); gl.glvertex3fv(hp[c]); gl.glvertex3fv(hp[d]); gl.glend(); // Draw the cube by calling polygon() The order of the points on the cube side ensure pos outward normals public void kube(){ polygon( 0, 4, 7, 3); polygon( 4, 5, 6, 7); polygon( 5, 4, 0, 1); polygon( 1, 2, 6, 5); polygon( 2, 1, 0, 3); polygon( 3, 7, 6, 2); Leksjon 1, side 19

20 Programeksempel: Roterende belyst kube 4 float rcube = 0.0f; public void drawglscene4(glautodrawable gldrawable) { GL gl = gldrawable.getgl(); gl.glclear(gl.gl_color_buffer_bit GL.GL_DEPTH_BUFFER_BIT); gl.glloadidentity(); glu.glulookat(3.0,2.0,3.0, 0.0,0.0,0.0, 0.0,1.0,0.0); gl.glrotatef(rcube, 1.0f,1.0f,0.0f); // Rotate The Cube On The X and Y axis kube(); // Calls drawing of the cube rcube -=0.30f; // Decrease The Rotation Variable For The cube // Purely a Java thing. Simple calls DrawGLScene once GL is initialized public void display(glautodrawable gldrawable) { GL gl = gldrawable.getgl(); //Set material, yellowish float amb[] = {0.3f,0.3f,0.0f,1.0f; float diff[] = {1.0f,1.0f,0.5f,1.0f; float spec[] = {0.6f,0.6f,0.5f,1.0f; float shine = 0.25f; gl.glmaterialfv(gl.gl_front,gl_ambient,amb); gl.glmaterialfv(gl.gl_front,gl_diffuse,diff); gl.glmaterialfv(gl.gl_front,gl_specular,spec); gl.glmaterialf(gl.gl_front,gl.gl_shininess,shine*128.0f); for(int i=0;i <1000; i++){ drawglscene4(gldrawable); // Calls DrawGLScene gldrawable.swapbuffers(); //Swap buffers gl.glflush(); // release GL Leksjon 1, side 20

Leksjon 3: Lys og materialer

Leksjon 3: Lys og materialer Lineær algebra med grafiske anvendelser Leksjon 3: Lys og materialer Fjerning av skjulte flater side 2 OpenGL Lysmodellering side 3 Lystyper og tilhørende materialrespons Bakgrunnslys (Ambient light) side

Detaljer

Et enkelt rammeverk for kjøring av OpenGL-programmer i Java

Et enkelt rammeverk for kjøring av OpenGL-programmer i Java 1 Et enkelt rammeverk for kjøring av OpenGL-programmer i Java JOGL2 API og dokumentasjon kan lastes ned fra siden: http://www.aitel.hist.no/fag/_jva/forelesninger/grafikk/grafikk_h2015/nedlasting_og_installasjonsveiledning_jogl2.pdf

Detaljer

RF5100 Lineær algebra Leksjon 10

RF5100 Lineær algebra Leksjon 10 RF5100 Lineær algebra Leksjon 10 Lars Sydnes, NITH 11. november 2013 I. LITT OM LYS OG FARGER GRUNNLEGGENDE FORUTSETNINGER Vi ser objekter fordi de reflekterer lys. Lys kan betraktes som bølger / forstyrrelser

Detaljer

Leksjon 2: Transformasjoner

Leksjon 2: Transformasjoner Lineær algebra med grafiske anvendelser http://www.aitel.hist.no/fag/_lag/ Leksjon 2: Transformasjoner Fra modell til tegning på skjerm side 2 Modell Plantransformasjoner/translasjon side 3 Modell Plantransformasjoner/skalering

Detaljer

Leksjon G2: Transformasjoner

Leksjon G2: Transformasjoner Programmering grunnkurs TDAT: Grafikkdel Leksjon G: Transformasjoner Fra modell til tegning på skjerm side Modell Plantransformasjoner/translasjon side 3 Modell Plantransformasjoner/skalering side 4 Modell

Detaljer

Leksjon 2: Transformasjoner

Leksjon 2: Transformasjoner Lineær algebra med grafiske anendelser Leksjon : Transformasjoner Fra modell til tegning på skjerm side Modell Plantransformasjoner/translasjon side 3 Modell Plantransformasjoner/skalering side 4 Modell

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF330 Metoder i grafisk databehandling og diskret geometri Eksamensdag: 3. desember 010 Tid for eksamen: 14.30 18.30 Oppgavesettet

Detaljer

KONTINUASJONSEKSAMEN I EMNE TDT4230 VISUALISERING TIRSDAG 9. AUGUST 2005 KL LØSNINGSFORSLAG

KONTINUASJONSEKSAMEN I EMNE TDT4230 VISUALISERING TIRSDAG 9. AUGUST 2005 KL LØSNINGSFORSLAG Side 1 av 8 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN I EMNE TDT430 VISUALISERING

Detaljer

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Eksamen i SOD 165 Grafiske metoder Klasse : 3D Dato : 15. august 2000 Antall oppgaver : 4 Antall sider : 4 Vedlegg : Utdrag fra OpenGL Reference Manual

Detaljer

d. Utviklingssteg for å utforme animasjonssekvenser:

d. Utviklingssteg for å utforme animasjonssekvenser: Oppgave 1: Generelt a. Logisk inndeling av inputdata: Locator En enhet for å spesifisere en koordinatposisjon. Stroke En enhet for å spesifisere et sett med koordinatposisjoner. String En enhet for å spesifisere

Detaljer

RF5100 Lineær algebra Leksjon 1

RF5100 Lineær algebra Leksjon 1 RF5100 Lineær algebra Leksjon 1 Lars Sydnes, NITH 20.august 2013 I. INFORMASJON FAGLÆRER Kontakt: Lars Sydnes lars.sydnes@nith.no 93035685 Bakgrunn: Doktorgrad i Matematikk fra NTNU (2012), Siv.ing. Industriell

Detaljer

Leksjon G2: Transformasjoner

Leksjon G2: Transformasjoner Programmering grunnkurs TDAT: Grafikkdel Leksjon G: Transformasjoner Fra modell til tegning på skjerm side Modell Plantransformasjoner/translasjon side 3 Modell Plantransformasjoner/skalering side 4 Modell

Detaljer

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

OPPGAVE 5b og 8b Java Kode

OPPGAVE 5b og 8b Java Kode OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene

Detaljer

LØSNINGSANTYDNING. HØGSKOLEN I AGDER Fakultet for teknologi. DAT 200 Grafisk Databehandling. Ingen. Klasse(r): 2DTM, 2DT, 2 Siving, DT

LØSNINGSANTYDNING. HØGSKOLEN I AGDER Fakultet for teknologi. DAT 200 Grafisk Databehandling. Ingen. Klasse(r): 2DTM, 2DT, 2 Siving, DT HØGSKOLEN I AGDER Fakultet for teknologi LØSNINGSANTYDNING EMNE: FAGLÆRER: DAT 2 Grafisk Databehandling Morgan Konnestad Klasse(r): 2DTM, 2DT, 2 Siving, DT Dato: 5.2.5 Eksamenstid, fra-til: 9. - 3. Eksamensoppgaven

Detaljer

Visuell Programmering: Kom i gang med Processing

Visuell Programmering: Kom i gang med Processing Visuell Programmering: Kom i gang med Processing Et enkelt program: Syntaks introdusert: Kommentarer, print(), println(), size(). + Start opp processing + Skriv en åpningskommentar på toppen av programmet

Detaljer

Kanter, kanter, mange mangekanter

Kanter, kanter, mange mangekanter Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte

Detaljer

Universitetet i Agder Fakultet for teknologi og realfag LØSNINGSFORSLAG. Dato: 11. desember 2008 Varighet: 0900-1300. Antall sider inkl.

Universitetet i Agder Fakultet for teknologi og realfag LØSNINGSFORSLAG. Dato: 11. desember 2008 Varighet: 0900-1300. Antall sider inkl. Universitetet i Agder Fakultet for teknologi og realfag LØSNINGSFORSLAG Emnekode: Emnenavn: DAT2 Grafisk Databehandling Dato:. desember 28 Varighet: 9 - Antall sider inkl. forside 7 OPPGAVE. (2%) a) b)

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med

Detaljer

INF1000: Forelesning 6. Klasser og objekter del 1

INF1000: Forelesning 6. Klasser og objekter del 1 INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK 2 Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer navn, brukernavn og telefonnummer.

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen Kanter, kanter, mange mangekanter Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

Farger. Introduksjon. Skrevet av: Sigmund Hansen

Farger. Introduksjon. Skrevet av: Sigmund Hansen Farger Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon På skolen lærer man om

Detaljer

Moving Objects. We need to move our objects in 3D space.

Moving Objects. We need to move our objects in 3D space. Transformations Moving Objects We need to move our objects in 3D space. Moving Objects We need to move our objects in 3D space. An object/model (box, car, building, character,... ) is defined in one position

Detaljer

Bilder for Tekstur Mapping. Grunnleggende Grafikk Våren 2007

Bilder for Tekstur Mapping. Grunnleggende Grafikk Våren 2007 Bilder for Tekstur Mapping Grunnleggende Grafikk Våren 2007 Til og med versjon 1.5 av OpenGL Oppløsningen må være opphøyd i andre (2^X): 2,4,8,16,32,64,128,256,... Teksturer 256 x 256 pixels Arnt Roald

Detaljer

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder 6108 Programmering i Java Leksjon 6 Objekt Del 2: 6.4 6.5 Roy M. Istad 2015 Generelt oppsett av egendefinert klasse Eks: Student Evt. importsetninger public class Klasse { Objektvariabler - instansvariabler

Detaljer

EKSAMEN I EMNE TDT4230 VISUALISERING TIRSDAG 18. DESEMBER 2007 KL LØSNINGSFORSLAG

EKSAMEN I EMNE TDT4230 VISUALISERING TIRSDAG 18. DESEMBER 2007 KL LØSNINGSFORSLAG Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I EMNE TDT40 VISUALISERING TIRSDAG

Detaljer

Kodetime for Nordstrand barneskole

Kodetime for Nordstrand barneskole Kodetime for Nordstrand barneskole av Veronika Heimsbakk og Lars Erik Realfsen 1 Hva er Processing? Processing er et programmeringsspråk som er gratis, og tilgjengelig for alle! Man kan programmere i Processing

Detaljer

Programmering grunnkurs TDAT1001: Grafikkdel. Introduksjon

Programmering grunnkurs TDAT1001: Grafikkdel. Introduksjon Programmering grunnkurs TDAT1001: Grafikkdel Introduksjon Hva er grafisk databehandling? side 2 Noen eksempler på datagrafikk side 3 Undervisningsopplegg og læremateriell side 4 Introduksjon til OpenGL

Detaljer

Løsnings forslag i java In115, Våren 1998

Løsnings forslag i java In115, Våren 1998 Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker

Detaljer

Kapittel 4 - Fotorealistisk fremstilling... 3

Kapittel 4 - Fotorealistisk fremstilling... 3 11.12.2008 Kapittel 4... 1 DDS-CAD 6.5 Fotorealistisk fremstilling Kapittel Innhold... Side Kapittel 4 - Fotorealistisk fremstilling... 3 Perspektiv... 3 Rendere konturmodell... 4 Rendere sjattert - sanntid...

Detaljer

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

INF100 Institutt for informatikk Universitetet i Bergen Øving 5 INF100 Institutt for informatikk Universitetet i Bergen Øving 5 Høst 2013 Mål: Bruk av objekter. Innlevering: Adventure.java, Spiller.java og Rom.jav pakket i en zip fil. Innleveringsfrist: Torsdag 10.

Detaljer

Fotorealistisk fremstilling... 3

Fotorealistisk fremstilling... 3 DDS-CAD 9 Fotorealistisk fremstilling Kapittel 4 1 Innhold Side Kapittel 4 Fotorealistisk fremstilling... 3 Perspektiv... 3 Rendere konturmodell... 4 Rendere sjattert - sanntid... 5 Materialer... 5 Teksturkobling...

Detaljer

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

Norges Informasjonsteknologiske Høgskole

Norges Informasjonsteknologiske Høgskole Oppgavesettet består av 6 (seks) sider. Norges Informasjonsteknologiske Høgskole PG4200 Algoritmer og datastrukturer Side 1 av 6 Tillatte hjelpemidler: Ingen Varighet: 3 timer Dato: 6. august 2014 Fagansvarlig:

Detaljer

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4 Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I

Detaljer

Forelesning inf Java 4

Forelesning inf Java 4 Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8

Detaljer

Ma Flerdimensjonal Analyse Øving 1

Ma Flerdimensjonal Analyse Øving 1 Ma1203 - Flerdimensjonal Analyse Øving 1 Øistein Søvik Brukernavn: Oistes 23.01.2012 Oppgaver 10.1 6. Show that the triangle with verticies (1, 2, 3), (4, 0, 5) and (3, 6, 4) has a right angle. z y x Utifra

Detaljer

Rekursjon. Binærsøk. Hanois tårn.

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

LØSNINGSANTYDNING EKSAMEN

LØSNINGSANTYDNING EKSAMEN Universitetet i Agder Fakultet for teknologi og realfag LØSNINGSANTYDNING EKSAMEN Emnekode: Emnenavn: DAT Grafisk Databehandling Dato: 5. desember Varighet: 9 - Antall sider inkl. forside 8 Tillatte hjelpemidler:

Detaljer

7) Radix-sortering sekvensielt kode og effekten av cache

7) Radix-sortering sekvensielt kode og effekten av cache ) Radix-sortering sekvensielt kode og effekten av cache Dels er denne gjennomgangen av vanlig Radix-sortering viktig for å forstå en senere parallell versjon. Dels viser den effekten vi akkurat så tilfeldig

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

Detaljer

KONTINUASJONSEKSAMEN I EMNE TDT4230 VISUALISERING MANDAG 15. AUGUST 2011 KL LØSNINGSFORSLAG

KONTINUASJONSEKSAMEN I EMNE TDT4230 VISUALISERING MANDAG 15. AUGUST 2011 KL LØSNINGSFORSLAG Side 1 av 8 KONTINUASJONSEKSAMEN I EMNE TDT4230 VISUALISERING MANDAG 15. AUGUST 2011 KL. 09.00 13.00 LØSNINGSFORSLAG OPPGAVE 1 Parametriske kurver a) En eksplisitt eller implisitt funksjon i tre variable

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson

Detaljer

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015 6108 Programmering i Java Leksjon 5 Tabeller Roy M. Istad 2015 Hva er tabeller? Tabell (evt. array): Sammensetning av verdier i den samme datatypen, under ett navn i hurtigminnet. Gir rask og effektiv

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

a. Hva er de inverse transformasjonene avfølgende tre transformasjoner T, R og S: θ θ sin( ) cos( ) Fasit: 1 s x cos( θ) sin( θ) 0 0 y y z

a. Hva er de inverse transformasjonene avfølgende tre transformasjoner T, R og S: θ θ sin( ) cos( ) Fasit: 1 s x cos( θ) sin( θ) 0 0 y y z Kommentar: Svar kort og konsist. Husk at eksamen har tre oppgaver. Poengene for hver (del-) oppgave bør gi en indikasjon på hvor me tid som bør benttes per oppgave. Oppgave 1: Forskjellige emner (40 poeng)

Detaljer

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi Høgskolen i Østfold Avdeling for informasjonsteknologi Løsningsforslag til ny/utsatt eksamen i ITF20006 Algoritmer og datastrukturer 05.01.2018 Oppgave 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Detaljer

EKSAMENSOPPGAVE I INF-1100

EKSAMENSOPPGAVE I INF-1100 Side 1 av 6 sider EKSAMENSOPPGAVE I INF-1100 Eksamen i: INF-1100 Innføring i programmering og datamaskiners virkemåte Eksamensdato: Onsdag 27. Februar 2013 Tid: Kl. 09:00 13:00 Sted: Aud.max. Tillatte

Detaljer

RF5100 Lineær algebra Leksjon 12

RF5100 Lineær algebra Leksjon 12 RF5100 Lineær algebra Leksjon 12 Lars Sydnes, NITH 26. november 2013 I. GAUSS-ELIMINASJON 2x + 3y + z = 1 2x + 5y z = 1 4x + 7y + 4z = 3 x + 3/2 y + 1/2 z = 1/2 x + 2z = 2 y z = 1 3z = 2 x + 2z = 2 y z

Detaljer

PG 4200 Algoritmer og datastrukturer Innlevering 1. Frist: 2.februar kl 21.00

PG 4200 Algoritmer og datastrukturer Innlevering 1. Frist: 2.februar kl 21.00 PG 4200 Algoritmer og datastrukturer Innlevering 1 Frist: 2.februar kl 21.00 Utdelt materiale: Alle filer som nevnes er inneholdt i zip-filen innlevering1.zip. Innlevering: Besvarelsen skal være i form

Detaljer

Lokalt Koordinatsystem. Grunnleggende Grafikk Våren 2007. Transformasjoner, Matriser og Scenegraf

Lokalt Koordinatsystem. Grunnleggende Grafikk Våren 2007. Transformasjoner, Matriser og Scenegraf Lokalt Koordinatsstem Grunnleggende Grafikk Våren 27 Transformasjoner, Matriser og Scenegraf Arnt Roald Kristoffersen arntrk@hin.no D339 ITE 165 Grunnleggende Grafikk for Spillprogrammering og ITE153 Datamaskingrafikk

Detaljer

Farger Introduksjon Processing PDF

Farger Introduksjon Processing PDF Farger Introduksjon Processing PDF Introduksjon På skolen lærer man om farger og hvordan man kan blande dem for å få andre farger. Slik er det med farger i datamaskinen også; vi blander primærfarger og

Detaljer

IN2010: Algoritmer og Datastrukturer Series 2

IN2010: Algoritmer og Datastrukturer Series 2 Universitetet i Oslo Institutt for Informatikk S.M. Storleer, S. Kittilsen IN2010: Algoritmer og Datastrukturer Series 2 Tema: Grafteori 1 Publisert: 02. 09. 2019 Utvalgte løsningsforslag Oppgave 1 (Fra

Detaljer

Løsningsforslag til eksamen i INF1000 våren 2006

Løsningsforslag til eksamen i INF1000 våren 2006 Løsningsforslag til eksamen i INF1000 våren 2006 Oppgave 1 a) -1 false 7 b) 30 c) Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 d) Andre if-test er true Tredje if-test er true e) k = 4 k =

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

Teksturering. Mer om Grafisk Databehandling. Et annet eksempel. Eksempel

Teksturering. Mer om Grafisk Databehandling. Et annet eksempel. Eksempel Teksturering Mer om Grafisk Databehandling Øker detaljgraden uten å øke antall grafiske primitiver. Grafiske primitiver brukes som bærere for bilder (f.eks. fotografier). INF2340 / V04 2 Eksempel Et annet

Detaljer

INF1000. Marit Nybakken 10. februar 2004

INF1000. Marit Nybakken 10. februar 2004 INF1000 Løkker Marit Nybakken marnybak@ifi.uio.no 10. februar 2004 Motivasjon En ting datamaskinen er veldig flink til er å gjøre den samme tingen mange mange ganger på rad. Oppgaver som skal utføres innebærer

Detaljer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

Rull-en-ball Introduksjon Unity PDF

Rull-en-ball Introduksjon Unity PDF Rull-en-ball Introduksjon Unity PDF Rull-en-ball Denne uka skal vi lage vårt første spill! Spillet går ut på å være en ball og samle inn kuber for å få poeng. Spillet er over når man har samlet inn alle

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

Socket og ServerSocket

Socket og ServerSocket Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket

Detaljer

Farge Modeller RGB HSV HLS CMYK. Grunnleggende Grafikk Våren 2007. HSV eller HSB. RGB farge modell

Farge Modeller RGB HSV HLS CMYK. Grunnleggende Grafikk Våren 2007. HSV eller HSB. RGB farge modell Farge Modeller Grunnleggende Grafikk Våren 2007 Farge, Lys og Material RGB HSV HLS CMYK Arnt Roald Kristoffersen arntrk@hin.no D3390 ITE 1605 Grunnleggende Grafikk for Spillprogrammering og ITE1530 Datamaskingrafikk

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

Løsnings forslag i java In115, Våren 1996

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

LØSNINGSFORSLAG. Universitetet i Agder Fakultet for Teknologi og realfag. Dato: 03. desember 2009 Varighet: Antall sider inkl.

LØSNINGSFORSLAG. Universitetet i Agder Fakultet for Teknologi og realfag. Dato: 03. desember 2009 Varighet: Antall sider inkl. Universitetet i Agder Fakultet for Teknologi og realfag LØSNINGSFORSLAG Emnekode: Emnenavn: DAT2 Grafisk Databehandling Dato: 3. desember 29 Varighet: 9-3 Antall sider inkl. forside 8 Tillatte hjelpemidler:

Detaljer

INNHOLD SAMMENDRAG GEOMETRI

INNHOLD SAMMENDRAG GEOMETRI INNHOLD GEOMETRI... 3 LINJE, STRÅLE OG LINJESTYKKE... 3 VINKEL... 3 STUMP, SPISS OG RETT VINKEL... 3 TOPPVINKLER... 4 NABOVINKLER... 4 SAMSVARENDE VINKLER... 4 OPPREISE EN NORMAL FRA ET PUNKT PÅ EN LINJE...

Detaljer

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor. 6-13 July 2013 Brisbane, Australia Norwegian 1.0 Brisbane har blitt tatt over av store, muterte wombater, og du må lede folket i sikkerhet. Veiene i Brisbane danner et stort rutenett. Det finnes R horisontale

Detaljer

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide

Uendelig bakke. Introduksjon. Skrevet av: Kine Gjerstad Eide Uendelig bakke Skrevet av: Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3320 Metoder i grafisk databehandling og diskret geometri Eksamensdag: 29. november 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet

Detaljer

Algoritmer og datastrukturer Kapittel 2 - Delkapittel 2.1

Algoritmer og datastrukturer Kapittel 2 - Delkapittel 2.1 Delkapittel 2.1 Plangeometriske algoritmer Side 1 av 7 Algoritmer og datastrukturer Kapittel 2 - Delkapittel 2.1 2.1 Punkter, linjesegmenter og polygoner 2.1.1 Polygoner og internett HTML-sider kan ha

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF Obligatorisk oppgave 2

INF Obligatorisk oppgave 2 INF3320 - Obligatorisk oppgave 2 Innleveringsfrist: 23. september (Revisjon 4. september 2003) I denne oppgaven skal vi se på transformasjoner og interaktivitet. Vi skal lage et lite program som implementerer

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

Detaljer

INF1010 Sortering. Marit Nybakken 1. mars 2004

INF1010 Sortering. Marit Nybakken 1. mars 2004 INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet

Detaljer

Oppgave 1. Sekvenser (20%)

Oppgave 1. Sekvenser (20%) Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

1 Hva er grafisk databehandling?

1 Hva er grafisk databehandling? Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag 1 Hva er grafisk databehandling? Jan H. Nilsen 14.08.2014 Lærestoffet er utviklet for faget LV381D 3D-Programmering med OpenGL og Java Resymé:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

Løsningsforslag 2017 eksamen

Løsningsforslag 2017 eksamen Løsningsforslag 2017 eksamen Oppgave 1: O-notasjon (maks 8 poeng) 1. (i) O(n) gir 2 poeng, O(100n) gir 1 poeng (ii) O(n^2) gir 1 poeng (iii) O(n log n) gir 2 poeng 2. (i) er mest effektiv i henhold til

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 7

PG4200 Algoritmer og datastrukturer Forelesning 7 PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse

Detaljer

2D Transformasjoner (s. 51 i VTK boken) Translasjon. Del 2 Grafisk databehandling forts. Rotasjon. Skalering. y x = x + d x, y = y + d y.

2D Transformasjoner (s. 51 i VTK boken) Translasjon. Del 2 Grafisk databehandling forts. Rotasjon. Skalering. y x = x + d x, y = y + d y. 2D Transformasjoner (s. i VTK boken) Translasjon Del 2 Grafisk databehandling forts. (, ) = + d, = + d På matriseform: d d (, ) P =, P =, T = d d P = P + T 24/2-3 IN229 / V3 / Dag 6 2 Skalering Rotasjon

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

INF2100. Oppgaver 23. og 24. september 2010

INF2100. Oppgaver 23. og 24. september 2010 INF2100 Oppgaver 23. og 24. september 2010 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med + og ; grammatikken ser du i figur 1 på neste side. Tallkonstanter består av bare ett

Detaljer

Dagens tema: Sjekking

Dagens tema: Sjekking Dagens tema Dagens tema: Sjekking Navnebinding (obligatorisk oppgave 3) Biblioteket Logging Riktig bruk av navn (frivillig) Typesjekking (frivillig) Hele prosjektet Strukturen til kompilatoren vår f.pas

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009

behrozm Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009 Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen

Detaljer

Seminaroppgaver IN1010, uke 2

Seminaroppgaver IN1010, uke 2 Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en

Detaljer

Kapittel 14, Hashing. Tema. Definere hashing Studere ulike hashfunksjoner Studere kollisjonsproblemet 17-1

Kapittel 14, Hashing. Tema. Definere hashing Studere ulike hashfunksjoner Studere kollisjonsproblemet 17-1 Kapittel 14, Hashing Tema Definere hashing Studere ulike hashfunksjoner Studere kollisjonsproblemet 17-1 Hashing Hashing er en effektiv metode ved lagring og gjenfinning (søking) av informasjon Søkemetoder

Detaljer