Visualisering av Linjära Avbildningar i Linjär Algebra
Full text
(2) LiU-ITN-TEK-A--10/005--SE. Visualisering av Linjära Avbildningar i Linjär Algebra Examensarbete utfört i medieteknik vid Tekniska Högskolan vid Linköpings universitet. Edin Katardzic Handledare George Baravdish Examinator George Baravdish Norrköping 2010-01-15.
(3) Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/. © Edin Katardzic.
(4) Abstract This master thesis has been done at Campus Norrköping, the University of Linköping. The thesis is part of collaboration between the University of Linköping, Royal Institute of Technology and Math.se. The aim of the collaboration is to provide a web-‐support homepage for the course Linear Algebra. Through the years a need for improving the way students learn the theory behind the course has been desired. This is due to the fact that it has been hard to teach something that is three-‐ dimensional (or more) on a two-‐dimensional blackboard or paper. The purpose of the master thesis was to develop the base for a product that will help students to increase their understanding in linear algebra. In an interactive way should the program visualize those difficult to teach in a classroom moments, on the computer screen. The product should be able to both teach and test the knowledge of the students. The application should be a part of the web-‐support homepage so that it can be run directly from the homepage while students are solving the exercises there. Therefore it was crucial that the application would support all leading computer platforms and Internet browsers. Most important was that the product would be educational and easy to use. The result of the master thesis are nine applications, one for every moment that has been applied, that uses computer graphics to educate students using examples and exercises. The applications are executed directly on the webpage using Java Web Start. . 1 .
(5) Sammanfattning Detta examensarbete har genomförts på Campus Norrköping, Linköpings Universitet. Arbetet är en del av ett samarbete mellan Linköpings Universitet, Kungliga Tekniska Högskolan och Math.se. Målet med samarbetet är att skapa och underhålla en hemsida för webbstöd i kursen Linjär Algebra. Genom åren har det upptäckts att det finns en problematik i många studenters inlärning av kursens teori. Detta beror på att det är svårt att undervisa något som berör fler än två dimensioner på en tvådimensionell tavla eller papper. Examensarbetets syfte var att utveckla grunden för en produkt som hjälper till att öka förståelsen hos studenter som läser linjär algebra. Produkten skulle på ett interaktivt sätt visualisera på datorskärmen de moment i kursen som kan vara svåra att undervisa i ett klassrum. Vidare skulle produkten både lära ut och testa studenters kunskap. Programmet skulle finnas och startas från hemsidan för kursens webbstöd så att det kan startas parallellt med att studenter löser uppgifterna på sidan. Det var också krav på att programmet skulle fungera på alla stora operativsystem och webbläsare. Framförallt var det viktigt att produkten skulle vara lättanvänd och fungera pedagogiskt. Resultatet av examensarbetet är nio applikationer, en för varje moment som har tillämpats, som via datorgrafik underlättar undervisningen genom pedagogiskt förklarande och uppgifter. Programmen startas direkt på hemsidan via Java Web Start. . 2 .
(6) . . 3 .
(7) Förord Under hösten 2009 och vintern 2010 genomförde jag mitt examensarbete som är avslutningsfasen för min utbildning till civilingenjör i Medieteknik vid Campus Norrköping, Linköpings Universitet. Denna rapport är resultatet av mitt arbete. Edin Katardzic 2010-‐01-‐11 . 4 .
(8) 5 .
(9) Innehållsförteckning INNEHÅLLSFÖRTECKNING............................................................................................................6 FIGURFÖRTECKNING......................................................................................................................8 TABELLFÖRTECKNING...................................................................................................................8 1 INLEDNING .................................................................................................................................. 10 1.1 BAKGRUND ................................................................................................................................................10 1.2 SYFTE .........................................................................................................................................................10 1.3 PROBLEMFORMULERING OCH MÅL .......................................................................................................10 1.4 AVGRÄNSNINGAR .....................................................................................................................................11 1.5 NYCKELPERSONER I ARBETET ...............................................................................................................11 1.6 FÖRKORTNINGAR .....................................................................................................................................11 1.7 RAPPORTENS SYFTE OCH MÅL ...............................................................................................................11 1.8 DISPOSITION .............................................................................................................................................11 2 BAKGRUND.................................................................................................................................. 14 2.1 LINJÄR ALGEBRA ......................................................................................................................................14 2.2 LINJÄRA AVBILDNINGAR .........................................................................................................................14 2.3 UTVECKLINGSMETODEN .........................................................................................................................16 2.4 ANVÄNDBARHET ......................................................................................................................................17 3 TEKNISK BAKGRUND ............................................................................................................... 20 3.1 OPENGL.....................................................................................................................................................20 3.2 JAVA ............................................................................................................................................................20 3.3 JOGL...........................................................................................................................................................21 3.4 JAVA APPLET .............................................................................................................................................21 3.5 NETBEANS ................................................................................................................................................21 3.6 JAR .............................................................................................................................................................22 3.7 JAVA WEB START .....................................................................................................................................22 3.8 JAVA OCH MACINTOSH ............................................................................................................................24 4 GENOMFÖRANDE ...................................................................................................................... 26 4.1 PLANERING ...............................................................................................................................................26 4.2 FÖRARBETE ...............................................................................................................................................26 4.3 ÖNSKAT RESULTAT ..................................................................................................................................27 4.4 PROTOTYPER ............................................................................................................................................27 4.5 PROBLEM ...................................................................................................................................................28 4.6 PUBLICERING ............................................................................................................................................30 4.7 FEEDBACK PÅ BETAVERSIONEN ............................................................................................................30 4.8 FÖRBEREDELSER FÖR VIDAREUTVECKLING ........................................................................................30 5 RESULTAT.................................................................................................................................... 32 5.1 PRODUKTEN ..............................................................................................................................................32 5.2 UTFORMNING OCH DESIGN .....................................................................................................................32 5.3 APPLIKATIONER .......................................................................................................................................34 5.4 ICKE UPPNÅDDA MÅL ..............................................................................................................................39 6 SLUTSATS OCH DISKUSSION.................................................................................................. 41 6.1 SLUTSATSER MED AVSEENDE PÅ PROBLEMFORMULERING ..............................................................41 6.2 VARFÖR JOGL? ........................................................................................................................................41 6.3 DISKUSSION AV DESIGNVALET ...............................................................................................................42 6.4 PROTOTYPARBETE ...................................................................................................................................42 . 6 .
(10) 6.5 IDÉER OCH FÖRSLAG PÅ VIDAREUTVECKLING AV PROGRAMMET ....................................................42 7 REFERENSER............................................................................................................................... 45 7.1 PUBLICERADE REFERENSER ...................................................................................................................45 7.2 MUNTLIGA REFERENSER ........................................................................................................................45 8 APPENDIX A – BILAGOR .......................................................................................................... 47 KOD 4.1.............................................................................................................................................................47 . . 7 .
(11) Figurförteckning Figur 2.1: Projektion exempel………………………………………………………………………………..10 Figur 2.2: Spegling exempel……………………………………………………………………………………11 Figur 2.3: Vattenfallsmodellen……………………………………………………………………………….12 Figur 3.1: ”OpenGL visualization programming pipeline”……………………………………….15 Figur 3.2: JNLP exempel…………………………………………………………………………………………18 Figur 4.1: Java applet linjär algebra exempel………………………………………………………….22 Figur 4.2: Prototyp exempel…………………………………………………………………………………..23 Figur 5.1: Applikationen Ortogonal Projektion……………………………………………………….27 Figur 5.2: Knappar för kameramanipulering…………………………………………………………..28 Figur 5.3: Applikationens meny……………………………………………………………………………..28 Figur 5.4: Applikationens hjälpavsnitt……………………………………………………………………29 Figur 5.5: Introduktion till Projektion…………………………………………………………………….32 Figur 5.6: Ortogonal Projektion…………………………………………………………..………………..33 Figur 5.7: Matris Projektion………………………………………………………….…………….…...……33 Figur 5.8: Nollrum och Värderum med Projektion…………………….…….…………………….34 Figur 5.9: Projektion med Basbyte………………………………………………………………………..35 Figur 5.10: Interaktiv Introduktion till Spegling………………………………….………………….35 Figur 5.11: Matris Spegling………………………………………………………..………………………….36 Figur 5.12: Nollrum och Värderum med Spegling……………….…………………………………36 Figur 5.13: Spegling med Basbyte……………………………………….………………………………..37 . Tabellförteckning . Tabell 1.1: Förkortningar………………………………………………………………………………...........7 . 8 .
(12) . 9 .
(13) 1 Inledning I detta kapitel klargörs ämnet som rapporten handlar om samt syftet med projektet och dess mål. . 1.1 Bakgrund Denna rapport förklarar hur ett projekt utarbetades och genomfördes. Projektet är en del av ett examensarbete som genomfördes på institutionen ITN på Campus Norrköping, Linköpings Universitet. George Baravdish (universitetslektor) och Owe Kågesten (universitetsadjunkt) har en lång erfarenhet av undervisning på civilingenjörsprogrammen. För några år sen började de fundera på hur den nya tekniken med Internet kan komma till nytta för studenterna i undervisningen. En kurs som de tänkte på var linjär algebra som har en hög abstraktionsnivå och som kommer tidigt in i en ingenjörsutbildning. Dessutom kräver ämnet att man tänker på och jobbar med objekt i det åskådliga rummet. Detta är inte alltid lätt när man ska illustrera och rita på en tvådimensionell tavla. De inledde ett samarbete med KTH och Math.se (Sveriges universitets matematikportal)1 som 2008 resulterade i ett webbstöd i linjär algebra.2 Detta stöd på nätet innehåller kurslitteraturen, övningar, tips och lösningsförslag till dessa samt reflektionsuppgifter. År 2009 fick de ett CUL projekt beviljat om att utveckla den pedagogiska och tekniska designen av detta webbstöd till en nätkurs. Som en del av detta projekt bestämde man sig för att anta en examensarbetare som skulle undersöka möjligheten att med hjälp av datorgrafik illustrera kapitlet om linjära avbildningar i kursen och därmed utveckla webbstödet.. 1.2 Syfte Syftet med examensarbetet är att dels med hjälp av datorgrafik pedagogiskt illustrera och visualisera linjär algebra samt att det blir tillgängligt för studenter genom webben. Genom att använda datorn skall studenter även kunna genomföra teoretiska övningar på ett interaktivt sätt samtidigt som de löser uppgifter praktiskt ur kursboken. . 1.3 Problemformulering och mål Kan man tillverka en produkt som fångar studenternas intresse och som på ett pedagogiskt sätt utvecklar deras kunskap i linjär algebra direkt via en hemsida på internet? Den slutgiltiga produkten skall vara lättåtkomlig och lätt att använda för alla studenter som studerar linjär algebra vid Linköpings Universitet. Produkten skall på ett pedagogiskt sätt öka förståelsen i de moment som kan vara svåra att undervisa med traditionella metoder, såsom att skriva och rita på tavlan. . 1 http://www.math.se/ 2 http://wiki.math.se/wikis/samverkan/linalg-LIU/index.php/Huvudsida . 10 .
(14) 1.4 Avgränsningar Eftersom projektet genomfördes av en person under en begränsad tid bestämdes primära mål som skulle vara uppfyllda och några sekundära mål som skulle genomföras i mån av tid. Alla primära mål uppfylldes och endast ett sekundärt uteblev. En annan faktor som kan ha påverkat projektets arbetsgång var att detta var en ny situation för alla inblandade och det var från början inte klart vilka mål som skulle uppfyllas. De uppsatta målen bestämdes i samråd mellan examinatorer, handledare och examensarbetaren. . 1.5 Nyckelpersoner i arbetet De personer som har varit till stor hjälp under hela projektet är George Baravdish (examinator, handledare inom matematik), Sasan Gooran (teknisk handledare) och Owe Kågesten (handledare inom matematik). Dessutom har både äldre studenter och de som fortfarande läser linjär algebra användartestat programmet och gett sina synpunkter. . 1.6 Förkortningar . Tabell 1.1 visar alla tekniska förkortningar som används i rapporten. Förkortning . Betydelse . API JNLP OpenGL JOGL JAR XML . Application Programming Interface Java Network Launching Protocol Open Graphics Library Java Open Graphics Library Java Archive Extensible Markup Language . Tabell 1.1. Tabellen visar de tekniska förkortningarna som används i rapporten och vad de står för. . 1.7 Rapportens syfte och mål Efter att ha läst denna rapport skall framtidens examensarbetare vars uppgift blir att utöka och förbättra programmet ha god förståelse för vad som har gjorts så att de vet var de ska starta och fortsätta med arbetet. . 1.8 Disposition . En kortfattad förklaring av vad varje kapitel handlar om. Kapitel 1: Inledning – I detta kapitel introduceras examensarbetets bakgrund, problemformulering och målet med denna rapport. Kapitel 2: Bakgrund – I detta kapitel presenteras den teoretiska delen av examensarbetet som kursen Linjär Algebra och metoden som används för att genomgöra projektet. Kapitel 3: Teknisk Bakgrund – I detta kapitel ges förklaringar kring projektets tekniska del som vilka programvaror och programmeringsspråk används. . 11 .
(15) Kapitel 4: Genomförande – I detta kapitel redovisas allt från projektets planering och testarnas feedback under produktionen till dess slutfas och problem som uppstått. Kapitel 5: Resultat – I detta kapitel presenteras produkten, dess design och feedback på den slutgiltiga versionen. Kapitel 6: Slutsats och diskussion – Här besvaras rapportens problemformulering och förslag ges till hur produkten kan förbättras i framtiden. . 12 .
(16) . 13 .
(17) 2 Bakgrund I detta kapitel introduceras teorin i examensarbetet, en kort presentation för matematiken och utvecklingsmetoden som användes för att genomföra projektet. . 2.1 Linjär algebra Alla som utbildar sig till civilingenjör idag läser Linjär Algebra. Kursen tillhör den del av matematiken som berör begrepp som vektorer och plan i ett godtyckligt antal dimensioner. För att visualisera arbetet används två eller tre dimensioner men matematiskt går det att arbeta i oändligt antal dimensioner. Med en vektor menas ett objekt med längd eller storlek och en riktning. Vektorer illustreras oftast med linjesegment i två eller tre dimensioner och kan användas till att representera fysiska enheter som krafter. Det är möjligt att addera vektorer med varandra och multiplicera dem med konstanter. Plan är ett tvådimensionellt objekt som spänns upp av två icke parallella vektorer. Dessa åskådliggörs bäst i tredimensionella rum med en viss position och lutning. Följande är ett utdrag ur studiehandboken för kursen Linjär Algebra i Linköpings Universitet: Mål: Att ge sammanhållen begreppsram för geometrisk och algebraisk teknik med tillämpningar inom analys, datorgrafik, elektroteknik, reglerteknik, linjär optimering m fl. ämnen. Vidare ingår att utveckla förmågan att använda det matematiska språket, skriftligt och muntligt. Därför är det nödvändigt för deltagaren att kunna • • • • • • • • • • • •. lösa ekvationssystem arbeta med skalärprodukt och vektorprodukt för geometriska vektorer räkna med matriser och determinanter räkna med vektorer och koordinater i ett vektorrum bestämma matrisen för en linjär avbildning samt beräkna nollrum och vektorrum bestämma ON-‐baser i euklidiska rum projicera ortogonalt på underrum och använda minstakvadrat-‐metoden använda basbyte för att lösa problem bestämma och använda egenvärden och egenvektorer i olika problem använda spektralsatsen i olika situationer bestämma kanoniska baser till kvadratiska former och utnyttja detta för att lösa geometriska problem utvärdera resultat och delresultat, för att verifiera att dessa är korrekta eller rimliga . 2.2 Linjära avbildningar Examensarbetet fokuserar på kapitlet Linjära Avbildningar. Betoningen ligger på de moment som kan vara problematiska att undervisa med vanliga metoder, såsom vektorprojektion och spegling med avseende på plan i det tredimensionella rummet. 14 .
(18) Begrepp som nollrum, vektorrum, basbyte och matrisframställning för projektion och spegling tas upp. Här nedan presenteras definitionen av linjära avbildningar, hämtat från universitets webbstöd för kursen Linjär Algebra: Definition 16.3. Låt V, W vara vektorrum och F : V → W en avbildning från V till W . Vi säger att F är en linjä̈r avbildning om 1. F är additiv: . f(u+v)=F(u)+F(v). . 2. F är homogen: . F(λu) = λF(u), λ ∈ R. . En ortogonal projektion av en vektor på ett plan är närmaste vektorn i planet. En tolkning kan ses som skuggan av vektorn i planet om man tänker sig att man lyser på vektorn från normalens spets. I Figur 2.1 illustreras ett enkelt exempel av en projektion. . Figur 2.1. Figuren visar ortogonal projektionen P(u) av vektorn u på ett plan med normalen n. När en vektor speglas i ett plan är resultatet en ny lika lång vektor på andra sidan av planet med samma öppningsvinkel som den ursprungliga vektorn. Figur 2.2 nedan illustrerar ett exempel på spegling. . 15 .
(19) Figur 2.2. Figuren visar speglingen S(u) av vektorn u på ett plan med normalen n. Om en vektor avbildas på nollvektorn under en linjär avbildning F, brukar man säga att vektorn ligger i F:s nollrum. I fallet F är ortogonal projektion så kommer vektorer som är vinkelräta mot planet att projiceras på nollvektorn. En sådan vektor är normalen till planet. Alla vektorer som är bilden av en urbild under F ligger i värderummet. Om F är en projektion så sammanfaller värderummet med planet eftersom alla vektorer projiceras på planet. Definitionen nedan är citerad från kurslitteraturen som finns på hemsidan för webbstödet i kursen Linjär Algebra. Definition 16.36. Låt F : V → W vara en linjär avbildning. 1. Nollrummet till F definierar vi som mängden av alla u ∈ V som avbildas på nollvektorn, dvs F (u) = 0. Nollrummet betecknas med N (F). 2. Värderummet till F definierar vi som mängden av alla bilder v ∈ W, dvs v = F (u) för något u ∈ V . Värderummet betecknas med V (F). . 2.3 Utvecklingsmetoden Man brukar tala om fyra vanliga systemutvecklingsmetoder då man utvecklar ett system. Dessa fyra är Vattenfallsmodellen, Spiralmodellen, SCRUM och Iterativ systemutveckling. Metoden som används i detta examensarbete är en modifierad version av vattenfallsmodellen. Nedan följer en förklaring av vattenfallsmodellen och de ändringar som gjordes för att den skulle passa detta projekt. . 16 .
(20) Figur 2.3. Figuren illustrerar de olika stegen som vattenfallsmodellen består av. Kravfasen är det första steget som görs upp mellan projektledare och utvecklare. Krav kan också fungera som ett kontrakt mellan dessa. Modellen som används under detta examensarbete har även en analysfas innan kravfasen. Detta beror på att man först vill undersöka om det redan finns produkter med samma mål på internet innan man bestämmer kraven för projektet. I designfasen bestäms oftast användargränssnittet för produkten. Det går även att flytta detta steg till efter implementeringsfasen men detta kan försvåra arbetet då, det är till exempel lättare att programmera när man vet hur slutprodukten ska fungera och inte bara vilka funktioner som skall finnas tillgängliga. Modellen som används för detta projekt har implementeringsfasen efter att användargränssnittet har bestämts. All kod implementeras i denna fas och produkten är redo att testas. Här skiljer sig modellen lite från den typiska vattenfallsmodellen. Eftersom det är flera applikationer som tillverkas beroende på kapitel och övning i boken, testas en del medan vissa inte är påbörjade. Utifrån den feedback som uppstår kan både framtida och tidigare testade applikationer komma att modifieras. Därför kan man säga att testfasen på sätt och vis ligger under hela förloppet. Slutligen utbildas de som ska ansvara för programmet, i detta fall examinatorn, i hur det underhålls. Vi valde denna metod för att den passar vårat arbetsgång med prototyper väldigt bra. . 2.4 Användbarhet En av de viktigaste faktorerna för produkten är användbarhet. Applikationen skall vara lätt att förstå och vara lättåtkomlig för alla studenter så att den underlättar inlärningen av kursen. Normalt delas användbarhet upp i sex delar. a. b. c. d.. Utför systemet det som användaren vill. Hur lätt är det för en användare att lära sig systemet? Är det lätt att förstå sig på vad systemet gör? Anser regelbundna användare att systemet är effektivt? . 17 .
(21) e. Är systemet lätt att komma ihåg även för användare som inte använder det regelbundet? f. Tillfredställer systemet användarnas behov? Dessa punkter kan även användas vid utvärdering av programmet. Systemets effektivitet avgörs av hur höga betyg det får i de olika delarna. Enligt3 bör delarna ovan prioriteras olika mycket beroende på syftet med systemet. Den huvudsakliga uppgiften för programmet som utvecklas i detta examensarbete är att öka studenternas förståelse på ett pedagogiskt sätt. Så de viktigaste punkterna i detta fall är a, c och f. Genom att låta den tänkta målgruppen testa systemet kan man avgöra hur hög användbarhet det har. Detta är en viktig del för projektet i detta examensarbete då feedback från både lärare och studenter avgör om programmet måste vidareutvecklas eller om det uppfyller alla krav på funktionalitet. . 3 Intellectual Property Management. Junghans, Claas och Adam, Levy. u.o. : Wiley-‐. VCH, 2006. ISBN:3-‐ 527-‐32186-‐2 . 18 .
(22) . 19 .
(23) 3 Teknisk bakgrund I detta kapitel ges det korta förklaringar på de tekniska delarna som ingår i genomförandet av examensarbetet. . 3.1 OpenGL OpenGL (Open Graphics Library) är en utvecklingsmiljö för att skapa plattformsoberoende applikationer med hjälp av datorgrafik. Med dess breda samling av funktioner för rendering, texturmappning, specialeffektsverktyg och andra verktyg för tillämpning av olika typer av visualisering är OpenGL ett utmärkt val för att arbeta med grafik i två eller tre dimensioner. OpenGL grundades år 1992 av OpenGL Architecture Review Board, ett antal företag vars intresse är att hålla gränssnittet tillgängligt för allmänheten4. Sedan dess har OpenGL flitigt använts inom bland annat dataspelsbranschen, vetenskaplig visualisering, CAD och virtuell verklighet. Språk som C++, C, Java, ADA, Fortran, Python, och Perl har fullt stöd för OpenGL och gränssnittet kan användas på alla stora operativsystem som till exempel Mac OS, Windows, Unix, Linux, OPENStep och BeOS. Arbetet sker direkt mot grafikkortet och utvecklaren får tillgång till funktioner som modelltransformationer, ljussättning, texturhantering, anti-‐aliasing, blending, olika geometriska objekt och en rad andra verktyg. Figur 3.1 nedan är hämtad från officiella OpenGL hemsidan5 och illustrerar på ett väldigt förenklat sätt hur OpenGL fungerar i praktiken. . Figur 3.1. Enkel illustration över OpenGL pipelinen. . 3.2 Java Java är ett objektorienterat programmeringsspråk som används av över 6,5 miljoner utvecklare världen över. Språket utvecklades av Sun Microsystems under åren 1991-‐ 19956. Styrkan med Java är att det är plattformsoberoende. Ett program skrivet i 4 http://sv.wikipedia.org/wiki/OpenGL 5 http://www.opengl.org . 6 http://www.java.com/sv . 20 .
(24) Java kan köras på alla datorer oavsett operativsystem. Programmeringsspråket Java innehåller två stycken API kallade Swing och AWT. Dessa bidrar med bland annat färdiga komponenter som knappar, fönster och menyer, vilket leder till att ett Java program kommer att se likadant ut på alla plattformar. Andra kraftfulla fördelar med Java är att man kan skriva program som körs direkt i webbläsaren (Java Applets), utveckla till digitala apparater såsom mobiltelefoner samt en hel del tillämpningar på serversidan som är används i internet–forum, -‐ butiker, -‐omröstningar, html-‐formulär och annat. Följande information är hämtat från Javas officiella hemsida: Java driver mer än 4,5 miljarder enheter inklusive: • över 800 miljoner datorer • 2,1 miljarder mobiltelefoner och andra handhållna apparater (källa: Ovum) • 3,5 miljarder smarta kort • Digitala avkodare, skrivare, webbkameror, spel, bilnavigeringssystem, lotteriterminaler, medicinsk apparatur, parkeringsautomater med mera. . 3.3 JOGL Java Open Graphics Library (JOGL) är ett bibliotek som tillåter användning av OpenGL inom Java programmering. Med JOGL kan användaren utnyttja de flesta egenskaperna hos OpenGL programmering som finns i programmeringsspråken C och C++ samtidigt som man kan dra nytta av kraften i Java programmering. Resultatet blir möjligheten att jobba med 3D-‐grafik genom direkt programmering mot grafikkortet och fullt stöd för Javas egna fönstersystem via Swing och AWT7. . 3.4 Java applet Java applet är ett program skrivet i Java och som körs direkt via en webbläsare. Fördelen med denna typ av program är att det aldrig behöver laddas ner och kan därför inte heller vara skadligt för datorn på något sätt. Programmet kan köras på alla datorer som har en webbläsare installerad vilket gör det väldigt lättåtkomligt. En applet kan inte sätta upp nätverksuppkopplingar till någon annan dator än den som appleten exekveras ifrån. Nackdelen med appletprogram är att all säkerhet gör att de även blir mycket mer begränsade. . 3.5 NetBeans NetBeans är en utvecklingsmiljö med verktyg för att skapa applikationer för webben, mobiler och andra datorprogram. Även om programmets styrka ligger i utveckling av Javaprogram och PHP-‐skript stödjer det programmeringsspråk som C/C++, Java-‐ skript, Groovy, Ruby och självklart Java och PHP8. NetBeans stödjer de flesta 7 http://kenai.com/projects/jogl/pages/Home 8 http://netbeans.org . 21 .
(25) plattformar som Windows, Mac OS X och Solaris. Programmet finns att ladda ned gratis från Suns hemsida9 och NetBeans officiella sida. Programmet ändvänds för utveckling av produkten i detta examensarbete på grund av dess effektiva stöd för utveckling av portabla Java applikationer. . 3.6 JAR Java Archieve (JAR) är ett komprimeringsverktyg baserat på ZIP formatet. Med detta menas förenklat att man kan komprimera och kombinera flera filer till en enda. Detta är ett väldigt kraftfullt verktyg då man till exempel vill dela med sig av något via e-‐post eller på en webbsida som innehåller många filer. JAR är framförallt designat för ”paketering” av Java applikationer och Java applets. Detta är väldigt eftersträvat då ett Java program ska skickas vidare eller läggas upp på Internet. Ett sådant program kan innehålla väldigt många filer som är nödvändiga för att det skall fungera korrekt eller överhuvudtaget startas. Exempel på filer är klassfiler, bilder och ljud. Det skulle vara väldigt besvärligt att ladda ned alla dessa en i taget. Vidare går det även att ha andra jar-‐filer i en jar-‐fil och bestämma vilka filer som skall exekveras då användaren dubbelklickar på jar-‐filen. Detta leder till att användaren inte behöver packa upp alla filer som är nödvändiga för att starta en applikation som ligger i en jar-‐fil utan kan smidigt starta programmet genom att dubbelklicka på jar-‐filen10. . 3.7 Java Web Start Ibland kan det vara önskvärt att distribuera en Java applikation genom att ha det på en webbsida men inte som en java applet. Då kan det uppstå problem om hela programmet ligger i en jar-‐fil eftersom alla nödvändiga filer kanske inte finns med. Det är här Java Web Start kommer in i bilden. Med Java Web Start kan användaren starta applikationen genom ett enkelt klick direkt via webbläsaren, inga installationer behöver göras. Nyckeln ligger i att en relativt enkel XML (eXtensible Markup Language) fil som kallas Java Network Launch Protocol (JNLP) måste skapas av distributören. I denna fil anges instruktionerna för Java Web Start för var den ska hämta alla nödvändiga filer och hur programmet ska startas. En typisk JNLP fil kan se ut som i Figur 3.2 nedan. Koden är hämtat från Suns officiella hemsida. . 9 http://java.sun.com/javase/downloads/index_jdk5.jsp 10 http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html . 22 .
(26) Figur 3.2. En typisk jnlp-‐fil. Här förklaras kortfattat filens viktigaste rader som går att konfigurera. Inne i taggen codebase skall adressen till platsen där distributören laddar upp alla sina filer och mappar anges. Vidare i href anges adressen till själva jnlp-‐filen. I title skrivs applikationens namn. Vendor är en icke-‐obligatorisk tagg och här anges tillverkarens namn. I taggen homepage href anges eventuellt adressen till applikationens hemsida. I discription och description kind beskrivs applikationen men detta är inte heller obligatoriskt. I icon taggarna anger man adressen till en bild som man vill använda som ikon för programmet. Även detta är valbart. Offline Allowed anger om programmet får användas när användaren inte är uppkopplad mot internet och inställningar för eventuella uppdateringar då ny version av programmet laddas upp. I security bestäms vilka rättigheter programmet ska ha på datorn som startar det. Här går det att ställa in så att applikationen blir lika begränsad som en vanlig java applet. I taggen resources anges adressen till alla filer, bibliotek och systeminställningar som är nödvändiga för att programmet ska exekvera. Application-‐desc main class anger . 23 .
(27) att JNLP filen startar en applikation och inte en java applet. Här anges sökvägen till programmets huvudklass11. Här är ytterligare fördelar med att använda Java Web Start hämtat direkt ur officiella dokumentationen12: • •. • •. • • •. En applikation kan ligga på vilken server som helst och köras oberoende av plattform. Även om användaren inte har den versionen av Java som behövs för att exekveringen ska ske, kommer applikationen automatiskt att ladda ner den versionen som behövs och därefter starta. Användaren kan skapa genvägar på skrivbordet och starta applikationen utan att behöva öppna webbläsaren. Eftersom användaren har full kontroll över vad som programmet tillåts att göra, via internet inställningar för java på datorn, är säkerheten väldigt hög även hos applikationer från osäkra platser. Java Web Start kör program lokalt från datorn vilket ökar dess prestanda. Om programmet körs från användarens dator kommer de senaste uppdateringarna automatiskt att laddas ner om sådana existerar. Användaren behöver inte vid något tillfälle varken uppdatera eller installera Java Web Start för att använda det. . Självklart finns det även nackdelar med att använda Java Web Start. Till att börja med så måste Java finnas installerat på datorn för att programmet ska kunna exekveras. Här är några av nackdelar som det talas om i Java Web Start-‐Wikipedia13: • • •. Utvecklaren måste signera med certifikat alla jar-‐filer som används av JNLP. Jnlp-‐filen laddas alltid ned temporärt på datorn när applikationen körs vilket kan uppfattas märkligt då programmet körs via en webbläsare. Support för 64 bitars Windows lades till först i Java 6. . 3.8 Java och Macintosh Java miljön finns installerat på alla Mac OS X operativsystem. Det finns både för och nackdelar med detta. Fördelen är att man inte behöver ladda ner något extra för att ta del av allt som kräver Java. Nackdelen är att Java som finns implementerat på Mac OS kommer från Apple själva medan de övriga versionerna som laddas ned till Windows, Linux och Solaris släpps från skaparna, Sun Microsystems. Detta leder till att Mac-‐versionen av Java ofta ligger lite efter de övriga operativsystemen. Uppdateringar släpps något senare vilket kan ställa till med problem om en tillämpning kräver den senaste versionen. 11 . http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/syntax.ht ml 12 http://java.sun.com/docs/books/tutorial/deployment/webstart/index.html 13 http://en.wikipedia.org/wiki/Java_Web_Start -‐ cite_note-‐win64-‐2 24 .
(28) . 25 .
Outline
Related documents
För att få poäng bör hemuppgifterna inlämnas senast tisdagen den
L˚ at matrisen A vara en
Trots att "punkt" och "vektor" är två olika begrepp, beräknar vi formellt bilden av en punkt på samma sätt som bilden av tillhörande
Motsvarande relation för koordinatvektorer i basen B1 resp.. (Se två föregående uppgifter
• Ange omslagsbladet klasstillhörighet : Klass A, Klass B eller Klass C eller Omregistrerad för enklare sortering. • Denna tentamenslapp får ej behållas utan lämnas in
Bestäm pyramidens höjd från punkten D (till basen ABC). b) (2p) Låt Π vara planet som går genom punkten D parallell med sidan (dvs basen) ABC. Bestäm eventuella
Kalla sökta punkten
För vilket värde på parameter a har nedanstående system (med avseende på x, y och z) oändligt många lösningar.. Lös systemet för detta värde