Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 8 mei 2014

Vergelijkbare documenten
Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 13 mei 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 6 mei 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 29 april 2014

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 15 mei 2014

Handleiding: Gebruikersinterface met Python

DOBBELSTEEN 2.0. Stap-voor-stap instructie

Handleiding Pivot docent Wendy Bruins versie 1.2 december 2008

Stroomschema s maken op papier

OEFENINGEN PYTHON REEKS 5

DE DEBUGGER GEBRUIKEN

Start GameMaker en open een nieuw spel (menu: Zorg ervoor dat GameMaker in Advanced Mode

Module 2: Wat is Scratch?

Het hele scherm besturen

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

De Sense HAT programmeren Je eerste computerprogramma

Arduino Zuid-Limburg Workshop 2

GEDETAILLEERDE INHOUD

Opdracht 1: Introductie Python

Roc Zadkine. Javascript SpaceGame. Door: K.Bakker versie 2.0

P O P Y T H O N P R O G R AMMER EN: G A N Z E N B O R D

PROGRAMMA'S SCHRIJVEN

LAAG: vwo-4 VAK: informatica PROGRAMMA

Bijlage Animation Shop 3

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

WORKSHOP ORANGE PI & PYTHON v september 2017

Handleiding Macromedia Contribute

Zelf een spel maken met GameMaker Les 3: Vijanden en levens

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Documentatie Nederlands v1

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Foto s en Videobewerking

ViSoft Premium. Nieuw in Update NIEUWE FUNCTIES. worden dan automatisch alle profielen vervangen en in 3D getoond.

LearnOSM. Onderzoek met behulp van veldformulieren. Overzicht van veldformulieren

Zelf een spel maken met GameMaker Les 1: Laat iets bewegen!

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Stappenplan Presentatie maken - 2

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014

Programmeermethoden NA. Week 5: Functies (vervolg)

Bijlage bij Kidspiration Getting Started Guide International English Edition Version 3

DrICTVoip.dll v 2.1 Informatie en handleiding

Stroomschema s maken op papier

Spanningdriver LEDVD5CH20A-V7 Real Time Clock met LCD scherm

Om snel een printopdracht te printen kun je gebruik maken van Mobiel Printen. Stuur de mail en bijlage(s) naar

PROGRAMMA Vak: informatica..

Handleiding voor Excel to Image

The Nanny Personeel. Lokaal inloggen

Auteur boek: Vera Lukassen Titel boek: Word Gevorderd , Serasta Uitgegeven in eigen beheer Eerste druk: augustus 2012

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

Les 4 Snake. Een hele kleine Sprite. 1) Zie Afbeelding 1. Klik met je rechtermuisknop op sprite1. Kies vervolgens verwijderen.

Foto s verkleinen en Foto s in elkaar over laten lopen

Game Maker: Avonturier en skelet

Dit kan gebruikt worden in zowel een ASP.NET web applicatie als een desktop applicatie.

Trippeltrap Content Management System

Stroomschema s maken in Word

Toetsvoorbereiding Informatica HAVO/VWO 5 (T51) Programmeren met Python II. Duur: 70 minuten Datum: sept 2018

Het ExTERM openingsscherm zal verschijnen en het programma opent. ExTERM Version 2.0 7/11/05

Hoe maak ik een App in GameSalad

TOPIC G: RECORD TOPIC G: RECORD TOPIC G: RECORD TOPIC G: RECORD 23/12/2010 MODULE D1; <* NOOPTIMIZE + *> <* NOOPTIMIZE + *>

Waarmaken van Leibniz s droom

TEKENEN MET PIVOT. Twee lessen om animatie s te maken met. het Pivot tekenprogramma

Handleiding bij de workshop Animatie in Microsoft PowerPoint Hoe maak je een animatie in Microsoft PowerPoint 2010? Handleiding voor kinderen

WELKOM BIJ UNICODING PROCESSING. Unicoding 1. Handleiding docent LES 1 DEEL A: Vormen, coördinaten en kleuren

Handleiding Opdrachtkaarten maken.

Zelf een spel maken met GameMaker. LES 1 Laat iets bewegen!

C M Y K C M Y K

Fiona: Internet explorer versie

TOOL. Dataportal JUL 14 / VERSIE

Tekenen met Floorplanner

TELEPORTEREN MET VARIABELEN

Aan de slag met de micro:bit!

Black Smoka. Dit Gaan we maken. Benodigdheden. *** 3 Plaatjes. *** Voorgemaakte achtergrond. *** Eye candy *** Filter /Simple

Programmeermethoden NA. Week 5: Functies (vervolg)

Handleiding gebruik Cascando OFML data in pcon.planner

ViSoft Premium Nieuws in update Nieuwe functies

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Programmeermethoden NA. Week 6: Lijsten

TIPS EN HINTS VOOR BEGINNERS. Klik nu in de Menu balk op het menu item ELEMENT. Onder het woord Element gaat er nu vervolgens nu een sub menu open

Dia, een programma voor het maken van diagrammen

Level ① Van A naar B Je leert...

SD1541-II Gebruikershandleiding

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

P O P Y T H O N P R O G R AMMER EN: G A N Z E N B O R D

Verder zijn er een aantal producten die je hierop kan aansluiten, hier zijn een aantal producten:

LES 4 & 5 GAMEMAKER4YOU

Handicom. Symbol for Windows. Image Manager. (Versie 4) Handicom, 2011, Nederland

Dealer instructie. SE serie 2008 versie 009

64 voor de BBC micro:bit

Opdracht 3: Baanintegratie: Planeet in een dubbelstersysteem

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica

HANDLEIDING Vectron Commander 6.xx

Welk programma gebruiken we? Om onze foto s te verkleinen gebruiken we het programma IrfanView. Het icoontje van IrfanView ziet er als volgt uit:

INSTRUCTIES DRM-ACTIVERINGSCODE WIP NAV PLUS / CONNECT NAV PLUS (RT6)

Roc Zadkine. Javascript Car. Door: K.Bakker versie 1.0

[13] Rondjes draaien (loops)

Het handboek van Vier op een rij

Objectgeoriënteerd Programmeren: WPO 2

In dit document worden de stappen behandeld, die gemaakt moeten worden om de basis voor de webkrant op te zetten.

Transcriptie:

Programmeren en Wetenschappelijk Rekenen in Python Wi1205AE, 8 mei 2014

Bijeenkomst 6 Onderwerp Tips met betrekking tot debuggen Animaties, simulaties en spellen Pygame: de basis 8 mei 2014 1

Algemene tips met betrekking tot debuggen Foutmeldingen: lees ze zorgvuldig, let op het type fout en het regelnummer (kijk niet alleen in de regel zelf maar ook in de regel daarvoor). Voeg printopdrachten in het te onderzoeken bestand toe om te kijken of het programma doet wat je wilt. Vraag in de shell de waarde van variabelen op om hun laatste waarde te onderzoeken. Simuleer in je hoofd of op papier de uitvoering van je programma. 8 mei 2014 2

Wetenswaardigheden over pygame Allerlei wetenswaardigheden over pygame zijn te vinden op de volgende website: http://pygame.org/news.html De documentatie is hier te vinden: http://pygame.org/docs/ Voeg de laatste pagina toe aan het Help menu in Idle (via Options ). 8 mei 2014 3

Structuur van een programma Vorm van een programma met pygame: import pygame as pg # Initialiseer pygame pg.init() # Definieer een paar kleuren black = (0,0,0) # RGB = red, green, blue white = (255,255,255).. # Sluit het scherm pg.quit() 8 mei 2014 4

Opmerkingen Als kleur = (x, y, z) dan 0 x, y, z 255 Voor kleurcodes kun je onder andere terecht op de volgende webpagina: http://www.helderester.nl/kleurentabel.html Crasht een pygame programma dan moet in de shell de opdracht: pg.quit() worden getypt. 8 mei 2014 5

Huishouding! Het is goed gebruik om de rij gebeurtenissen te legen. Gebeurt dat niet dan kan een programma erg traag worden door uitbundig gebruik van het computergeheugen. Dit doen we zo: # Schoon geheugen op pg.event.pump() We zullen later bespreken hoe we de rij gebeurtenissen kunnen gebruiken. Bijvoorbeeld om het scherm te sluiten of een reactie van het programma op een aanslag op het toetsenbord of een muisklik. 8 mei 2014 6

Het maken van een tekenscherm # Maak een scherm om op te tekenen xmax = 600 ymax = 600 reso = (xmax,ymax) scr = pg.display.set mode(reso) scr is nu van het type Surface, een pygame object. Zo n object bevat data van plaatjes, pixels met hun kleur. Ze kunnen zijn opgeslagen in het computergeheugen of worden getoond! 8 mei 2014 7

Coördinaten y loopt op van boven naar beneden! 8 mei 2014 8

Het laden van een plaatje Een plaatje wordt als volgt geladen: ufoimg = pg.image.load( UFO.gif ) ufogif = pg.transform.scale(ufogif,(101,59)) uforect = ufoimg.get rect( ) ufogif en ufoimg zijn van het type Surface en uforect is van het type Rect dat ook een object van pygame is. Surface en Rect zijn belangrijke objecten van pygame 8 mei 2014 9

Het object Surface Voorbeelden van van methoden (functies) 8 mei 2014 10

Het object Rect Data in het object (leden) De positie van een plaatje wordt als volgt aangegeven: # Positie van het object ufo xscr = xmax/2 yscr = ymax-int(float(i)/500. ymax) uforect.center = xscr, yscr 8 mei 2014 11

Blitting wat is dat? BLIT (BLock Image Transfer) staat voor bit-level block transfer en zorgt voor een laagdrempelig en daarom snel kopiëren van bitmaps. Dit gebeurt meestal door de videokaart van een computer. Door dit te gebruiken met plaatjes die een transparante achtergrond hebben kunnen ze op verschillende posities worden getekend (na het schoonmaken van het scherm). Hiermee wordt beweging gesimuleerd. 8 mei 2014 12

Er gebeurt niets totdat je flipt... Om het resultaat van een tekening of een plaatje vanuit het geheugen naar het scherm te kopiëren wordt de functie flip bij de module display gebruikt. # Plaatje is klaar, laat zien op scherm scr.display.flip( ) Wanneer een animatie wordt gemaakt moet deze opdracht in een loop worden opgenomen en wel na het maken van een tekening of een plaatje en het laden daarvan met de blit opdracht. 8 mei 2014 13

Dus: # Teken het plaatje scr.fill(bgcolor) scr.blit(ufoimg,uforect) scr.display.flip( ) # Maak het scherm schoon # Blit ufo op scherm # Plaatje klaar 8 mei 2014 14

De loop, timing 8 mei 2014 15

De loop waardoor een plaatje beweegt ziet er zo uit: # Start clock: get ticks is de tijd in ms., geheel getal t0 = pg.time.get ticks( )/1000. print Start loop # Loop tot ufo bovenaan scherm is while y < 100: pg.event.pump( ) # Bepaal tijdstap t =pg.time.get ticks( )/1000. dt = t t0 # Beweeg en laad een tekening of plaatje y = y + vy dt 8 mei 2014 16

Bewegende bitmaps Gebruik bestanden met als extensie gif of png met een transparante achtergrond. Gebruik bijvoorbeeld de gratis software paint.net of Irfanview Zie: http://www.getpaint.net/index.html en http://www.irfanview.com/ 8 mei 2014 17

Het toetsenbord gebruiken Zo kan het: while running == True: pg.event.pump( ) # Schoon geheugen op keys = pg.key.get pressed( ) # Benader toetsenbord if keys[pg.k LEFT]: x = max(x vx dt, 0.0) if keys[pg.k RIGHT]: x = max(x + vx dt, 100.0) if keys[pg.k ESCAPE]: running == False 8 mei 2014 18

Weerstand D x D = V x V D x = D V V x en D y D = V y V D y = D V V y De weerstandskracht is tegengesteld aan de snelheid, let op het min-teken! 8 mei 2014 19

Ballistisch probleem Als v = [ vx v y ] en C = ρ 2 C D A dan is de grootte van de weerstandskracht C v 2. [ ] e = 1 vx is de eenheidsvector in de richting van de v snelheid. v y Maar dan is C v 2 e = C v [ vx v y ] de weerstandskracht. 8 mei 2014 20

Jacco Hoekstra: Programming and Scientific Computing in Python (Version 3.10), Artikelnummer: 0691770043. David C. Lay: Linear Algebra and Its Applications (fourth edition), Pearson (2013), ISBN-13: 978-1-292-02055-6. James Stewart: Calculus, Early Transcedentals (seventh edition), Cengage Learning (2012), ISBN-13: 978-0-538-49887-6. C.Vuik, P. van Beek, F. Vermolen en J.van Kan: Numerical Methods for Ordinary Differential Equations, VSSD (2007), ISBN-13: ISBN 978-90-6562-156-6. 8 mei 2014 20