From: <K.W...@gm...> - 2006-01-02 21:07:16
|
Hallo! Inzwischen habe ich mir die trackball.py nochmal angesehen. Hier ein paar Gedanken: - Der (imaginäre) Trackball hat den Mittelpunkt (0,0,0) und Radius 1. - Die Funktion _gltbPointToVector ordnet einer Bildschirmkoordinate (x,y) einen Punkt auf der Oberfläche des Trackballs zu. Schöne Funktion :-) Das d<1.0 scheint mir recht willkürlich, mit d<1.4 funktioniert's auch. - recalculateTransformationMatrix berechnet die neue Transformationsmatrix T_neu wie folgt: T_neu = T_alt o Rotation(angle, axis). ("o" für Komposition) Ich hätte eigentlich erwartet, dass (in gltbMotion) zumindest beim ersten Aufruf transform*lastposition=current_position gilt, aber es gibt da Abweichungen schon an der 3. Stelle hinterm Komma, habe ich da was falsch verstanden? - Das Problem beim Panning scheint mir zu sein, die Bewegung der Maus als Bewegung im Raum zu interpretieren. Die Funktion _gltbPointToVector ist wohl nicht geeignet, weil sie immer einen Norm-1 Vektor zurückgibt. Was meint ihr dazu? Auch ist mir ist unklar, warum die dritte Zeile der Transformationsmatrix die Blickrichtung sein soll... Dann habe ich noch herausgefunden, dass es eine Funktion gluLookAt gibt, die ganz nützlich sein könnte und dass mit PyOpenGL ein Tkinter-Widget Togl kommt, welches ähnliche Funktionen wie die trackball Klasse hat. Meine sourceforge-Kennung ist übrigens KarstenWeinert und wenn ich svn co https://cvs.molgen.mpg.de/InfoTheory eingebe, werde ich nach einem Benutzernamen gefragt, wobei "anonymous" nicht akzeptiert wird. Die Projektionsversion konnte ich noch nicht probieren, weil offenbar ein Modul auxiliary.py fehlt. Eigentlich wollte ich mich ja noch letztes Jahr melden, aber irgendwie war die Zeit zwischen den Feiertagen zu kurz. Naja um ehrlich zu sein, war ich fauler als ich dachte... Jedenfalls wünsche ich Euch für 2006 alles Gute! -- Karsten. -- DSL-Aktion wegen großer Nachfrage bis 28.2.2006 verlängert: GMX DSL-Flatrate 1 Jahr kostenlos* http://www.gmx.net/de/go/dsl |