Leksjon 3: Lys og materialer
|
|
- Martine Gulbrandsen
- 8 år siden
- Visninger:
Transkript
1 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 4 Diffust lys (Diffuse light) side 5-6 Speilende/Retningsbestemt lys (Specular light ) side 7-8 Selvlysende/Utstrålt lys ( Emitted light ) side 9 Flatenormaler side Lysegenskaper På- av side 12 Posisjon side 12 Svekking av lysstyrken side 13 Spotlights side 14 Belysningsmodeller: Bakgrunnslys, flatesidespesifikasjon og refleksjonsberegninger side Kodeeksempel på OpenGL-spesifikasjon av en lyskilde og et materiale side Leksjon 3 Side 1
2 Fjerning av skjulte flater Den enkleste måten å fjerne skjulte flater på i OpenGL er å benytte dybdebufferet Et dybdebuffer tilordner en dybde eller avstand fra synsplanet (vanligvis nærmeste klippeplan) til hver pixel i tegnevinduet. Dybdebufferet aktiviseres ved først å slå på dybdetesting ved gl.glenable(). Dette gjøres en gang ved: Steg 1: public void init(){... gl.glenable(gl.gl_depth_test) //Slår på dybdetesting. Gjøres en gang.. Ved uttegning av en ny sene utføres dybdetesting når display-metoden kalles og skjulte flater blir ikke tegnet opp: Steg 2: public void display(glautodrawable gldrawable) { gl.glclear(gl.gl_color_buffer_bit GL.GL_DEPTH_BUFFER _BIT); /* Nullstiller Tilordner dybdeverdier til hver enkelt pixel lik størst mulige avstand fra synsplanet (det fjerneste klippeplanet) */.drawglscene( gldrawable );// Skjulte flater tegnes ikke opp. 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 og gir de defaultverdier (glcolor(0,0,0,0)) Leksjon 3, 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 (RGB). 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 lys- og materialegenskaper. I OpenGL antas belysningen å kunne bestå av fire ulike lystyper: Bakgrunnslys(ambient light) diffust lys (diffuse light) Speilende/Retningsbestemt lysstråling (feks direkte sollys, specular light) lys utstrålt fra en (selvlysende)flate (emitted light) Leksjon 3, 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 gis 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år på lysberegninger gl.glenable(gl.gl_light0); Slår 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 3, side 4
5 Lystyper: Diffust lys (Diffuse light) I OpenGL er diffust lys, lys som kommer fra en bestemt posisjon i rommet. Når det treffer en flate, blir det reflektert like mye i alle retninger. Intensiteten I(v) (energien pr flateenhet på det tilbakereflekterte lyset fra en flate) er proporsjonal med cos til vinkelen v mellom det innfallende lyset og normalen til flaten, N, se figuren under. I(v) = I(0) * cos v Totalt tilbakereflektert lysenergi, Er(v) fra et flatelement, da, vil imidlertid, pga at størrelsen på flateelementet da endrer seg med da/cos v, bli: Er(v) = I(v) * da = I(0) * cos v *( da / cos v) = I(0) * da, dvs. like stor 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 3, 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 for lyskilde 0 gl.glenable(gl.gl_lighting); slår på lysmodellering gl.glenable(gl.gl_light0); slår på lyskilde 0 Egenskaper på det diffuse lyset: gl.gllightfv(gl.gl_light0, GL.GL_DIFFUSE, light_diffuse); Flate- materialegenskaper til flaten som treffes av 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å-grønn farge gl.glmaterialfv(gl.gl_front, GL.GL_AMBIENT_AND_DIFFUSE, mat_amb_diff); Leksjon 3, side 6
7 Lystyper: Speilende/Retningsbestemt lysstråling (Specular light) 1 I OpenGL er speilende/retningsbestemt lysstråling, L, lys som kommer fra en lyskilde på et bestemt sted i rommet («lyskaster»). 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 3, side 7
8 Lystyper: Speilende/Retningsbestemt 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; default for LIGHT0 {0.0f.0.0f,1.0f,0.0f (eye) 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] 0: hele objektet reflekterer, 128: bare en liten flekk på objektet reflekterer. 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ørrelse på //den skinnende lysflekken med verdier for GL.GL_SHININESS Leksjon 3, side 8
9 Lystyper: Selvlysende flater Selvlysende flater brukes i OpenGL til å simulere/visualisere for eksempel lamper eller andre lyskilder. Kan betraktes som en materialegenskap til flaten. Flatene ser selvlysende ut, men sender ikke ut lys som kan reflekteres av andre flater. R G B alfa float [] mat_emission = { 0.3f, 0.2f, 0.2f, 1.0f; // gl.glmaterialfv(gl.gl_front, GL.GL_EMISSION, mat_emission ); Leksjon 3, 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 3, side 10
11 A B Flatenormaler I lysberegninger i OpenGL inngår beregninger av vinkler mellom vektorer ved skalarprodukter. A B cos v 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]; if (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 3, 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,0), for lysretningen langs den neg. z-aksen. Leksjon 3, 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 dl = 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 3, side 13
14 Lysegenskaper 3 Spotlights Retningsbestemt 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 verdi på v er 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 // default verdier: {0.0f, 0.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 3, 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 legges på etter at texture-operasjoner er utført på flaten: gl.gllightmodeli(gl.gl_light_model_color_control,gl.gl_separate_specul AR_COLOR); Slår av separering av specular lys for videre texturfargeberegn: gl.gllightmodeli(gl.gl_light_model_color_control,gl.gl_single_color); Leksjon 3, side 15
16 Belysningsmodeller 2 I OpenGL bestemmes fargen/lysintensiteten på en pixel som følge av belysning fra alle de fire lystypene: Emittert lys (L e ), bakgrunnslys (L a ), diffust lys (L d ) og speilende/retningsbestemt lysstråling (L s ). I tillegg kommer 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 en 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. 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. Se slide 7. Leksjon 3, 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 (ikke flat/lik (Gl.GL_FLAT) 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 3, side 17
18 Programeksempel: Roterende belyst kube 2 // Vertex Array 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; // Color Array, 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 3, 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, GL gl) { //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 and v2 on a cube side gl.glcolor3fv(colors[a],0); // 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],0); dersom ikke gl.glvertex3fv(); virker bruk (gl.glvertex3f(hp[a][0],hp[a][1],hp[a][2]); gl.glvertex3fv(hp[b],0); gl.glvertex3fv(hp[c],0); gl.glvertex3fv(hp[d],0); gl.glend(); // Draw the cube by calling polygon() The order of the points on the cube side ensure pos outward normals public void kube(gl gl){ polygon( 0, 4, 7, 3,gl); polygon( 4, 5, 6, 7,gl); polygon( 5, 4, 0, 1,gl); polygon( 1, 2, 6, 5,gl); polygon( 2, 1, 0, 3,gl); polygon( 3, 7, 6, 2,gl); Leksjon 3, 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(gl); // Calls drawing of the cube rcube -=0.30f; // Decrease The Rotation Angle 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); gldrawable.swapbuffers(); gl.glflush(); // Calls DrawGLScene //Swap buffers // release GL Leksjon 3, side 20
Leksjon 3: Lys og materialer
Lineær algebra med grafiske anvendelser http://www.aitel.hist.no/fag/_lag/ Leksjon 3: Lys og materialer Innledning side 2 Fjerning av skjulte flater side 2 Lystyper og tilhørende materialrespons side 3
DetaljerRF5100 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
DetaljerEt 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
DetaljerLeksjon 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
DetaljerLeksjon 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
DetaljerHØ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
DetaljerKONTINUASJONSEKSAMEN 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
DetaljerUNIVERSITETET 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
DetaljerRF5100 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
DetaljerVisuell 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
DetaljerUniversitetet 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)
DetaljerLØ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
DetaljerHva 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 =
DetaljerLeksjon 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
DetaljerKanter, 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
DetaljerOPPGAVE 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
DetaljerLeksjon 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
DetaljerMoving 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
DetaljerOBJEKTER 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
DetaljerINF1000: 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.
DetaljerPG 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
Detaljeri=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
DetaljerForelesning 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
DetaljerFarger. 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
DetaljerMa 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
DetaljerProgrammering 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
Detaljerd. 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
DetaljerKodetime 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
DetaljerLeksjon 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
DetaljerINF100 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.
DetaljerKanter, 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
DetaljerTDT4100 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
DetaljerLokalt 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
DetaljerNorges 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:
Detaljer23.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
DetaljerUNIVERSITETET 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
Detaljerpublic 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
DetaljerIN2010: 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
Detaljerpublic 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
DetaljerRekursjon. 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
DetaljerKapittel 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...
DetaljerRF5100 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
DetaljerFotorealistisk 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...
Detaljer13.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,
DetaljerEKSAMEN 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
DetaljerLø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
DetaljerBilder 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
DetaljerLø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
DetaljerIntroduksjon 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
Detaljer7) 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
DetaljerOPPGAVE 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.
DetaljerUNIVERSITETET 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
Detaljer6108 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
DetaljerFarger 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
DetaljerOppgave 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
DetaljerRull-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
DetaljerNy/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
DetaljerPG4200 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
DetaljerLø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 =
DetaljerLø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
DetaljerTeksturering. 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
DetaljerFarge 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
DetaljerUNIVERSITETET 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å
DetaljerSocket 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
DetaljerKONTINUASJONSEKSAMEN 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
Detaljer2D 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
DetaljerINF1000 (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
DetaljerINF1000 (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
DetaljerUNIVERSITETET 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
Detaljera. 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)
DetaljerINF1010 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
DetaljerLØ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:
DetaljerLø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
Detaljer1 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é:
DetaljerINF1000. 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
DetaljerAlgoritmer 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
DetaljerEn algoritme for permutasjonsgenerering
Innledning La oss tenke oss at vi har en grunnskole-klasse på 25 elever der enkelte av elever er uvenner med hverandre. Hvis uvenner sitter nær hverandre blir det bråk og slåssing. Er det mulig å plassere
DetaljerFra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
DetaljerEKSAMENSOPPGAVE 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
DetaljerDu 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
DetaljerKapittel 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
DetaljerForelesning 1, 10.01: Geometri før Euklid
Forelesning 1, 10.01: Geometri før Euklid Antikk Geometri før Grekerne (Egypt, Kina, Babylonia) 1. er forhold mellom sirkelens omkretsen (den er lengde av sirkelpereferi) og diameteren, SIRKELEN = omkretsen
DetaljerINNHOLD 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...
DetaljerINF1000 Behandling av tekster
INF1000 Behandling av tekster Marit Nybakken marnybak@ifi.uio.no 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal
DetaljerForelesningsnotater SIF8039/ Grafisk databehandling
Forelesningsnotater SIF839/ Grafisk databehandling Notater til forelesninger over: Kapittel 4: Geometric Objects and ransformations i: Edward Angel: Interactive Computer Graphics Vårsemesteret 22 orbjørn
DetaljerForelesning 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
DetaljerForelesning 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
DetaljerIN1010 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
DetaljerRepetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!
Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre
DetaljerAlgoritmer 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
DetaljerINF1000 : Forelesning 4
INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet
DetaljerOppsummering. 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
DetaljerLO191D/LC191D Videregående programmering
LO191D/LC191D Videregående programmering Eksamen mai 2012 Løsningsforslag Oppgave 1 Klassen Destinasjon: // Oppgaven er uklar på hva som skal inn i klassen Destinasjon. // Her følger en minimumsutgave
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2
Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 16 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et
Detaljeri=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4
Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk
DetaljerLØ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:
DetaljerINF{3 4}320 - Obligatorisk oppgave 3
INF{3 4}320 - Obligatorisk oppgave 3 Innleveringsfrist: 14. oktober 2003 (Revisjon 25. september 2003) I denne oppgaven skal vi utvide koden som ble laget for oblig2. I stedet for å tegne en enkel kube
DetaljerDagens 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
DetaljerKapittel 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