Leksjon 3: Lys og materialer
|
|
- Viktor Christensen
- 6 år siden
- Visninger:
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
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
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
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
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
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 anendelser Leksjon : Transformasjoner Fra modell til tegning på skjerm side Modell Plantransformasjoner/translasjon side 3 Modell Plantransformasjoner/skalering side 4 Modell
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
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
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
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
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
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
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 =
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
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
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
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
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)
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
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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...
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.
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...
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
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:
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
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
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
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
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
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:
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
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,
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
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
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
DetaljerINF1010 - 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
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)
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
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
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
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
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
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
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
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 =
DetaljerINF 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
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
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
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
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
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
DetaljerDel 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
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
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:
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...
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
DetaljerUendelig 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
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
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 (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
DetaljerINF 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
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
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
DetaljerOppgave 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
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
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é:
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
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
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
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
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
DetaljerBOKMÅ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
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
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
DetaljerTDT4110 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
DetaljerINF2100. 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
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
DetaljerINF1010 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
Rekursiv programmering BTeksempel Datastruktur I klassen Persontre (rotperson==) Rekursjon Noen oppgaver/problemer er rekursive «av natur» Eksempel på en rekursiv definisjon Fakultetsfunksjonen
DetaljerSeminaroppgaver 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
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
Detaljer