Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 03, 2025 22:29

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kamerafahrten
BeitragVerfasst: Fr Jan 10, 2003 04:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

es heißt ja immerwieder man könne Bezier kurven gut für Kamerafahten benutzen... nun wollte ich das grad mal machen..

Na ja, Problem 1 war:
Die BezierCurve darf nur max. 8 Punkte haben...

Problem 2:
glEvalCoord1f liefert Koordinaten zurück... wie kann ich die rausbekommen???

Also, wie bekomme ich die X,Y,Z Koordinaten einer Kurve an der Stelle 0,3 ihrer gesamt länge heraus...??? :roll:

Au'revoir,
Aya~

PS: Bitte nich einfach nur auf das Tutorial von DelphiC und das RedBook verweisen... DelphiC hat zwar eine Formel gezeigt wie man es per hand ausrechnen kann, aber soweit ich das verstanden hab nur mit 3 Punkten.. ich hab aber 8 :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 10, 2003 08:48 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Hm, ich persönlich hatte die Problematik leider nicht. Aber die Kurve von Hand auszurechnen dürfte IMO warscheinlich die beste Lösung sein. Und was in einem Beispiel mit 3 Punkten tut, müsste mit 8 auch Funktionieren, oder? (Weiss es leider nicht genau. Hab's nicht probiert). Such doch einfach mal im Netz nach entsprechenden Algos für die Kurve...

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 10, 2003 14:06 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Ja, bezier Kurven sind prima geeigent für Kamerafahrten.

@DelphiC hat zwar eine Formel gezeigt wie man es per hand ausrechnen kann, aber soweit ich das verstanden hab nur mit 3 Punkten.. ich hab aber 8:

du hast 2 Möglichkeiten:
1. Du machst keinen 8 Knoten Bezier sondern teilst ihn auf.
2. Du Benutzt die Formel zum Errehcnen der Basisfunktionen(die in Meinem Tutorial übrigens steht - ich hab sie ja auch verwendet) für 8 Knotenpunkte.
Das ganze findest du unter folgendem Satz:
Zitat:
Nun haben wir eine Definition einer quadratischen Bézier Kurve entwickelt. Es gibt eine einfache Formel für die Basis Funktionen von Bezier Kurven für einen beliebigen Grad. n ist der Grad, i beziffert die Basis Funktion und reicht damit von 0 bis n:

Da ist ein Bildchen drunter, das sich wegen der schwarzen schrift ein wenig schlecht liest, aber in der Druckansicht kann mans gut lesen.

Da sieht man mal wieder, wie gut ihr meine Tutorials anschaut :-( Wäre denk ich, besonders bei meinen Tutorials manchmal sehr zu empfehlen, sie etwas langsamer zu lesen.


Zuletzt geändert von Delphic am So Jul 19, 2009 16:30, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 10, 2003 14:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

also... ich hab die Formel schon gesehen gehabt, nur ich kann damit nich soooviel anfangen... :(

Bild

Was ist B?? Also, was bekomme ich da raus??? und, wie setzte ich da Koordinaten etc ein..?

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 10, 2003 15:01 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Also die Grundstrucktur einer jeden Bezier Kurve:
Q(t)=Summe von i=0 bis n Bi(t)*Pi
Q(t)=Punkt an der Stelle t
Und diese grässliche Formel von Oben erzeugt die entsprechenden Bs, sie ethält keine besonderen Rechenzeichen, ausser vielleciht Fakultät(das !), das kennt nicht jeder Schüler. Ist aber ganz einfach. Ich denke diese Beispiele zeigen das deutlich:
(0!=1)
1!=1
2!=2*1=2
3!=3*2*1=6
4!=4*3*2*1=24
5!=5*4*3*2*1=120

Im Netz wirst du keine sonderlich anderen Formeln finden und für 8 Knoten wirds keiner ausgerechnet hingestellt haben, also musst du das selber echnen - viel Spas ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 10, 2003 15:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
huhu,

mh.. ich bin zu doof :cry:
Ich hab immernochnicht verstanden wie ich mit der Formel da Koordinaten für einen Punkt auf der Kurve ausrechnen kann...

B ist doch nur EIN Punkt... aber keine X,Y,Z Koordinate...? *schaut nichtsverstehend*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 10, 2003 15:19 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
B ist kein Punk, B sind die Blendfunktionen. Pi sind die Punkte(jeweils mit X,Y,Z Komponente) und die werden mit dem Werten von B skalarmultipliziert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 11, 2003 01:08 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
so, jetzt hab ich auch zeit für dich:
stell dir einen Punkt p vor, der durch 3 koordinaten gegeben ist:
P = (x,y,z) und du skalarmultiplizierst ihn jetzt mit einer zahl(in unserem fall den wert der blendfunktionen), dann erhältst du:
s*P=(s*x, s*y, s*z)

oder du addierst 2 punkte p1(x1, y1, z1) und p2(x2, y2, z2), dann erhältst du
p1 + p2 = (x1+x2, y1 + y2, z1 + z2).

simpelste vektorrechnerei die dahintersteckt, ich hoffe du kannst jetzt deine eigenen kamerafahrten bauen.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 16 Queries | GZIP : On ]