Käyttämällä VPython luoda 3D-animaatioita

Link: ORIGINAL VERSION

materialetc

Käyttäen VPython luoda 3D-animaatioita

VPython tekee harvinaisen helppo kirjoittaa ohjelmia, jotka tuottavat purjehduskelpoinen real-time 3D-animaatioita. Se perustuu Python-ohjelmointikieli, joka on laajalti käytetty johdanto ohjelmointi kursseja, kiitos sen puhdas design, ja se on myös laajalti käytetty tieteen ja liike.

Classic VPython oli peräisin David Scherer vuonna 2000. Vuonna 2011 David Scherer ja Bruce Sherwood aloitettu kehittäminen GlowScript, samanlainen ohjelmointiympäristö, mutta joka toimii selaimessa. Vuonna 2014 se tuli mahdolliseksi käyttää RapydScript, ohjelmointikieli hyvin samanlainen kuin Python, tukea VPython ohjelmia GlowScript ympäristö.

Tässä on yleistä hankkeen, ja tässä on loki kehitys. Tässä on avoin lähdekoodi tähän hankkeeseen. Siellä on myös tekniset asiakirjat GlowScript ympäristössä, mukaan lukien, miten käyttää JavaScript tai RapydScript ohjelmat.

on myös “Jupyter VPython” on peräisin John Cody vuonna 2014 ja jatkuvan kehityksen alla John Cody, Ruth Chabay, Bruce Sherwood, Steve Spicklemire, ja Matt Craig. Se toimii Jupyter kannettavan ja käyttää GlowScript VPython syntaksi standardin Python, mikä tarjoaa pääsyn standardi Python moduulit. Lisätietoja vpython.org. On myös mielenkiintoista keskustelua suunnitelmat kehityksestä VPython.

Tämä dokumentaatio kuvaa sekä GlowScript ja Jupyter versiot VPython.

nopea käyttöönotto, katso seuraava YouTube-videoita. Nämä luotiin Klassinen VPython mutta ovat aivan yhtä hyödyllisiä oppimisen uudempia versioita.

3D-Objekteja

muuttujamääritykset

Alussa Silmukoita

Silmukoita ja Animaatio

Mittakaavassa Tekijät

Debugging syntaksivirheitä

Luettelot, Osa 1

Luettelot, Osa 2

on joukko GlowScript VPython tutorials Rhett Allain yhteydessä ennustaa liikkeen laskennallisesti tasolla johdanto fysiikan kurssin.

aloittanut

kirjoittaa VPython-ohjelman, kirjaudu sisään glowscript.org.

* näet lause “Olet kirjautunut sisään <käyttäjänimi> ja ohjelmat ovat tästä.” Klikkaa tästä.

* Klikkauksen Create A New Program. (Voit halutessasi klikkaa Public välilehti ennen kuin luot oman ohjelman, koska ohjelmia Private kansio ei ole saatavilla muille.) Valitse nimi ohjelma, joka ei saa sisältää välilyöntejä tai alaviivoja.

* Alle rivi GlowScript 2.0 VPython tyyppi box(). Klikkaa Run this program ajaa ohjelman. Näet valkoinen laatikko mustalla pohjalla.

* Käytä oikealla painikkeella (tai CTRL-vedä vasemmalle painiketta) hiirtä kiertää kameran katsella kohtaus eri näkökulmista.

* Voit lähentää ja loitontaa käyttää kaksi painiketta tai ALT/OPTIO-vetämällä, tai hiiren scrollwheel. Kosketusnäyttö pyyhkäisemällä tai kahden sormen kiertää; pinch/laajenna zoom.

alku tekniset asiakirjat lisätietoja siitä, miten käyttää text editor, etsiä, vaihda, jne. Huomaa, että voit painaa ctrl-1 suorita ohjelma sen sijaan, että klikkaamalla “Suorita tämä ohjelma”. Tai paina ctrl-2 ajaa ohjelman erilliseen ikkunaan, jossa voit tarkastella ohjelmaa ja sen toteuttamista rinnakkain. Kun olet tehnyt muutoksia ohjelman paina ctrl-2 nähdä vaikutus oman muutoksia, se ei ole tarpeen sulkea suoritus-ikkuna.

Se on suositeltavaa käyttää Chrome-selain kehittää ohjelmia, koska se tarjoaa eniten hyödyllisiä virheilmoituksia, vaikka ohjelmia voidaan kirjoittaa ja ajaa kaikilla selaimilla, mukaan lukien älypuhelimet ja tabletit.

Anna muiden ajaa ohjelmia

GlowScript muokkaa-sivulla Jaa tämä ohjelma nähdä, miten antaa muiden ajaa ohjelmaa. Ihmiset ajaa ohjelmaa, joita yhdistää se, että ohjelman on oltava yleisen kansion tai viedä oman web-sivuston. Itse asiassa, koodi saatavilla jaa sivu voi yksinkertaisesti liittää tiedoston ja tallentaa, joiden tiedostotunniste on “.html”, ja sitten voit ajaa ohjelman yksinkertaisesti tuplaklikkaamalla html-tiedostoon.

Kuvaukset vaihtoehtoja vasen marginaali

Johdanto: perusasiat Python ja VPython.

Tutorial: Enemmän VPython, mukaan lukien animaatio

Kuvia 3D-objekteja: Mitä esineet näyttävät

Valitse 3D-objekti: Tiedot sylinterin, laatikko, jne. Aloita sylinterin yleiskatsaus.

Työtä, jossa 3D-objekteja: Kysymyksiä, jotka koskevat kaikkia 3D-objekteja: väri, materiaali, jne.

Windows, Tapahtumat & Tiedostot: Luominen/muokkaaminen windows; käsittely hiiri/ näppäimistö tapahtumia; lukemisen/kirjoittamisen tiedostoja,

Vektori toiminnot: Suuruus, piste ja rajat tuote, kierto, jne.

Kuvaajat: Tehdä kuvaajia tietojen.

kertoma/combin: Erityisiä toimintoja käytetään todennäköisyys laskelmat.

Mitä uutta: VPython vuonna GlowScript, plus historia VPython..

muista tutkia monia GlowScript esimerkki ohjelmat, joka on kirjoitettu JavaScript, RapydScript, tai VPython. Se VPython vaihtoehto perustuu RapydScript Python-to-JavaScript kääntäjä. Useimmat ohjelmat, RapydScript on lähes sama kuin Python, mutta on olemassa eroja, jotka voidaan nähdä RapydScript dokumentointi.

VAROITUS

Älä käytä “odota,” kuin muuttujan nimi. Kaikki GlowScript kielellä (VPython, RapydScrpt, JavaScript) käyttää “odota”, kuten erityinen signaali kokoaminen. Vuonna VPython tapauksessa tämä signaali on asetettu sinulle, jos tarvitaan.

kokeneille ohjelmoijille

mukavuussyistä noviisi ohjelmoijia tarjota kaikkea, mitä tarvitaan saada alkoi, GlowScript VPython oletuksena tuonti kaikki VPython ominaisuuksia ja sisältää standard matemaattiset funktiot kuten sqrt. Asiakirjat on kirjoitettu ikään kuin “vpython tuonti *” olivat läsnä.

Voit kuitenkin tuoda valikoivasti, kuten näkyy seuraavista esimerkeistä, jotka ovat yhteensopivia Jupyter VPython. (Auttaa muuntaa Klassinen VPython, voit viitata “vis” tai “visuaalinen” sijaan “vpython”.)

import vpython
import vpython as vp # “vp” is any name of your choice
from vypthon import box, color # or (box, color)

niille, jotka ovat käyttäneet Klassinen VPython

muutama Klassinen VPython esineet eivät ole tällä hetkellä saatavilla GlowScript: kupera, kasvot, ja runko. Se GlowScript esineitä kärki, kolmion ja quad edustaa tehokkaampi vaihtoehto kasvoja. Monia sovelluksia, runko voidaan käsitellä GlowScript yhdiste object.

Yksi tapa käsitellä eroja on tarkistaa elementit “versio” muuttuja, joka on saatavilla sekä Klassisia VPython ja GlowScript versio ja tehdä erilaisia asioita eri ympäristöissä:

Classic VPython:    version is [‘X.Y’, ‘release’]
GlowScript VPython: version is [‘X.Y’, ‘glowscript’]
Jupyter VPython:    version is [‘X.Y.Z’, ‘jupyter’]
and in Jupyter VPython, the version of the GlowScript
grafiikka kirjasto on antanut
                  GSversion on [‘X.Y’, ‘glowscript’]

käyrä ja pistettä objektit ovat hieman erilaisia GlowScript ympäristö, mutta vähän hoitoa, se on mahdollista käyttää näitä esineitä siten, että ne toimivat myös Klassinen VPython. Huomaa, että GlowScript luettelo pistettä käyrä esine ei ole numpy array, niin että silmukka on tarpeen muuttaa kaikkia kohtia.

käsitellä hiiren tapahtumia yksi ei voi käyttää kohtaus.getevent() mutta täytyy käyttää kohtaus.bind(), joka on saatavilla sekä Klassinen VPython 6 ja GlowScript. Tarjolla on myös kohtaus.pause() ja kohtaus.waitfor(‘click’) ja siihen liittyvät valinnat.

Se ei ole mahdollista tuoda mielivaltaista Python-moduuleja, kuten numpy, ja kaikki VPython-ohjelma, joka käyttää numpy on modifed. Kuitenkin, silmukat ovat nopea JavaScript-kieli, joka GlowScript ohjelmia koota, joten jos olet käyttäen numpy ainoastaan nopeus matriisi manipulointia, voit korvata numpy laskelma helposti ja tehokkaasti silmukka.

ero RapydScript ja VPython ohjelmia GlowScript yhteydessä on, että VPython vaihtoehto yrittää matkia syntaksi ja semantiikka Klassinen VPython-ohjelmia, kun taas RapydScript vaihtoehto toteuttaa sama semantiikka 3D-objekteja kuin JavaScript-ohjelmia. Esimerkiksi RapydScript ohjelman piiriin esine on koon ominaisuus, mutta ei radius-ominaisuus, ja kuten box, default bounding box alalla on 1x1x1. Myös, muuttamalla pituus akseleiden RapydScript ohjelma ei ole vaikutusta koko (lukuun ottamatta nuoli, joka on erityinen axis_and_length ominaisuus), mutta VPython ohjelma, kuten Klassinen VPython, muuttamalla pituus akselin muuttaa myös pituus objektin (ensimmäinen osa objektin kokoa).

GlowScript oletuksena prosesseja VPython-ohjelmat ikään kuin ne olisivat seuraavat lausunnot alussa ohjelma (jonka ei tarvitse kuulua; ne ohitetaan):

from __future__ import division, print_function
from vpython import *

GlowScript kohtelee 3/2 1,5 kuten Python 3.x, ei 1 kuten Python 2.x kieli, ja tulostaa statement on otettava Python 3.x muodossa print (“hei”) eikä Python 2.x muodossa print “hei”.

Monet ohjelmat kirjoitettu Classic VPython 6 ajaa GlowScript tai Jupyter ilman muutoksen jälkeen ajetaan läpi. muunto-ohjelma kirjoitettu pythonilla. Tämä ohjelma muuntaa (x,y,z) => vector(x,y,z) and obj.x => obj.pos.x. Nämä muutokset ovat tarpeen, koska GlowScript ei tunnista (x,y,z) vektori, eikä obj.x pika obj.pos.x. Ohjelma muuntaa myös display => canvas and gdisplay => graph.

GlowScript ympäristö pos, koko, akselin, väri, ja jopa ovat kaikki vektorit, ja ne ovat hieman erikoista, että vektorit seurata muutoksia, jotta voidaan käynnistää oikea-mallinnus ja 3D kohtaus, kun yksi näistä objekti määritteitä muutoksia. Yksi seuraus tästä on, että arkkitehtuuri

 ball.pos += vector(1,2,3)

täytyy kirjoittaa uudelleen

 ball.pos = ball.pos + vector(1,2,3)

Muuntaminen ohjelma tekee näitä muutoksia, ja vastaavia muutoksia -=, * = ja /=. Ohjelma muuntaa myös scene.mouse.getclick() => scene.waitfor(‘click’), joka toimii molemmissa ympäristöissä.

GlowScript ja Jupyter voit käyttää pika “vec” “vektori”. Jos haluat käyttää GlowScript ohjelma, joka sisältää “vec” Klassinen VPython ympäristössä, vain lisätä maininta “vec = vector” alussa ohjelman.

Op

Salvatore di Dio osoitti hänen RapydGlow kokeilla
(http://salvatore.pythonanywhere.com/RapydGlow)
miten hän pystyi käyttämään RapydScript Python-to-JavaScript kääntäjä kanssa GlowScript grafiikka. Tämän innoittamana täytäntöönpanoa VPython (vpython.org) API: glowscript.org. Hän antoi tiedosto papercomp.js operaattori ylikuormitus, joka perustuu työn
Jürg Lehni (PaperScript: http://scratchdisk.com/posts/operator-overloading</>).
Hän myös koottu tuki-operaattorin ylikuormitus ja kyky kirjoittaa synkroninen koodi tiedostoon transform-all.js perusteella työtä
Bruno Jouhier (Streamline:
https://github.com/Sage/streamlinejs), ja
Marijn Haverbeke (Acorn.js:
https://github.com/marijnh</>).
Tukee VPython API selaimessa on mahdollista työn ansiosta
Alexander Tsepkov (RapydScript:
https://github.com/atsepkov/RapydScript) ja
Charles Lain (selain-pohjainen RapydScript:
https://github.com/charleslaw/RapydScript_web).

tammikuussa 2017 alkuperäinen RapydScript compiler oli korvattu RapydScript-NG Kovid Goyal, joka tulee lähemmäksi käsittely totta Python-syntaksi.

Kun GlowScript hanke käynnistettiin vuonna 2011 David Scherer ja Bruce Sherwood,
Scherer toteutettu operaattorin ylikuormitus ja synkroninen koodi kirjastojen olemassa tuolloin. Vuonna 2015 se oli tarpeen päivittää uudempia kirjastoja, koska kokoaminen epäonnistui jotkut selaimet; Salvatore di Dio tarjosi tärkeää apua tämän päivityksen. Tammikuussa 2017 operaattori ylikuormitus koneet oli edelleen päivitetty.

VPython dokumentointi tuotti Ruth Chabay, David Scherer, ja Bruce Sherwood.

Leave a Reply

Your email address will not be published. Required fields are marked *