Grafiska System APIer mm. Innehåll Grafiska System en intro Primitiver Inmatning Grafik-APIer Exempel Java OpenGL. Grafikprogrammering.
|
|
- Linnéa Månsson
- för 5 år sedan
- Visningar:
Transkript
1 Grafiska System APIer mm Björn Eiderbäck Innehåll Grafiska System en intro Primitiver Inmatning Grafik-APIer Exempel Java OpenGL Varför intressera sig för grafik och interaktion? Användarsynvinkel Grafiska gränssnitt ger (om rätt konstruerade) överskådlighet enkel och effektiv inlärning rolig och inbjudande presentation och interaktion ökad kreativitet hos användarna Utvecklarsynvinkel Vad är ett bra grafiskt/interaktivt gränssnitt? Vilka olika möjligheter finns det? Hur konstruerar jag en sådan applikation rent tekniskt? Finns det bra verktyg för att konstruera tillämpningarna? previous next previous next 2 Vad behöver vi veta för att konstruera grafiska applikationer? Grafik Matematiska modeller, grundläggande grafiska algoritmer, visualisering, modellering, termer, tekniker och något om hårdvara Grafikprogrammering Kan delas upp på tre inbördes beroende delar Grsfikprogrammering Interaktion Utformning, konstruktion, design och tekniker för att fabricera interaktiva grafiska applikationer Programmering Tekniker Språk Grafik Tekniker Mjukvara Interaktion Tekniker Hårdvara Programmering Programmeringsverktyg för att skapa grafiska interaktiva tillämpningar APIer Utvecklingsmiljöer Gränssnitt WWW, Internet Visualisering Dimensioner Hårdvara Människan Modeller Ergonomi previous next 3 previous next 4 Programmering Grafik Grafik Programmering Tekniker Visualisering Interaktion Frameworks Komponentbaserade Språk C Java Smalltalk Lingo Utvecklingsmiljöer Smalltalkmiljöer Javamiljöer Director Andra Gränssnitt Tekniker Anpassningsbara Gränssnittsbyggare WWW, Internet, mm Applets Distribuerade applikationer HTML Tekniker Algoritmer Primitiver Modellering Mjukvara OpenGL GKS, PHIGS, mfl VRML Visualisering Grafisk presentation Färg, belysning Perceptuella aspekter Dimensioner 2D 2.5D 3D Hårdvara Maya Maya Inmatningsverktyg Utmatning Bildminne previous next 5 previous next 6
2 Interaktion Interaktion Tekniker Presentations Interaktions Programmerings Hårdvara Grafik kort historik (som ni sett på videon) Men några Milstolpar redan tidigt i datorhistorien (50-talet) fanns halvdumma utskriftsenheter som teleprintrar och radskrivare Pekverktyg Skärm Hjälm, handske Människan Förutsättningar Deltagande under utvecking Seendet Modeller omkring 1950 kom datordrivna katodstrålerör (CRT) Konceptuella Programmeringsmodeller Styrd av människans krav previous next 7 previous next 8... historik... under tidigt 60-tal utvecklades Sketchpad av Ivan Sutherland på MIT Lincoln lab här användes eleganta sätt att rita och manipulera grafiska objekt med en ljuspenna man introducerade många intressanta tekniker bl.a. hierarkier av bilder och delbilder, gummibandslinjer, restriktioner (eng. constraints), gester för vissa operationer många av dessa tekniker hittar vi i dagens system... historik... Samtidigt såg bil- och flygindustrin möjligheterna att använda grafiska tekniker Computer Aided Design (CAD) och Computer Aided Manufacturing (CAM) Arkadspelen som kom i mitten av sjuttiotalet bidrog också starkt till populäriseringen av datorstödda grafiska lösningar. PONG (dvs ett sorts enkelt tennisspel) mitten av 70-talet. previous next 9 previous next historik... Under sjuttiotalet utvecklades också grafiska arbetsstationer med bl.a. fönster och möss. Under 80-talet då billiga persondatorer med bitmappade skärmar kom tog den grafiska användningen riktig fart. (även om hårdvaruteknikerna till stora delar utvecklades under 60-talet)... historik Många grafiska standarder har utvecklats Med en strävan att enklare skriva komplexa grafiska applikationer flyttbar kod som kan köras på flera olika plattformar och hårdvaror Några betydelsefulla grafikpaket 80-talet GKS, PHIGS, NeWS mfl 90-talet OpenGL VRML previous next 11 previous next 12
3 Interaktiva grafiska system Milstolpar (några axplock): Douglas Engelbart, mitten av 1960-talet NLS, on Line System, innehöll , hypertext, direkmanipulation, konferenssystem med videolänk, mm Smalltalk, på Xerox under 1970-talet Introducerade bitmappade skärmar, fönstersystem, pop-upmenyer, användning av mus, reflexiv öppen omgivning, maskinoberoende portabel kod, MVC, objektorientering, stort klassbibliotek....milstolpar... Xerox Star, 1981 Desktopmetafor med ikoner och överlappande fönster. What You See Is What You Get (WYSIWYG) MAC, 1984 Första billiga alternativet. Genomgående grafisk direkmanipulativ filosofi. X-windows, 1987 Windows 3, 1990 Sålde idéerna till en bredare publik (även om gränssnittet var ett :-)) IDE, Integrated Development Environment, med utvecklingsverktyg previous next 13 previous next 14...milstolpar Videospel Gjorde oss vana vid idéerna. Grundläggande grafiskt system Windows 95/NT gav vidare spridning (Det börjar se snyggare ut.) HTML, WWW med browsrar som Mosaic och Netscape, tidigt tal Har (indirekt) ökat intresset och spritt idéerna till en riktigt bred marknad Java (första versionen släpptes 1995) Ökade möjligheter att skriva plattformsoberoende interaktiva system, enkelt att sprida med sin koppling till Internet Modernare IDEer VisualWorks\Smalltalk med SUnit, refactoring, mm Eclipse Inmatningsenhet Bilden skapad i FB Utmatningsenhet previous next 15 previous next 16 Inmatningsverktyg Katodstrålerör mouse trackball light pen data tablet joy stick space ball Kan antingen användas som linjeritande enhet eller innehållet i en frame buffer (rastergrafik) previous next 17 previous next 18
4 Datorgrafik: Som tidigare sagts går datorgrafik tillbaks till datorernas barndom Datorgrafik : Trådmodeller Kostnaden för omritning via katodstrålerör var då hög Datorerna var långsamma, dyra och inte tillförlitliga previous next 19 previous next 20 Grafikprocessor (eng Display Processor) Istället för att den vanliga datorn ska behöva uppdatera skärmen finns en speciell grafikprocessor (display processor (DPU)) Dom grafiska elementen lagras i en utritningslista (eng display list (display file)) i grafikprocessorn Värddatorn kompilerar display-listan och skickar den till DPU Datorgrafik : Rastergrafik Grafiska standardpaket började komma Ett par av dom största GKS: Europeiskt Blev ISO 2D standard Core: Nordamerikanskt 3D men blev aldrig ISO standard Arbetstationer och PC previous next 21 previous next 22 Rastergrafik En bild skapad som en vektor (ett raster) av bildelement (pixels) i frame bufferten Rastergrafik Låter oss gå från linjer och trådmodeller till fyllda polygoner previous next 23 previous next 24
5 PCar och arbetsstationer Även om vi inte längre skiljer på PCar och arbetsstationer så har dom utvecklats från olika källor Tidiga arbetsstationer karaktäriseras av Nätverksanslutning: klient-server Hög nivå av interaktivitet Tidiga PCar inkluderade bildminne som del av användarminnet Datorgrafik : Realism kommer till datorgrafiken smooth shading environmental mapping bump mapping previous next 25 previous next 26 Datorgrafik: Specialhårdvara Silicon Graphics geometrimotor VLSI implementation av grafisk pipeline Industristandard PHIGS RenderMan Nätverksbaserad grafik: X Window System Datorgrafik: OpenGL API Helt datorgenerarade filmer (Toy Story) gör succe Nya hårdvarumöjligheter Texture mapping Blending Accumulation, stencil buffer Human-Computer Interaction (HCI) previous next 27 previous next 28 Datorgrafik: Fotorealism Utmatningstekniker Vektoriserade (linjeritande) skärmar Grafikkort till PCs dominerar marknaden Nvidia, ATI, 3DLabs var ganska vanliga fram till en bit in på 80-talet utritning sker genom att linje för linje i en slumpmässig ordning ritas ut på skärmen, därför den engelska termen random scan kunde rita linjer mellan godtyckliga punkter på skärmen Spelkonsoler leder marknadsutveckoingen Datorgrafik blir rutin i filmindustrin: Maya, Lightwave Refresh rate Skärmens fosforyta efterlyser endast en viss tid måste uppdateras flera gånger i sekunden (typiskt 30-70) för att undvika flimmer. previous next 29 previous next 30
6 ... Rasterskärm... Interlacing (sve. radsprång) skärmen uppbyggd som en bitkarta varannan sveplinje uppdateras i varje svep bilderna lagras i en speciell refresh buffer Raster hela bilden skapas från ett raster, som är en uppsättning horisontella svep-linjer bra för skärmar med låg uppdateringshastighet (med typiskt 30 ggr per sekund). Reducerar flimmer. previous next 31 previous next Monokrom skärm... Element konstrueras som bitkartor Exempel bitkarta till bild (från VisualWorks) ritar med två färger Pixmap (pixel map), bitkarta en representation av en rektangulär area med en vektor av punkter bestående av heltal Namnet pixmap kan betyda både innehållet i refreshbufferten och buffertens minne. För att inte skapa förvirring brukar det senare kallas för frame buffer Cursor normal Cursor hand previous next 33 previous next Matematisk beskrivning till raster Svepkonvertering/rastrering (matematiska) (linje-)beskrivningar översätts till rasterpunkter Ett problem: Aliasing en term från signalprocessing för fel som uppstår då en kontinuerlig signal diskretiseras I grafiska sammanhang syns detta genom att räta linjer blir trappor. y = mx + b R2 R 2 = x 22 + y 22 previous next 35 previous next 36
7 En lösning: Antialiasing tekniker för att reducera aliasing-effekter vanlig teknik är att låta intensiteten vara proportionell mot hur mycket en viss rasterpunkt befinner sig inom den ideala linjen Koordinatsystem och koordinater Vanligen jobbar vi i Cartesiska koordinater Vissa system har origo nere till vänster andra uppe till vänster Världskoordinater Är dom koordinater vi använder i våra applikationer Här bryr vi inte oss om vilka pixlar på skärmen som kommer representera dem Utan antialiasing Antialiasing Skärmkoordinater De koordinater som verkligen representerar punkter på skärmen previous next 37 previous next 38 Kameramodell projektor p bildplan projektion av p Projektionscentrum (center of projection, cop) Världen med världskoordinater Skärmen med skärmkoordinater Vanliga ritrutiner och attribut Dom flesta grafiska paket innehåller åtminstone stöd för att rita (2D) Punkter Av olika storlek Linjer Heldragna, streckade, prickade osv Polygoner Fyllda eller icke fyllda Text Med olika storlek och typsnitt Kurvor Som splines och Bezierkurvor previous next 39 previous next 40 OpenGL-primitiver GL_POINTS GL_LINES GL_TRIANGLES GL_LINE_STRIP GL_LINE_LOOP GL_POLYGON GL_QUAD_STRIP Attribut Det finns också stöd för att ange Färg eller mönster Linjebredd Prickad streckad I OpenGL kommer ni senare se prov på fler attribut, tex för att ange olika typer av polygoner och (självklart) i tre dimensioner GL_TRIANGLE_STRIP GL_TRIANGLE_FAN previous next 41 previous next 42
8 Klippning Då man konstruerar ett fönster att rita i brukar (eller kan) man också ange klipprektanglar Dvs ange dom områden där objekten skall synas Objekt utanför, eller delvis utanför, klipps mot området Fönster och vyer Ett fönster brukar ofta delas in i delvyer (viewports) I varje viewport jobbar man med ett lokalt koordinatsystem (fönstret har också ett koordinatystem) Med klipprektangel satt snabbas ofta utritningen upp previous next 43 previous next 44 Attribut Linjetjocklek Linjeändor Linjehörn previous next 45 3 huvudtyper 1 2 Olika inmatningstyper Det är centralt att ta hand om inmatning från olika inenheter i alla typer av interaktiva tillämpningar Request mode Vänta tills dess att något sker tex på inmatning via tangentbordet eller klick på mus traditionell inmatning från tangentbord, scanf (C), readln (Pascal) sensor.waitbutton(); gc.displaystring("inmatning ", sensor.pos()); Där sensor är ett (tänkt) objekt som ger oss möjlighet att läsa av inmatningsverktygens status (dvs tex tangentbord och mus) Samplad/pollad Kontrollera status för enhet Omedelbar avläsning tex är någon knapp på musen nertryckt while(sensor.anybuttonpressed()) { pen.moveto(sensor.mousepoint()); previous next inmatningstyper Händelsestyrd Förändringar hos enheter placeras i en kö intresserade program meddelas om att händelse inträffat från början av kön (flera kan alltså meddelas om samma händelse) API:er Genom åren har flera APIer (Application Programmer s Interface) skapats, tex GKS, Phigs mfl Smalltalk-APIer Java-APIer OpenGL-APIer (med bla GLUT, GLU) Det är sedan upp till varje program att själv bestämma hur det skall (eller inte skall) reagera Exempel, en metod som reagerar om händelsen dubbeklick inträffar public void doubleclickevent(event event) { frame.setlocation(event.position()); Gör det relativt enkelt att programmera både grafiska och interaktiva gränssnitt previous next 47 previous next 48
9 Inmatningstyper och APIer Dom modernare APIerna för grafik och interaktion använder en händelsebaserad inmatning Används i exempelvis Java Utnyttjar polymorfism och andra oo-tekniker Händelsehanterare Smalltalk OO-tekniker Shockwave och Flash Olika händelser resulterar i olika funktionsanrop OpenGL Bakomliggande system anropar metoder som programmeraren definerat och bundit till specifika händelser previous next 49 Javas API (Application Programmer s Interface) Java:s API innehåller bla awt (abstract windowing toolkit) som delvis kan användas som ett FrameWork som bla stödjer konstruktion av applikationer med fönster Konstruktion av egna fönster Fundamental fönsterklass AWT: Frame Swing: JFrame Ett sätt att konstruera fönster med egna egenskaper (tex speciell utritning) är att subklassa fönsterklassen Beteendet ändras, dvs anpassas till dom egna önskemålen, genom att lämpliga metoder skrivs om i den konkreta (egna) subklassen Tex paint(...) eller paintcomponent(...) för att beskriva utritning Olika händelsehanterare definieras för att ta hand om olika inmatningshändelser I Swing subklassar man ofta JComponent previous next 50 Frame och Applet java.lang java.awt java.applet Object Object Component Component Container Container Window Window Panel Panel Frame Frame Applet Applet Ofta importeras alla klasser i java.awt Java-exempel 1 (AWT) import java.awt.*; // Klassdefinition (utan extends medför subklass till Object) public class MyApplication { Ofta är det tillräckligt att (Java 1.1) subklassa Frame och implementera tex WindowListener, MouseListener och MouseMotionListener senare skall vi titta på hur vi istället kan använda adaptorer skriva public static void main(string [] args) instansiera den egna klassen, ange fönsterstorlek och ange att fönster och mushändelser skall tas emot (addwindowlistener(this) osv), öppna det hela skriva public void paint(graphics g) rita på skärmen konstruera metoder för dom gränssnitt för dom "lyssnare" vi angett att vi skall implementera Instansiera Frame Sätt storlek Och öppna public static void main(string [] s) { Frame f = new Frame("Mitt första fönster"); f.setsize(200, 300); f.setvisible(true); previous next 51 previous next och så sparar vi, kompilerar och kör Spara Spara filen med samma namn som klassen med extension.java, dvs här MyApplication.java Kompilera javac MyApplication.java Skapar en fil MyApplication.class Kör java MyApplication previous next 53 Vi definierar hur omritning av fönstret ska gå till Java-exempel 2 (AWT) import java.awt.*; public class MyFrame extends Frame { public MyFrame() { public MyFrame(String s) { super(s); public void paint(graphics g) { int x = 100, y = 200; for (int i = 0; i < 100; i++) { g.drawoval(x, y, i, i); public static void main(string [] s) { MyFrame f = new MyFrame("Mitt andra fönster"); f.setsize(200, 300); f.setvisible(true); previous next 54
10 Java2D: hur Java har ett rikt API för att konstruera grafiska tillämpningar Graphics och Graphics2D är dom centrala utritningsklasserna För att komma åt Graphics2D:s rutiner måste vi dock göra en cast (i tex paint-metoden) public void paint(graphics g) { Graphics2D g2 = (Graphics2D) g; // Nu kan vi använda rutiner i Graphics2D utan att // komplikatorn klagar... Java2D: några primitiver och enkla ritrutiner linjetjocklek float width = 10; BasicStroke bs = new BasicStroke(width); gc2.setstroke(bs); gc2.drawline(10, 10, 100, 200); streckad linje float [] dash = {10; BasicStroke b = new BasicStroke(3.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f); g2.setstroke(b); previous next 55 previous next Polygon (beskriv först rita sedan) GeneralPath p = new GeneralPath(); p.moveto(0, 0); p.lineto(w/12, h/10); p.lineto(0,h/5); p.closepath(); g2.draw(p); //Rita ut det hela nu Java2D: ange typ av linje och hörn I många grafikpaket kan man ange om ändor av linjer skall vara räta, rundade eller projicerade CAP_BUTT, CAP_ROUND, CAP_SQUARE Motsvarande gäller för hörn i polygoner BasicStroke.JOIN_MITER, BasicStroke.JOIN_ROUND, BasicStroke.JOIN_BEVEL BasicStroke bs = new BasicStroke(20.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND); Antialiasing g2.setrenderinghint(renderinghints.key_antialiasing, RenderingHints.VALUE_ANTIALIAS_ON); Rita sen som vanligt previous next 57 previous next 58 För JFrame importerar vi javax.swing För mer avancerad grafik importerar vi java.awt.geom Med Graphics2D kan vi göra mer avancerade 2Dsaker Java-exempel 3, Swing, Graphics2D och JFrame import java.awt.*; import javax.swing.*; import java.awt.geom.*; public class MyJFrame extends JFrame { public void paint(graphics g) { Graphics2D g2 = (Graphics2D)g; g2.setstroke(new BasicStroke(8.0f)); g2.setcolor(color.magenta); g2.draw(new Arc2D.Double(40, 70, 200, 100, 120, 135, Arc2D.OPEN)); public static void main(string [] s) { MyJFrame f = new MyJFrame(); f.setsize(200, 300); f.setvisible(true); previous next 59 Java-exempel 4 import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.image.*; import javax.swing.*; public class Demo1Java2D extends JFrame { public Demo1Java2D(){ super( Some 2D graphics"); public void paint(graphics g){ super.paint(g); Graphics2D graphics2d = (Graphics2D) g; graphics2d.translate(0, 20); graphics2d.setpaint(new GradientPaint (5, 30, Color.blue, 35, 100, Color.yellow, true)); graphics2d.fill(new Ellipse2D.Double(5, 30, 65, 100)); previous next 60
11 graphics2d.setpaint(color.red); graphics2d.setstroke(new BasicStroke(10.0f)); graphics2d.draw( new Rectangle2D.Double(80, 30, 65, 100)); graphics2d.setpaint(new TexturePaint( bufferedimage, new Rectangle(10, 10))); graphics2d.fill(new RoundRectangle2D.Double( 155, 30, 75, 100, 50, 50)); BufferedImage bufferedimage = new BufferedImage( 10, 10, BufferedImage.TYPE_INT_RGB); Graphics2D graphics= bufferedimage.creategraphics(); graphics.setcolor(color.yellow ); graphics.fillrect(0, 0, 10, 10 ); graphics.setcolor(color.black ); graphics.drawrect(1, 1, 6, 6 ); graphics.setcolor(color.blue ); graphics.fillrect(1, 1, 3, 3 ); graphics.setcolor(color.red ); graphics.fillrect(4, 4, 3, 3 ); graphics2d.setpaint(color.white); graphics2d.setstroke(new BasicStroke(6.0f)); graphics2d.draw( new Arc2D.Double( 240, 30, 75, 100, 0, 270, Arc2D.PIE)); graphics2d.setpaint(color.green ); graphics2d.draw(new Line2D.Double(395, 30, 320, 150)); float[] dashes = {10, 2; graphics2d.setpaint(color.yellow); graphics2d.setstroke(new BasicStroke( 4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 10, dashes, 0)); graphics2d.draw(new Line2D.Double(320, 30, 395, 150)); previous next 61 previous next 62 public static void main(string[] args){ Demo1Java2D application = new Demo1Java2D (); application.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE); application.setsize(425, 180); application.setvisible(true); Inkludera nödvändiga bibliotek Beskriv vad som ska göras om fönstret behöver ritas om OpenGL ett första exempel (simple1.c) #include <GL/glut.h> /* glut.h inkluderar gl.h och glu.h*/ void mydisplay(void) { glclear(gl_color_buffer_bit); /* Rensa fönstret */ glbegin(gl_polygon); /* Beskriv en polygon */ glvertex2f(-0.5, -0.5); glvertex2f(-0.5, 0.5); glvertex2f(0.5, 0.5); glvertex2f(0.5, -0.5); glend(); glflush(); /* Töm bufferten, dvs rita polygonen */ int main(int argc, char** argv) { glutcreatewindow("simple 1"); glutdisplayfunc(mydisplay); glutmainloop(); Skapa ett fönster Ange att mydisplay ska anropas vid omritning Låt glut:s huvudloop ta över (måste alltid vara med och sist i koden) previous next 63 previous next kompilera och köra... På NADAs Solaris/Unix-maskiner gcc simple1.c o simple1 -lglut -lgl -lglu -lxmu -lx11 -lm Under Windows med Cygwin och gcc/g++ och glut installerat gcc simple1.c o simple1 -lopengl32 -lglu32 -lglut32 -lm -LC:\GLUT\glut bin Där jag placerat glut-binärerna i C:\GLUT\glut bin Kör genom att skriva (eller kanske dubbelklicka på simple1.exe) simple1... det blir enklare att kompilera med hjälp av en make-fil... Alexander pratar mer om detta senare i kursen # This sample Makefile allows you to make an OpenGL application # whose source is exactly one.c file. # # To use this Makefile, you type: # make xxxx # where # xxxx.c is the name of the file you wish to compile # # A binary named xxxx will be produced CC = gcc #Windows LDLIBS = -lopengl32 -lglu32 -lglut32 -lm -LC:\GLUT\glut bin #UNIX #LDLIBS = -lglut -lgl -lglu -lxmu -lx11 -lm.c: $(CC) $@.c $(LDLIBS) -o $@ previous next 65 previous next 66
12 ... då kan vi kompilera på följande sätt make simple1 Då kommer kompilering bara ske om simple1.c är förändrad I så fall skapas simple1.exe En egen initrutin Sätt upp fönstrets koordinater Vi utvidgar exemplet en aning (simple2.c) I förra exemplet använde vi en hel del defaultvärden Vi ändrar lite #include <GL/glut.h> void mydisplay(void) { /* Som i förra versionen void init() { /* Vi rensar med grönt den här gången */ glclearcolor (0.0, 1.0, 0.0, 1.0); /* och ritar med rött */ glcolor3f(1.0, 0, 0); glmatrixmode (GL_PROJECTION); glloadidentity (); previous next 67 /* left, right, bottom, top, near, far */ glortho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); previous next 68 Anropa den egna init() int main(int argc, char** argv) { glutinit(&argc,argv); glutinitdisplaymode (GLUT_SINGLE GLUT_RGB); glutinitwindowsize(500,500); glutinitwindowposition(20,50); glutcreatewindow("simple 2"); glutdisplayfunc(mydisplay); init(); glutmainloop(); En buffer för omritning vidd, höjd Använd RGB för att definiera färger Fönstrets övre vänstra hörn origo i skärmens övre vänstra hörn previous next 69
Utmatningstekniker Vektoriserade (linjeritande) skärmar
previous 2D-grafik. Något om FrameWorks. Java en kort introduktion och något exempel med AWT, något om Swing och Graphics2D, samt OpenGL ett litet exempel Föreläsning 2 Innehåll Något om utmatning hårdvara,
Läs merKursens uppläggning. GRIP 2D1640 Föreläsning 1. Sidan borttagen!! Grafik och Interaktionsprogrammering
GRIP 2D1640 Föreläsning 1 Grafik och Interaktionsprogrammering och översikt Hemsida: http://www.nada.kth.se/kurser/kth/2d1640 Registrering: res checkin grip05 Hemkatalog: /info/grip05 Kursansvarig Björn
Läs merGRIP 2002, 2D1953-föreläsning 1a
*5,3' ) UHOlVQLQJD *UDILNRFK,QWHUDNWLRQVSURJUDPPHULQJ Introduktion och översikt Hemsida: http://www.nada.kth.se/kurser/kth/2d1953 Registrering: res checkin grip02 Hemkatalog: /info/grip02 previous next
Läs mer2D-grafik. Gustav Taxén
2D-grafik Gustav Taxén gustavt@csc.kth.se 2D164 Grafik och Interaktionsprogrammering VT 27 Framebuffer Datorminne som lagrar information för pixlarna som ska visas på skärmen Grafikkortet hämtar värdena
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015
Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation
Läs merITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter
ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering 1 DSV Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste åren I Java finns
Läs merProgrammeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt
Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016
Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik
Läs merJava: Utvecklingsverktyg, datatyper, kontrollstrukturer
Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se
Läs merVarför behövs grafikbibliotek? Introduktion till OpenGL. OpenGL är ett grafikbibliotek. Fördelar med OpenGL. Allmänt om OpenGL. Nackdelar med OpenGL
Introduktion till OpenGL Battlezone Atari corp., 1980. Gustav Taxén CID gustavt@nada.kth.se Varför behövs grafikbibliotek? Grafikhårdvara Skillnader i funktionalitet och möjligheter. Skillnader i styrning.
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering
Läs merTransformationer. Translation. Skalning. Homogena koordinater. Rotation. 2D-grafik. x y. Inom datorgrafik är transformationer den. Många. bevaras.
Transformationer D-grafik Gustav Taén gustavt@nada.kth.se Inom datorgrafik är transformationer den kanske viktigaste formen av operation. De vanligaste transformationerna är linjära och kan skrivas som
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering
Läs merObjektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets
Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets 1 Läsanvisningar Den här föreläsningen syftar till att ge en bild av vad en Java-Applet är och är ganska fristående från föregående
Läs merLaboration 3 GUI-programmering
Laboration 3 GUI-programmering Syfte Erbjuder studenterna en möjlighet att lära sig grunderna i gränssnittsprogrammering i Java. Genomförande Genomförs individuellt eller i grupp om 2 personer. Uppskattad
Läs merFöreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing
Föreläsning 15 (16) Introduktion till Swing Historik (java.awt) JDK 1.0 AWT (Abstract Window Toolkit) Paket för gränssnittsprogrammering Har en del nackdelar: Använder s.k. native code Stödjer endast komponenter
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Grafiskt användargränssnitt, Swing Layout och komponenter Göra
Läs merDenna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se
1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik
Läs merFöreläsnings 11 - GUI, Händelsestyrda program, MVC
Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken
Läs merID1004 Laboration 3, 5-6 November 2012
18-okt-2012/FK ID1004 Laboration 3, 5-6 November 2012 Labben bör göras individuellt. Beräknad tid ca 2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön
Läs merFöreläsning 3: Händelsestyrda program och användargränssnitt
(2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september
Läs merAtt prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.
Datateknik A, Syfte: Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Att läsa: Lektion 2 Uppgifter:
Läs mer2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering
2I1049 Föreläsning 8 Grafiska gränssnitt, Java interface och händelsehantering 1 KTH-MI Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merTDDD78, TDDE30, 729A Grafik: Att "rita" egna komponenter
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafik: Att "rita" egna komponenter Intro 1: Rita Allt på skärmen ritas som pixlar Även de vanliga GUI-komponenterna 2 Gradienter, skuggning Matematisk
Läs merDetta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merKort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Läs merl uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2
Strukturerad programmering l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll 1 2 Olika ansatser Begrepp Den manipulativa/imperativa
Läs merObjektorienterad programmering med Java Swing: Händelser, lyssnare och applets
GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs merEDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Läs merTENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET
UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt
Läs merFöreläsning 14: Grafik & mera händelsehantering
TDA 545: Objektorienterad programmering Föreläsning 14: Grafik & mera händelsehantering Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafik läs kap 17 Viktigt i denna föreläsning: att rita
Läs merOOMPA 2D1359 Föreläsning 3
OOMPA 2D1359 Föreläsning 3 Objektorienterad Modellering Programmering och Analys Objektorientering grunder-2 l Komponenter och beteende l CRC-kort Teknik för att beskriva och ta fram objekt, klasser och
Läs merFrivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02
Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 Denna laboration är frivillig och syftar till att låta dig lära mer om grafik i java. Labben är ganska grundlig och går igenom vad du skall
Läs merObjektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetition: Arv En subklass ärver alla variabler och metoder från sin superklass.
Läs merDI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Läs merProgramutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)
UMEÅ UNIVERSITET Institutionen för datavetenskap Thomas Johansson Oktober 1998 Programutveckling med Java Development Kit (JDK 1.1.x) och Programmers File Editor (PFE 7.02) Umeå universitet 901 87 Umeå.
Läs merGrundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 18 Igår: Genomgång av dugga Rekursion Idag och på måndag: Om essän Lite, lite teori om konstanter Grafiska användargränssnitt Grundläggande
Läs merObjektorienterad programmering
Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merRita Egna Bilder, Timer
Rita Egna Bilder, Timer Josef Svenningsson November 27, 2012 Grafik Varje gång ett fönster behöver ritas om, pga av att det flyttas eller varit övertäckt, anropas automatiskt en metod som har namnet paintcomponent.
Läs merHögskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
Läs merIngenjörsfirman Stéen 2001-12-13 Java Sida 1 av 1
Java Sida 1 av 1 Java Mål och Syfte Målet med denna kurs i Java är att du direkt efteråt ska kunna börja utveckla dina första Javaapplikationer. Kursen ger dig många konkreta exempel på hur detta effektiva
Läs merDOA GUI-del 1. Java och enkla grafiska gränssnitt. Kodexempel. Steg för steg 1. Skapa fönster. 1. Skapa fönster. 2. Skapa knapp
DOA GUI-del 1 Grafik och Interaktionsprogrammering Skapa fönster, rita och ta hand om inmatning i Java Java och enkla grafiska gränssnitt Då man konstruerar enkla grafiska gränssnitt kan man med fördel
Läs merGrafiska användargränssnitt i Java
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har
Läs merClasses och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Algoritmanalys, Ordo Sortering, Insertionsort
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merI rastergrafikens barndom...gjorde man grafik genom att skriva i ett videominne. Operationer på buffert och pixlar. Idag... Varför grafikkort?
Operationer på buffert och pixlar I rastergrafikens barndom......gjorde man grafik genom att skriva i ett videominne. Lapped textures Emil Praun et al., SIGGRAPH 2000. Gustav Taxén CID gustavt@nada.kth.se
Läs merObjektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit
Swing och AWT Objektorienterad programmering med Java Swing Sven-Olof Nyström Uppsala Universitet March 14, 2006 Skansholm: Kapitel 6 AWT = Abstract windowing toolkit använder värddatorns fönstersystem
Läs merLab5 för prgmedcl04 Grafik
Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna
Läs merFortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 AWT. Paket för hantering av grafik
Fortsättningskurs i programmering F 5 GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 1 Abstract Window Toolkit Paket för hantering av grafik dvs skapa grafisk användargränssnitt java.awt
Läs merExempel på användning av arv: Geometriska figurer
(9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014
Läs merGrafiska användargränssnitt i Java
jonas.kvarnstrom@liu.se 2017 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Till stor del ersatt av Swing: Mer omfattande,
Läs merDD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion
DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,
Läs merLabbinstruktioner för Java/Swing
Labbinstruktioner för Java/Swing Grafik- och interaktionsprogrammering 2008 Martin Berglund Allmänt Dessa instruktioner är på intet sett den enda möjliga lösningen på labben, tvärtom finns
Läs merFönstersystem. Objektorientering och händelsebaserad programmering. Applikation. Interaktionstoolkit. Händelsehanterare och grafiktoolkit
Objektorientering och händelsebaserad programmering Gustav Taxén gustavt@nada.kth.se Fönstersystem Applikation Interaktionstoolkit Händelsehanterare och grafiktoolkit Operativsystem Hårdvara 1 Frameworks
Läs merIn- och utenheter. Händelsebaserad programmering i GLUT. Interrupt-baserad interaktion. Sampling / polling. Händelsebaserad interaktion (forts.
Den första datormusen Douglas Englebart, 1968. programmering i GLUT Gustav Taxén CID gustavt@nada.kth.se In- och utenheter Alla datorsystem har in- och utenheter som behandlar information. Data skickas
Läs merClasses och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Läs merFÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Läs merEclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.
Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod
Läs merLektion Händelsehanterare
Lektion Händelsehanterare Händelsehanterare kallas även lyssnare. En lyssnare har som uppgift att ta hand om olika händelser som kan inträffa. För att lyssnaren skall reagera på händelser måste den registreras
Läs merTentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: 2:a september 200, klockan 8:30-12:30. Plats: V Ansvarig lärare: Katarina Blom, tel 772 10 0. Läraren besöker tentamen kl 9:30
Läs mer(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
Läs merVem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
Läs merObjektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015
Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora
Läs merJava-concept och Swing. Swing low, sweet chariot
Java-concept och Swing Swing low, sweet chariot Javas Swing-API En del av Javas standard-api API - application programming interface Ett klassbibiliotek som följer med Java Är designat med många OO-concept
Läs mer3.5 Visuell programmering
3.5 Visuell programmering Alla våra program hittills har varit C# Console Applications (sid 41) inkl. programmet MessageBox fast det genererade en grafisk meddelanderuta. Nu vill vi utnyttja grafikens
Läs merModelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modelsvar för Tentamen för Objektorienterad programvaruutveckling,
Läs merDigitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Läs merIdag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
Läs merJava: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas ("inbyggda monitor") synchronized.
2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Java: kort introduktion. Trådar. Något om mutex, Dekkers algoritm och monitorer. Javas ("inbyggda monitor") synchronized. previous next Java Java är konstruerat på
Läs merNetBeans 7. Avsikt. Projektfönster
NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till
Läs merArv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Läs merSwing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna
MER Java Foundation Classes (JFC) Swing Swing Många klasser Vettigt att lära sig dem utantill - Tror inte det -... men det kan vara bra att ha en liten överblick över vad som finns - Idag (och med fortsättning
Läs merKort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel
Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/
Läs merFöreläsning 10. ADT:er och datastrukturer
Föreläsning 10 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merDAT043 - föreläsning 8
DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns
Läs merProgrammering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Läs merFöreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Läs merEn introduktion till OpenGL. Gustav Taxén gustavt@csc.kth.se
En introduktion till OpenGL Gustav Taxén gustavt@csc.kth.se 2D164 Grafik och Interaktionsprogrammering VT 27 Labb 4 görs på PC! Följ det nya labbpeket - eller: Följ stegen i labbpeket för labb 5 för att
Läs merEDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Läs merKlassen javax.swing.timer
Klassen javax.swing.timer I Swing finns en klass Timer som man kan använda för att upprepa en vis kodsekvens med jämna tidsmellanrum. Ett objekt av klassen Timer exekveras som en egen tråd. Ett objekt
Läs mer2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Läs merRobin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se. Datorgrafik i spel
Robin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se Datorgrafik i spel 1 Sammanfattning Dator grafik kan delas in i fyra olika områden: information, design, simuleringar och
Läs merFöreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program
Föreläsning 1 Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Deitel: 1.1-1.9, 2.1-2.3 DA101A Programmering Programmering, DA101A Kursansvarig:
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merFöreläsning 3 sept 10 (Måndag v 37). DD Chapter 3.
Föreläsning 3 sept 10 (Måndag v 37). DD Chapter 3. Applikationer och s. Det finns två sorters java-program som används på olika sätt: Körning av applikation (vanliga, fristående program):...>java klass
Läs merFöreläsning 2. Operativsystem och programmering
Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data
Läs merGrafiska användargränssnitt i Java
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merMobila applikationer. Mobil applikationer. Java ME. Konfigurationer. Grunderna i ME
Johan Eliasson Tentan 12/1 9-12 i skrivsal 7 östra paviljongen (om de inte flyttat den till ngn annan lokal) Förklara begrepp Ex: Vad är en tråd? Vad gör en LayoutManager? Hur fungerar Observer-Observable
Läs merGran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)
Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8) I detta exempel kommer du att lära dig Att skapa en ny presentation från början Att skapa en enkel knapp Att använda händelseinställningar, events
Läs merDI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson
DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson Lösningar till TENTAMEN I IXC003 SYSTEMUTVECKLING MED INTERNET/INTRANET, del 1 (5p) för IT3 och INTERNETPROGRAMMERING MED JAVA
Läs merAvalanche Studios. OpenGL. Vår teknik. Våra spel. Lite inspiration... Stora, öppna spelvärldar. Sandbox-gameplay. Hög audiovisuell standard
OpenGL Avalanche Studios Sveriges ledande oberoende spelutvecklare Fokus på egenutvecklade IPn Finns på Söder i Stockholm ~6 anställda Just Cause för PS2, PC, XBox, och XBox 36 släpptes 26 Gustav Taxén
Läs mer