Programmering och simulering: Skillnad mellan sidversioner

Från Wikiskola
Hoppa till navigering Hoppa till sök
Rad 50: Rad 50:
'''BTW:''' ActionScript bygger på [http://sv.wikipedia.org/wiki/Ecmascript Ecmascript] som är specen för javascript. Javascrip har vissa likheter med java: [http://www.htmlgoodies.com/beyond/javascript/article.php/3470971/Java-vs-JavaScript.htm Java vs JavaScript].
'''BTW:''' ActionScript bygger på [http://sv.wikipedia.org/wiki/Ecmascript Ecmascript] som är specen för javascript. Javascrip har vissa likheter med java: [http://www.htmlgoodies.com/beyond/javascript/article.php/3470971/Java-vs-JavaScript.htm Java vs JavaScript].


=== Flash: Exempel för undervisning ===
=== [[Flashexempel för undervisning: Två bollar]] ===


'''Två bollar'''
Länken ovan går till en ny sida med en genomgång av ett actionsscript med bollar som faller under inverkan av gravitation. Det finns en andragradsfunktion i botten. Jag förklarar programmet utifrån fysiken och visar den matematiska funktionen i GeoGebra.
 
Här använde jag en fri fil från [http://flashsourcecodes.com/Physics/19/gravity/ Flashsourcecodes] tillverkad av [http://flashsourcecodes.com/profile/51/Wolfos/ Wolfos]
 
Den visar dels att bollarna landar samtidigt trots att den ena bollen haren en hastighet i x-led. Öppnar man .fla-filen och högerkickar på den blå bollen ser man denna kod på rad 33-40:
 
//sets the yspeed to equal the yvelocity.
this._y = this._y + yvelocity;
this._x = this._x + xvelocity;
//if the yvelocity < maxvelocity then increase gravity pull.
if (yvelocity < maxvelocity){
yvelocity += gravity;
}
 
Man ser tydligt hur hastigheten ökar med accelerationen i varje loop. Acceleration är ju hastighetsökning per tidsenhet, vanligen m/s / s.
 
yvelocity += gravity; betyder att hastigheten ökas med värdet på gravity. Man kan läsa om javascript i denna fina [http://www.w3schools.com/js/js_operators.asp tutorial på javaScript].
 
Filerna är [[Media:Physics_2_bollar.swf|Physics_2_bollar.swf]] och Physics.fla men tyvärr är det en körbar fil av sådan typ som inte går att ladda upp på MediaWiki.
 
==== Visa med Geogebra ====
 
'''En fysiktolkning skulle vara att:'''
 
I första delen har vi en st-kurva, dvs sträckan som tillryggaläggs i ett tidsintervall men en hastighet. Motsvarande st-kurva är en parabel. Jämför med att s = v<sub>0</sub>t + at<sup>2</sup>/2 (v<sub>0</sub>=0)
 
I programmets andra del har vi en hastighetsökning på grund av tyngdaccelerationen (gravity). Detta är ju en vt-kurva som är linjär.
 
'''En förklaring av programmet:'''
 
I gGeoGebran nedan har jag lagt in värden i kalkylarket. Här jobbar jag baklänges mot programmet. Först får hastigheten yvelocity ökas med tyngdaccelerationen gravity. Sedan ökas positionen this._y med hastigheten yvelocity.
 
På nästa rad låter jag yvelocity+gravity från raden ovan gå in som nytt yvelocity. På samma sätt hämtas this._y från this._y+yvelocity på raden ovanför. Detta visar en accelererande ökning på this._y.
 
Sedan skapar jag en lista med talpar av time och this._y+yvelocity. Därefter anpassar jag ett polynom till punkterna med kommandot RegressionPoly[Lista1, 2]. Det blir en andragradsfunktion. Funktionen blir f(x) = 4.91x<sup>2</sup>+4.91x+0 vilket stämmer precis med fysikformeln s = at<sup>2</sup>/2 (v<sub>0</sub>=0)+v<sub>0</sub>t  (formeln ovan men omvänd ordning på termerna).
 
<ggb_applet width="1127" height="506"  version="4.0" ggbBase64="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" showResetIcon = "false" showAnimationButton = "true" enableRightClick = "true" errorDialogsActive = "true" enableLabelDrags = "false" showMenuBar = "false" showToolBar = "false" showToolBarHelp = "false" showAlgebraInput = "false" useBrowserForJS = "true" allowRescaling = "true" />


=== Spel för mobiler ===
=== Spel för mobiler ===

Versionen från 2 mars 2012 kl. 23.39

<facelikebutton style="2" showsend="0"></facelikebutton>

Box2D

Angry Birds

C++

Java

Nedladdnings länk till Java versionen: http://code.google.com/p/jbox2d/downloads/detail?name=jbox2d-2.1.2.1.zip

Lite info om JBox2D :http://www.shiffman.net/teaching/nature/box2d-processing/

JBox2D Exempel : http://gwtbox2d.appspot.com/

Flash

  1. Nedladdning av Box2DFlash:
    • Nedladdningslänk till Flash versionen. Detta är version 2.1
    • Ha, detta meddelande handlar om samma felmeddelande som jag får. Till höger i Flashprogrammet finns en meny där man kan ställa in att JavaPlayer ska vara version 10 (den var bara v9).
    • Exempel Till Flash versionen: http://box2dflash.sourceforge.net/ . Mest att titta på. Har inte hitta sourcefiler.
    • Nedladdningen gick bra och PhysTest funkar och genererar trasdockor när man trycker cntrl-Enter. JAg har även ändrat densiteten i TestBouyancy.as så som Viktor föreslog.
  2. Absolute Beginners:
    • Absolute beginners. Filen som jag skapat med denna tutorial heter Demo.fla.
    • Den funkar dock inte i den version av Box2D som jag tankade ned enligt ovan. Det nedladdade -swf-exemplet funkar men inte när jag skapar det själv. Fel sökvägar. Det finns en nyare och en äldre version av Box2D. Jag prövar att ladda ner Box2D i en två år gammal verion 2.0.2.
    • När jag unzippar hennes demo.fla och demo.as i denna mapp med ganmla Box2D kan jag skapa filmen demo.swf med cntrl enter och den funkar. När jag skapar min egen demo.fla och demo.as enöligt hennes instruktioner funkar det helt sånär som att bakgrunden blir vit.
    • Emanuele har gjort en ny version av demon som funkar ihop med Box2D version 2.1. men jag får den inte att funka... än... Packar jag upp hennes filer i sourcemappen där Box2D-mappen ligger så funkar det.
    • Emanuele berättar om vad som är nytt i 2.1. Har kan jag skapa car.fla och car.as där jag klipper in koden och det funkar helt även om filmen har vit bakgrund.
    • Emanuele har blogat mycket om Angry Birdsprogrammering. Här ett exempel där man kan se projektilbanan innan man skjuter.
  3. Ringarna

Boris sida

Tutorial av Plastic Surgeon

Läs om hur Box2D funkar i manualen. Den är inte Flashinriktad utan hör till C++.

Läs Box2D Forumet.

Tutorial Box2D 2.0

BTW: ActionScript bygger på Ecmascript som är specen för javascript. Javascrip har vissa likheter med java: Java vs JavaScript.

Flashexempel för undervisning: Två bollar

Länken ovan går till en ny sida med en genomgång av ett actionsscript med bollar som faller under inverkan av gravitation. Det finns en andragradsfunktion i botten. Jag förklarar programmet utifrån fysiken och visar den matematiska funktionen i GeoGebra.

Spel för mobiler

PlayN är ett program Viktor hittade som kan kompilera det man har gjort till tex html5, Android : http://code.google.com/p/playn/

Ett html5 exempel: http://www.box2d.org/forum/viewtopic.php?f=20&t=7300

En Tutorial till hur man kan göra olika sorts 2D bil spel : http://www.emanueleferonato.com/2009/04/06/two-ways-to-make-box2d-cars/

Matematik

Fysik

VideoTracker från OPen Source Physics

PhET om projektilbanor

Algodoo.

Fysiken bakom spelen - inspiration till matten

Ett försök att svara på frågan: - Vad ska vi ha den här matten till?

Basketbollen

Jag saknar den där filmen jag såg nån stans med en basketboll som skjuts iväg och filmen visar bollen i olika lägen utefter parabeln Sedan stannar filmen straxt efter att bollen passerat banans högsta punkt och såväl boll som fråga blir hängande i luften. träffar den korgen. Upp till betraktaren att lösa problemet.

Geogebra

Filmlänkar

Fysikmotorer i spel

Det är coolare än ni tror med fysik och matematik.

Att testa på LAN

  • Hundspelet Voff i Director
  • Algodoo 15 h demo
  • WoT m flera spelare
  • PhETs Projectile Motio in i GGB och anpassa kurva.