(toiminnot)

hwechtla-tl: Nettipäiväkirja 05.08.2017

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Olenhan muistanut sanoa, että rajapintasuunnittelussa hyvä periaate on: "tee siitä semmoinen, että lasten kärsivällisyys riittää sen käyttämiseen". No, selvittelen tässä, miten Pythonilla saa 3d-ohjelmia aikaan, ja VPython (http://www.vpython.org/) teki minuun aikamoisen vaikutuksen.

[atehwa@undantag ~]$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from visual import *
/usr/lib/python2.7/dist-packages/visual/materials.py:70: FutureWarning:
comparison to `None` will result in an elementwise object comparison in
the future.
  self.__setattr__(key, value)
>>> pallo = sphere(pos=(-.5,0,0))
Gtk-Message: Failed to load module "topmenu-gtk-module"
>>> for t in range(100):
...   rate(50)
...   pallo.pos=vector(5-t*.1,sin(t*.08),cos(t*.11))
... 
>>> 

Eipä ollut suoraan sanoen hirveän vaikeaa saada pallo lentämään. Tämä on aika erilaista kuin esim. tehdä sama PyOpenGL:llä (https://pythonprogramming.net/opengl-rotating-cube-example-pyopengl-tutorial/) tai varsinkin C++:n natiiveilla OpenGL-bindingeilla :) Ainoa, mitä jäin kaipaamaan, on kaksoispuskurointi tai edes joku tapa vihjata, missä vaiheessa näytöllä olevat asiat ovat "valmiina".

vpython.png

Jo pelkistä palloista saa kaikkea kivaa aikaan:

>>> sp = [sphere(pos=(x,y,3*sin(x*.8+y*.11)))
          for x in range(30) for y in range(30)]


kommentoi (viimeksi muutettu 05.08.2017 03:50)