Positionierung und Ausrichtung der Kamera. void balance::kamera_bewegen( float seit, float hoch, float vor) { D3DXVECTOR3 v, s, h, t; v = da_gucke_ich_hin.

Slides:



Advertisements
Ähnliche Präsentationen
Verschiebung und δ-Funktion
Advertisements

Induktion durch Drehen einer Spule in einem homogenen Magnetfeld.
Trigonometrische Funktionen
Datenstrukturen Look-Up Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung.
Kollisionen beschreiben Tag 6
Simulation physikalischer Einflüsse
2D-Objekte in der 3D-Welt
Dreidimensionale Spielewelten
Geometrie in DirectX: Vektoroperationen Kapitel – Spieleprogrammierung mit DirectX und C++ Kaiser/Lensing.
Ultris V10 Bewegen, Drehen und Kollisionserkennung.
Grundlagen der Geometrie
Drehmoment Drehmomentschlüssel r=0,4m F=50N r=0,2m F=100N Achtung:
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Die Verschiebung Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2006 Dietmar Schumacher.
Konstruktoren.
V10 - Kollisionen Nicolas Matentzoglu. Inhalt der Präsentation Kollisionserkennung bei Hindernissen Verhalten der Kugel über verschiedenen Untergründen.
V10: Bewegen der Formen und Kollisionserkennung Steuerung der Spielsteine durch Tastenbefehle (Übersicht der Befehle unter der Hilfe)
Die Geometrie der Ebene
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Kreiselgleichungen Annette Eicker 12. Januar
Die Methode public Knoten einfuegenVor (Datenelement dNeu, Datenelement dVergleich) public Knoten einfuegenVor(Datenelement dNeu, Datenelement dVergleich){
Thema des Informatikkurses der Klasse 8
Telefontraining für professionelles Telefonverhalten.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Artifizielle Wachstumsprozesse Ergänzung zu Teil 1 Winfried Kurth Günter Barczik Reinhard Hemmerling Lehrstuhl Grafische SystemeLehrstuhl Entwerfen Bauen.
Estellen eines Sechskantes mit Abschrägung und Durchbruch
1 IntegraMouse - Erlaubt es dem Benutzer, mit dem Mund alle Funktionen einer Computermaus zu aktivieren. - Die dynamische Positionierung des Bildschirmzeigers.
Felipe Ramirez Diener Fribourg – Schweiz – Mai 2008
Neuer Aufbau, neue Elemente Schubladen In unseren neuen Schubladenelementen hat viel Information auf wenig Raum Platz. Sie öffnen eine Schublade durch.
Java programmieren mit JavaKara
Die Quadratische Funktion
Feuerwehr Wie sie leibt und lebt… Unsere. Wichtig ist das schnelle und sichere Erreichen des Einsatzortes: Florian 12/1: "Leitstelle für Florian 12/1!
Erklärungen zum Gezeitenbuch
Gleichförmige Bewegung
Tower an ....
Massenmittelpunkt, „Schwerpunkt“, Drehachsen und Trägheitsmoment
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Der Neue Hahn Ein Bauer kauft sich ein neues Potenzmittel. Da er dem Ganzen nicht so richtig traut, füttert er zuerst den Hahn damit. Dieser pickt es.
Lindenmayer-Systeme: Fraktale rekursiv zeichnen
Inhalt Vorbemerkung Vorstellung einer Unterrichtssequenz Kritik
Das Foucaultsche Pendel
ICT – Modul Präsentation
Linien folgen anhand des S-Peru Beispiels
Skitag in Oberwiesenthal (Ohne Hals- und Beinbruch) Zum Fortfahren: Klicken.
Drehung im Raum – Kreiseltheorie
RAUMTRANSFORMATIONEN
PART V CONTACT PHYSICS Chapter Aufbaumodul 3: Visuelle Programmierung II Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
Eindimensionale Bewegungen
Lernprogramm : „Quadratische Funktionen“ von W. Liebisch
Rafael, Florian, Patrick
..
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
SINUS-Transfer NRW Projekt 2 Klaus Gerber
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
1. Charakteranimation 2. PlugIns schreiben und laden Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung WS 2010/2011.
Soooo früh am Morgen habe ich es geschafft die beiden zu wecken
Ein Ausschnitt der kuriosesten, angeblich authentischen Funksprüche zwischen Jet-Cockpit und Tower-Fluglotsen im Tower werden die Gespräche der Flutlotsen.
Massenmittelpunkt, „Schwerpunkt“
THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Grundlagen der Geometrie
Tower an ... Ein Ausschnitt der kuriosesten, Funksprüche zwischen Jet-Cockpit und Tower-Fluglotsen.
Lager.
Andreas Neu. Zielsetzung: Berechnung des Inneren Astigmatismus zur Bestimmung einer optimal korrigierenden „Anpasslinse“.
Platzhalter für Logo < auf Folienmaster hier auf < linker Achse platzieren Platzhalter für Titel Platzhalter für Titel Platz- halter für Titel Platzhalter.
Tutorium Software-Engineering SS14 Florian Manghofer.
Normale zur Gerade g durch den Punkt A. A A.
 Präsentation transkript:

Positionierung und Ausrichtung der Kamera

void balance::kamera_bewegen( float seit, float hoch, float vor) { D3DXVECTOR3 v, s, h, t; v = da_gucke_ich_hin - hier_bin_ich; Erzeugt den Blickrichtungsvektor (v) v.y = 0.0f; D3DXVec3Normalize( &v, &v); Normalisiert v s = D3DXVECTOR3( -v.z, 0, v.x); s wird berechnet durch 90° Drehung von v, ist damit normalisiert h = D3DXVECTOR3( 0, 1, 0); h zeigt nach oben und hat die Länge 1 t = seit*s + hoch*h + vor*v; t wird aus 3 Verschiebefaktoren und 3Verschiebevektoren berechnet hier_bin_ich += t; wird um t verschoben da_gucke_ich_hin += t; wird um t verschoben } Achtung: +,- und * sind überladene Operatoren.

void balance::kamera_schwenken( float seit, float hoch) { D3DXVECTOR3 blick, normale; D3DXMATRIX dreh; blick = da_gucke_ich_hin - hier_bin_ich; Blickwinkelvektor (blick) berechnen D3DXVec3Normalize( &blick, &blick); Blickwinkelvektor normalisieren if( blick.x*blick.x + blick.z*blick.z < 0.005) Verhinderung des Überkopfschwenks { if( ((blick.y > 0) && (hoch > 0)) || ((blick.y < 0) && (hoch < 0))) hoch = 0.0; } D3DXVec3Cross( &normale, &blick, &D3DXVECTOR3( 0.0f, 1.0f, 0.0f)); Drehachse (norm) wird berechnet D3DXMatrixRotationAxis( &dreh, &normale, hoch); Drehmatrix (dreh) wird berechnet. D3DXVec3TransformNormal( &blick, &blick, &dreh); Drehmatrix wird auf Blickwinkelvektor angewendet D3DXMatrixRotationY( &dreh, seit); Drehung wird auf die Y-Achse angewendet. D3DXVec3TransformNormal( &blick, &blick, &dreh); Drehmatrix wird auf Blickwinkelvektor angewendet da_gucke_ich_hin = hier_bin_ich + blick; neuer Blickpunkt wird berechnet }

void balance::kamera_fahrt( float seit, float hoch, float speed) { D3DXVECTOR3 delta; kamera_schwenken( seit, hoch); delta = da_gucke_ich_hin-hier_bin_ich; Fahrtrichtungsvektor wird berechnet D3DXVec3Normalize( &delta, &delta); fahrgeschwindigkeit += speed; Änderung der Fahrtgeschwindigkeit delta = fahrgeschwindigkeit*delta; Fahrtvektor wir berechnet hier_bin_ich += delta; Standort wir angepasst da_gucke_ich_hin += delta; Blickpunkt wird angepasst }