Hi,
bin zum Ersten mal hier, also ein nettes 'Hallo' an alle erstmal!
Hoffe mal mir kann hier irgendjemand helfen.
z.Z. sitze ich an meiner Facharbeit in Informatik über die Fernbedieung der Nintendo Wii, und die Möglichkeiten sie für andere Zwecke als als Spielesteuerung einzusetzen.
Nun bin ich gerade dabei ein FingerTracking Script zu entwerfen, welches mir ermöglichen soll, mit 2 Fingern einen 3D-Würfel zu drehen.
Das Ganze habe ich in GlovePie geschrieben, da dies mir am leichtesten erschien.
Habe zwar auch Delphi-Kenntnisse, aber ob ich damit die Wiimote programmieren kann, bin ich mir nicht ganz sicher und ist mir auch ehrlich gesagt zu kompliziert:D.
Mein Problem nun hat aber relativ wenig mit der Wiimote selber zu tun, sondern mit dem Umgang von 3D-Objekten.
Zur kleinen Hilfe poste ich ersteinmal mein bisheriges Script:
obj1.size= [0.8,0.8,0.8]
obj1.colour = [100%, 0%, 30%]
var.smooth = 0.00001
//Position von dot1 dauerhaft
var.x2 = wiimote.dot1X
var.y2 = wiimote.dot1x
//Position von dot1 nur wenn dot2 nicht vorhanden
if wiimote.dot2vis = false then
var.x1 = Wiimote.dot1x
var.y1 = Wiimote.dot1y
end if
//rechts drehen
if (wiimote.dot1vis) and (wiimote.dot2vis) and (var.x2 > var.x1) then
obj1.yaw = obj.yaw + (sqr(var.x2 - var.x1) *var.smooth)
end if
// links drehen
if (wiimote.dot1vis) and (wiimote.dot2vis) and (var.x2 < var.x1) then
obj1.yaw = obj1.yaw - (sqr(var.x2 - var.x1) *var.smooth)
end if
// nach oben drehen
if (wiimote.dot1vis) and (wiimote.dot2vis) and (var.y2 > var.y1) then
obj1.pitch = obj1.yaw + (sqr(var.y2 - var.y1) *var.smooth)
end if
//nach unten drehen
if (wiimote.dot1vis) and (wiimote.dot2vis) and (var.x2 < var.x1) then
obj1.pitch = obj1.yaw - (sqr(var.y2 - var.y1) *var.smooth)
end if
// Variablen Anzeige
debug = 'X=' + var.x1 + ' Y=' + var.y1 + ' X2=' + var.x2 + ' Dif=' + (var.x2 - var.x1)
//by Hannes Speicher März 2008
Alles in Allem funktioniert das auch schon ganz gut, nur wenn ich den Würfel jetzt z.B. um 90° nach rechts um die Y-Achse drehe (Yaw) und dann den Pitch verändern will, dreht sich der Würfel natürlich nicht mehr um die Z-Achse, also die vordere Seite nach oben/unten, sondern die linke Seite nach oben/unten um die X-Achse.
Das würde aber die Steuerung sehr seltsam machen.
Ich brauche nun also eine Möglichkeit den Würfel nicht um seine eigenen Achsen zu drehen sondern über "globale" Achsen.
Kann mir irgendjemand helfen?
Wäre super... Muss das ganze in 2 Wochen abgeben und hab noch 'n paar Seiten vor mir.
Besten Dank im Vorraus!
gruß
carjacker
PS: wer sich unter dem Ganzen noch nichts vorstellen kann; hier ein Link:
YouTube - Tracking fingers with the Wii Remote
Nur, dass ich mit einem 3D-Würfel arbeiten will, den ich später evtl. sogar mit Hilfe einer rot/blau-Brille optitsch vom Bildschirm abheben will.