Crash course i Programmering. HumTek, RUC

Relaterede dokumenter
Crash Course i Programmering. HumTek, RUC

Crash Course i Programmering. HumTek, RUC

Grafikprogrammering i mat. og teknologi uv. Louis Køhrsen

Penge Noget af det bedste software til kreativ kodning er freeware

Matematik C. Cirkler. Skrevet af Jacob Larsen 3.år HTX Slagelse Udgivet i samarbejde med Martin Gyde Poulsen 3.år HTX Slagelse.

Opgaver om koordinater

PHOTOSHOP - BILLEDREDIGERING

Mastercam Øvelsesvejledning

Workshop G3 MicroStation V8 XM edtion nye værktøjer 1

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

Kom it. lavet af Martin Hejgaard Sørensen. Vi skal i denne øvelse tegne et kattebur dvs. et bur til at transportere en kat.

Photoshop CC F u F ture tur Co C mpany an - y www. w future tur co c mpany an. y dk

SPHERO 2.0 undervisningsforløb til mellemtrinnet i matematik Polygoner og vinkler

Dette miniprojekt omhandler en anvendelse af Lineær Algebra til computergrafik og planeters omløbsbaner.

Programmering for begyndere Lektion 2. Opsamling mm

cvbnmrtyuiopasdfghjklæøzxcvbnmq wertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwer tyuiopåasdfghjklæøzxcvbnmqwerty

Michael Jokil

Scratch. - introduktionshæfte

Geometri Følgende forkortelser anvendes:

The GIMP. The GIMP til windows kan hentes fra siden: win.sourceforge.net/stable.html

Kompendium til Geogebra

Noter til C# Programmering Iteration

Start på Arduino og programmering

MicroStation 3D for begyndere

TOGL: Text OpenGL. J. Andreas Bærentzen

Introduktion til Computer Grafik Projekt 1

geometri trin 1 brikkerne til regning & matematik preben bernitt

Gratisprogrammet 27. september 2011

Programmering og geometri i scratch

Eksamensspørgsmål: Trekantberegning

GeoGebra. Tegn følgende i Geogebra. Indsæt tegningen fra geogebra. 1. Indsæt punkterne: (2,3) (-2, 4) (-3, -4,5)

HTX, RTG. Rumlige Figurer. Matematik og programmering

Første møde med skærmbilledet i After Effects 6,5 PRO Lidt om animering

Edb-tekstbehandling, præsentation mm

På opdagelse i Mandelbrot-fraktalen En introduktion til programmet Mandelbrot

DENNE LILLE MANUAL TIL GEOGEBRA DÆKKER NOGENLUNDE DE EMNER, DER VEDRØRER FOLKESKOLEN TIL OG MED 10. KLASSE.

Lærereksemplar. Kun til lærerbrug GEOMETRI 89. Kopiering er u-økonomisk og forbudt til erhvervsformål.

Elevark 6: Prøv at kode en produktionsproces

EKSEMPEL PÅ ELEVOPGAVE TIL ARBEJDET MED PROGRAMMERING AF ARDUIONO MED LED BÅND

Formler og diagrammer i OpenOffice Calc

Matematik A. 5 timers skriftlig prøve. Højere Teknisk Eksamen i Grønland maj 2009 GLT091-MAA. Undervisningsministeriet

Matematik for malere. praktikopgaver. Geometri Regneregler Areal Procent. Tilhører:

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Programmering i C. Lektion september 2009

På opdagelse i GeoGebra

Grafisk Tekniker Digitalprint. Klistermærker med skærelinjer

EDB trin 2 LAYOUT. Tekst i Paint Shop Pro 9

Programmering og Problemløsning, 2017

OPGAVEN PROGRAMMER VÆRKTØJER ARBEJDSPROCESS KVALITETSVURDERING

Grafik & Billedbehandling

Optimering af fraværsregistrering

AgroSoft A/S AgroSync

Arbejde med 3D track motion

Andreas Møinichen og Aske Märcher

Vektorfunktioner. (Parameterkurver) x-klasserne Gammel Hellerup Gymnasium

Fig. 1 En bue på en cirkel I Geogebra er der adskillige værktøjer til at konstruere cirkler og buer:

Introduktion til GeoGebra

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

3 Tilføj printer "HP-GL/2 devices, ADI for Autodesk by HP" 5 Klik "Printer ikonet" - Print/Plot configuration

Forelæsning Uge 2 Mandag

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Fase Forklaring Navigation. Åbn Flash, vælg symbolet ud for Actions Script 3.0. Markér frame 15, højreklik og vælg F6

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

Forelæsning Uge 4 Mandag

Grundlæggende Opgaver

Indholdsfortegnelse. side 1 side 2 side 4 side 4 side 4 side 5 side 5 side 6 side 6 side 6 side 6 side 7 side 8 side 8 side 9

Forelæsning Uge 4 Mandag

SMARTBOARD. Hvordan fungerer det? Et kursusmateriale

Installer DesignPro. DesignPro I Side 1

Grafisk Tekniker Digitalprint. Klistermærker med og skærelinjer og metalfarver

Kontrol-strukturer i PHP

Illustrator CC F u F ture tur Co C mpany an - y www. w future tur co c mpany an. y dk

Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else

Geogebra Begynder Ku rsus

Bjørn Grøn. Euklids konstruktion af femkanten

Variabelsammenhænge og grafer

Du skal lære: at tegne forskellige former. tæt på eller langt væk. Find runde og kantede former. Tegn. Sørensen

Billeder og tegninger i Writer Indhold

Dansk tillægsmanual til PODD i Dynavox Compass

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september (Tak til Jakob Bardram for nogle slides) Dagens begreber

Classic Tween. Navigationsseddel. Fase Forklaring Navigation. Åbn en ny Flash File. Åbn Flash, vælg symbolet ud for ActionScript 3.0.

Design af IT-medier. Skriftlig prøve 10. juni Alle skriftlige hjælpemidler er tilladt.

Mødet. 6 Geometri. Begreb Eksempel Navn. Parallel. Vinkelret. Linjestykke. Polygon. Cirkelperiferi. Midtpunkt. Linje. Diagonal. Radius.

Konstruktion. d: En cirkel med diameter 7,4 cm. e: En trekant med grundlinie på 9,6 cm og højde på 5,2 cm. (Der er mange muligheder)

VEKTOR I RUMMET PROJEKT 1. Jacob Weng & Jeppe Boese. Matematik A & Programmering C. Avedøre-værket. Roskilde Tekniske Gymnasium 3.4. Fag.

Institut for Matematik, DTU: Gymnasieopgave. Arealmomenter

Ved brug af computer handler det derfor mest om, hvordan man får teksten til at stå på papiret og på skærmen.

Mitch Studerer programmering og elsker at lave fede programmer. Han holder også meget af film og kunst. Mitch er i det hele taget en fin fyr.

Projekt 1.3 Brydningsloven

DTU Campus Service DTU - BYGHERRERÅDGIVNING IKT Beskrivelse af DTU LOK koordinatsystemet. Den oprindelige definition af DTU-LOK er desværre gået tabt.

Hunden kan sige et nyt tal (legen kan selvfølgelig udvides til former) hver dag, men kun det tal.

Du skal lave en tegning af bordet set lige på fra alle sider (fra langsiden, den korte side, fra oven og fra neden - 4 tegninger i alt).

Forelæsning Uge 4 Mandag

Indhold. Servicesider. Testsider

brikkerne til regning & matematik geometri basis+g preben bernitt

Matematik F2 Opgavesæt 2

Coloris. Programmet fungere på den måde at man vælger det billede man ønsker at arbejde med ved at klikke på det under menupunktet Projekter.

VEJLEDNING I WEBKORT

Til at starte med vil jeg lige vis nogle små ændringer på opsætningen som jeg har lavet.

Transkript:

Crash course i Programmering HumTek, RUC

Resume - Vigtigste begreber Kommentarer Funktioner Udtryk Sætning Koordinater i display-vindue Funktioner (til tegning): size(), background(), point(), line(), rect(), triangle(), quad(), ellipse(), bezier(), fill(), nofill(), stroke(), nostroke(), strokeweight(), strokecap(), strokejoin(), smooth(), nosmooth() Data Datatype Variabel Tilskrivning (assignment) "=" Aritmetiske udtryk med +, -, *, /, %, og paranteser Forkortet skrivemåde ved tilskrivning ++, --, +=, -=, *=, /= Funktioner (aritmetriske): ceil(), floor(), round(), abs(), sq(), sqrt(), pow(), min(), max()

Control 1: logiske udtryk Logiske udtryk kan angives med relationerne >, <, >=, <=, ==,!= og med operatorerne, &&,! Hvad udskriver nedenstående program Hvad betyder de? Angiv eksempler på udtryk og deres værdi? int x=7; int y=5; int z=9; println(x>y); println((x>y) (y>=z)); println((x>y) && (y>=z)); println((x>y) (z%3==0));

Betingede sætninger simpel if-sætning if (test) { sætninger, der udføres hvis test er sand if-else konstruktion int x = 101; if (x > 100) { ellipse(50, 50, 36, 36); if (x < 100) { rect(33, 33, 34, 34); line(20, 20, 80, 80); 5-05 if (test) { sætninger, der udføres hvis test er sand else { sætninger, der udføres hvis test er falsk int x = 100; if (x > 100) { ellipse(50, 50, 36, 36); else { rect(33, 33, 34, 34); line(20, 20, 80, 80);

Control 1 Opgaver Bogen s 59 opg 1 Opg A Med random(100) fås et tilfældigt tal imellem 0 og 100. Brug dette til at skrive et program der tegner et kvadrat eller en cirkel med samme sandsynlighed. Opg B Som opg A men nu et kvadrat, en cirkel eller en trekant med (ca samme sansynlighed)

Control 2: Brug af løkker/iteration i stedet for size(200,200); line(20, 20, 20,180); line(30, 20, 30,180); line(40, 20, 40,180); line(50, 20, 50,180); line(60, 20, 60,180); line(70, 20, 70,180); line(80, 20, 80,180); line(90, 20, 90,180); line(100, 20, 100,180); line(110, 20, 110,180); line(120, 20, 120,180); line(130, 20, 130,180); line(140, 20, 140,180); line(150, 20, 150,180); line(160, 20, 160,180); line(170, 20, 170,180); line(180, 20, 180,180); kan man bruge en for-løkke size(200,200); for (int i = 20; i < 190; i = i + 10) { line(i, 20, i, 180);

Løkker for-løkke for (init; test; update) { sætninger; udføres således 1. init udføres 2. test evalueres 3. hvis test er sand gå til 4 ellers gå til 6 4. udfør sætninger 5. udfør update og gå til 2 6. gå videre til resten af programmet eksempel size(200,200); for (int i = 20; i < 190; i = i + 10) { line(i, 20, i, 180);

Eksempel eksempel nofill(); for (int d = 10; d < 160; d = d + 10) { ellipse(50, 50, d, d); variation 1 nofill(); for (int d = 150; d > 0; d = d - 10) { ellipse(50, 50, d, d); variation 2 - Forklar resultatet??? for (int d = 10; d < 160; d = d + 10) { ellipse(50, 50, d, d);

Nested iteration "nested" = "indlejret" Nestede løkker en løkke inde i en løkke en løkke inde i en løkke inde i en løkke...

Eksempel at iterere ned af Y-aksen strokeweight(8); for (int y=10; y<100; y = y + 10) { point(10, y); hvordan iterere hen af X-aksen?.

Eksempel at iterere ned af Y-aksen strokeweight(8); for (int y=10; y<100; y = y + 10) { point(10, y); at iterere hen af X-aksen strokeweight(8); for (int x = 10; x < 100; x = x + 10) { point(x, 10); Hvordan med begge dele på een gang?.

Eksempel at iterere ned af Y-aksen strokeweight(8); for (int y=10; y<100; y = y + 10) { point(10, y); at iterere hen af X-aksen strokeweight(8); for (int x = 10; x < 100; x = x + 10) { point(x, 10); begge dele i en nested løkke strokeweight(8); for (int y = 10; y < 100; y = y + 10) { for (int x = 10; x < 100; x = x + 10) { point(x, y);

Control 2 Opgaver Opg A skriv et program, der tegner sådan: Opg B skriv et program der tegner et skakbrætmønster på 10*10 felter hver af 10 * 10 punkter. Tip: Hvis man i en nested løkke med Y og X starter med 0 og lægger 10 til Y hhv X hver gang, så vil følgende udtryk hele tiden skifte imellem sandt og falsk (x+y)/10%2 == 0) forklar hvorfor ovenstående udtryk skifter værdi

Pæne programmer (Formattering) sådan noget kode: strokeweight(8); for (int y = 10; y < 100; y = y + 10) { for (int x = 10; x < 100; x = x + 10) { point(x, y); kan godt blive uoverskueligt, så gør således i stedet strokeweight(8); for (int y = 10; y < 100; y = y + 10) { for (int x = 10; x < 100; x = x + 10) { point(x, y); der findes varianter, men denne formmatering kan Processing's PDE finde udaf "Auto format" under "Tools"-menuen eller blot Ctrl+T

Shape 2: Vertices (Punktfølger) Vertex (= "vinkelspids") Tegning med punktfølger start punktfølge beginshape(), definer punkt (x,y) vertex(x,y) slut punktfølge endshape(), nofill(); beginshape(); vertex(30, 20); vertex(85, 20); vertex(30, 75); vertex(85, 75); endshape(); nofill(); beginshape(); vertex(30, 20); vertex(85, 20); vertex(30, 75); vertex(85, 75); endshape(close);. nofill(); beginshape(lines); vertex(30, 20); vertex(85, 20); vertex(30, 75); vertex(85, 75); endshape(); nofill(); beginshape(points); vertex(30, 20); vertex(85, 20); vertex(30, 75); vertex(85, 75); endshape();

beginshape(mode), beginshape(mode) MODE kan være POINTS, LINES, TRIANGLES, TRIANGLE_FAN, TRIANGLE_STRIP, QUADS, QUAD_STRIP nofill(); beginshape(); vertex(30, 20); vertex(85, 20); vertex(30, 75); vertex(85, 75); endshape(); der angiver hvordan punktfølgen fortolkes

Kurvetegning Punktfølger kan benyttes til tegning af kurver med curvevertex() beziervertex() - Find dem i referencen

Shape 2 Opgaver Bogen s 77 Opg 1-3 Opg A. Tegn en linie med en punktfølge sådan at 100 tilfældige punkter forbindes med lige kanter (Brug funktionen random()) Opg B Som opg A men med kurver (brug curvevertex) Opg C Tegn 50 tilfældige trekanter Opg D Tegn 25 tilfældige firkanter

Color 1: Farver Farver bruges i background() fill() stroke() RGB farvekodning farver angives ved 3 værdier for hhv rød (mellem 0 og 255) grøn (mellem 0 og 255) blå (mellem 0 og 255) HSB Hue (mellem 0 og 360) Beskriver selve farvens "kulør". Saturation (mellem 0 og 100) Farvens styrke eller mætning, dvs. mængden af gråt, der er i farven. Brightness (mellem 0 og 100) Angiver hvor forholdsvis lys eller mørk farven er.

Farve funktioner og hex koder Funktioner color() colormode() Hexadecimal (hex) notation farve angivet ved 16-talssystemet hvad er det? Bemærk i PDE'en er der et tool der hedder "color selector"

Color 1 Opgaver Bogen side 93 Opg 1-3

Math 4: Tilfældige tal tilfældige tal random() randomseed() Brug af random til at styre forløbet i et program float r = random(2); if (r < 1) { line(0, 0, 100, 100); else { ellipse(50, 50, 75, 75); background(0); stroke(255, 60); for (int i = 0; i < 100; i++) { float r = random(10); strokeweight(r); float offset = r * 5.0; line(i-20, 100, i+offset, 0);

Math 4: Tilfældige tal Noise en mere kontrolleret form for tilfældighed, hvor en ny værdi er påvirket af den foregående noise() noiseseed() size(600, 100); float v = 0.0; float inc = 0.1; nostroke(); fill(0); for (int i = 0; i < width; i = i+4) { float n = noise(v) * 70.0; rect(i, 10 + n, 3, 20); v = v + inc;

random() og noise() size(600, 100); float v = 0.0; float inc = 0.1; nostroke(); fill(0); for (int i = 0; i < width; i = i+4) { float n = noise(v) * 70.0; rect(i, 10 + n, 3, 20); v = v + inc; size(600, 100); float v = 0.0; float inc = 0.1; nostroke(); fill(0); for (int i = 0; i < width; i = i+4) { float n = random(1) * 70.0; rect(i, 10 + n, 3, 20); v = v + inc;

Math 4 Opgaver Se tidligere opgaver fra vertices/punktfølger Prøv (eventuelt!) at kikke på noise() og prøve at bruge den. Se eksempler på processing.org

Transform 1: Translate, Matrices Translation at flytte origo (nulpunktet i koordinatsystemet) translate() Matrix-stak bruges til at holde styr på transformationer pushmatrix() popmatrix() pushmatrix(); translate(20, 0); rect(0, 10, 70, 20); // Draws at (20, 30) pushmatrix(); translate(30, 0); rect(0, 30, 70, 20); // Draws at (50, 30) popmatrix(); rect(0, 50, 70, 20); // Draws at (20, 50) popmatrix(); rect(0, 70, 70, 20); // Draws at (0, 70)

Transform 1 Opgaver Opg A Skriv et program der gør følgende. Tegner en cirkel i (0,0), flytter 0-punktet til midten af displayvinduet, tegner samme cirkel og flytter nulpunktet endnu engang til nederste højre punkt i displayvinduet og tegner cirklen en sidste gang. Opg B Som opg A, men nu skal indstillingen af koordinatsystemet (nulpunktet) gemmes fra starten og hentes til slut, hvorefter der tegnes endnu en cirkel der er lidt større

Transform 2: Rotation og skalering Rotation rotate() angives med en vinkel og roterer koordinatsystemet med denne vinklen opgives i radianer (altså imellem 0 og 2*PI) smooth(); rect(55, 0, 30, 45); rotate(pi/8); rect(55, 0, 30, 45);

Skalering Skalering scale() skalerer koordinatsystemet uniform skalering med X scale(x) smooth(); ellipse(32, 32, 30, 30); scale(1.8); ellipse(32, 32, 30, 30); separat akse-skalering med X,Y scale(x,y). smooth(); ellipse(32, 32, 30, 30); scale(2.8, 1.8); ellipse(32, 32, 30, 30);

Sammensatte transformationer rect(-25, -25, 50, 50); translate(width/2, height/2); rect(-25, -25, 50, 50); rotate(pi/8); rect(-25, -25, 50, 50); size(200,200); background(0); smooth(); stroke(255, 120); translate(132, 66); // Set initial offset for (int i = 0; i < 18; i++) { // 18 repetitions strokeweight(i*2); // Increase stroke weight rotate(pi/12); // Accumulate the rotation line(0, 0, 110, 0);

Transform 2 Opgaver Opg A Tegn en trekant med en spids der peger opad og tegn den samme endnu engang, blot vendt på hovedet Opg B varier opg A så trekanten tegnes 10 gange på vejen om på hovedet. Opg C tegn en trekant der fylder det meste af vinduet og gentegn denne et antal gange i en for-løkke, hvor den skalerer ned Opg D prøv at kombinere opg B og C

Structure 2: Continuous mode Continuous mode vedvarende udførelse af (en del af) programmet som en tegnefilm opdelt i frames Continuous mode funktioner mm. setup() kaldes een gang bruges til at initialisere draw() kaldes umiddelbart efter setup() og derefter vedvarende indtil programmet stoppes eller til noloop() hvert kald svarer til en frame framerate() og framecount framerate() sætter antal frames pr sekund framecount angiver antal frames siden programstart noloop() og loop() bruges til hhv at stoppe og genstarte den vedvarende udførelse af draw()

setup(),draw() eksempel float y = 0.0; void draw() { framerate(30); line(0, y, 100, y); y = y + 0.5; float y = 0.0; void setup() { size(100, 100); smooth(); fill(0); void draw() { background(204); ellipse(50, y, 70, 70); y += 0.5; if (y > 150) { y = -50.0;

Structure 2 Opgaver Bogen s 180 1+2+3 Opg A Brug noloop til at få et program til at udføre draw() 200 gange float y = 0.0; void setup() { size(100, 100); smooth(); fill(0); Opg B Hvad sker der hvis background()-kaldet i programmet til højre flyttes til setup() i stedet? Opg C void draw() { background(204); ellipse(50, y, 70, 70); y += 0.5; if (y > 150) { y = -50.0; I stedet for at bruge background kan man bruge fill() og så tegne en rektangel der fylder hele vinduet og man kan vælge en alpha-værdi (mellem 0 og 100, fx 12) for gennemsigtigheden af fyldfarven. Ved at bruge muse-variablene mousex og mousey kan man få en figur til at følge musens bevægelser. Prøv at skrive et program hvor en figur følger musens bevægelser ret dette så vinduet hele tiden bliver overskrevet med en almindelig farve ret igen så der bruges en gennemsigtig farve

Structure 2 Opgaver Opg D Skriv et program der bare bliver ved med at tegne cirkler med centrum der hvor musen er, altså punktet (mousex,mousey). Cirklerne skal have en tilfældig diameter på max 70 punkter og fyldes med en tilfældig farve. Opg E Prøv at få programmet fra opg D til i det mindste at holde op med at tegne cirkler når man ikke bevæger musen. Brug her pmousex og pmousey som er musens koordinater i den umiddelbart foregående frame.

Dagens Debugging