Hallo,
ich bin grad bei der Lektion "Abseits Eckiger Welten".
1. Noch mal eine Frage. Eine Linie , mit einer Kurve besteht immer aus mind. 3 Kontrollpunkten.
Bei 2 wäre es nur eine Gerade oder ?
2. dann was zu den Flächen. Ich verstehe nicht diesen Befehl
var
CtrlPoints2D : Array[0..3] of Array[0..3] of Array[0..2] of TGlFloat;
Auf was beziehen sich die arrays und wie würde ich diesen Befehl Belegen ?
`
3. was bedeutet dieser aufruf?
CtrlPoints2D[a,b,c] (wieder die frage auf welche arrays bezieht sich das ?)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Na das ist ein 3Dimensionales Array. Jedes Feld des ersten Arrays enthält wiederum ein Array was wiederum ein Array enthält.
Falls dir das nicht geläufig ist, solltest du dich nochmal etwas mit den Grundlagen beschäftigen. Ist nicht bös gemeint, aber sowas sollte bekannt sein.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mi Aug 17, 2005 13:19 Beiträge: 98 Wohnort: Jahnsdorf
Ich glaub eher, er meint, was die einzelnen Dimensionen dieses Arrays angeben.
Ich denk mal, er will folgendes Wissen:
Die ersten beiden Dimensionen definieren eine Ebene (mit 4 * 4 Kontrollpunkten in jede Richtung (also X und Y-Richtung auf der Ebene) und die dritte Dimension definiert den Vektor, wo sich der jeweilige Kontroll-Punkt im Raum befindet.
Stell Dir das am besten so vor, dass Du eine ebene Fläche mit 3 Einheiten Ausdehnung in X- und Y-Richtung hast (senktrechte ist die Z-Achse des Raums) Nach jeder Einheit auf dieser Fläche sind Unterteilungslinien. Und überall, wo dieses Raster einen Schnittpunkt hat stellst Du Dir durch senkrechten verbunden die Kontroll-Punkte vor, die den jeweils zugeordneten Raster-Punkt in Ihre Richtung ziehen. Und nun lass die Einschränkungen mit den Senkrechten einfach mal weg *g*
Ich denke, dieses Bild sollte man im Tutorial mal noch schematisieren zur Veranschaulichung ...
ah .. danke @LarsMiddendorf
arrays sind mir geläufig .. ich kenne aber nur diese eine schreibweise die LarsMiddendorf eben genannt hat.
und auch nochmal danke an BenBE .. habs nochnich gamnz verstanden .. aber ich geb mir mühe ..
hab ich das jetzt richtrig verstandcen (gehen wir mal weg von der fläche zur linie)
const
ctrlpoints : Array[0..3] of Array[0..2] of TGlFloat =
((-4.0, 2.0, 0.0),(-2.0, 4.0, 0.0),(2.0, -4.0, 0.0),(4.0, 2.0, 0.0));
der erste array sagt an, wie viele Kontroll punkte (hier 4)
der zweite zeigt an aus wie vielen punkten koordinaten oder wie auch immer der kontrollpunkt besteht ?(hier 3 sprich x,y,z) ..
is das so korrekt ?!
wie übersetzte ich nun den oberen befehl in eine fläche ?
Registriert: Mi Aug 17, 2005 13:19 Beiträge: 98 Wohnort: Jahnsdorf
Jup, das hast Du so richtig verstanden. Ich hab mich schon mal mit i0n0s in Verbindung gesetzt, damit er das mal kurz grafisch umsetzen kann (meine Talente sind da nicht allzu sonderlich).
Im wesentlichen ist das aber so, dass Du Dir für die Fläche einfach aus 4 Punkten oder 4 Punkten in Y-Richtung vorstellen musst, dass diese eine Bezier-Kurve bilden.
Du hast also auf einem Raster von 4x4 Punkten eine Art Height Map. Jeder deiner Kontrollpunkte fasst nun auf einem dieser Punkte dieses Rasters an und versucht, diesen Punkt so nah wie möglich an sich ran zu ziehen.
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluPerspective(45.0, ClientWidth/ClientHeight{Verhältniss höhe zu Breite}, NearClipping{wie nah man sehen kann}, FarClipping{wie weit man sehen kann});
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.