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

Aktuelle Zeit: Fr Jul 18, 2025 12:41

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Runde Rlächen
BeitragVerfasst: Mi Jun 07, 2006 13:57 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
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 ?)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 07, 2006 14:36 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 07, 2006 18:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Code:
  1. var
  2. CtrlPoints2D : Array[0..3] of Array[0..3] of Array[0..2] of TGlFloat;


ist das gleiche wie

Code:
  1. var
  2. CtrlPoints2D : Array[0..3, 0..3, 0..2] of Single;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 07, 2006 21:50 
Offline
DGL Member
Benutzeravatar

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 ...

HTH.

_________________
Administrator of Project Omorphia
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 14, 2006 13:33 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
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 ..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 14, 2006 13:42 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
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 ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 14, 2006 16:50 
Offline
DGL Member
Benutzeravatar

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.

_________________
Administrator of Project Omorphia
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 14, 2006 18:25 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
außer der erste und der letzte Punkt ..
also start und endpunkt ..
da geht die linie doch direkt dran oder ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 14, 2006 18:47 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
Hallo,
hab hier jetzt mal so ne RandomMap erstellt ..
Sie soll so wellenformen haben .. aber irgendwie zeigt er mir nichts auf dem Bildschirm an.

Code:
  1.  
  2. {Diese Procedure wird beim TForm1.Create aufgerufen}
  3. procedure TForm1.CreateCoord ;
  4. Var x,y : integer ;
  5.     z : array[0..3] of integer ;
  6. begin
  7. z[0] := 0 ;
  8. randomize ;
  9. z[1] := random(9) - 4 ;
  10. z[2] := random(9) - 4 ;
  11. z[3] := random(9) - 4 ;
  12.  for y := 0 to 3 do
  13.   for x := 0 to 3 do
  14.    begin
  15.     CtrlPoints2D[x,y,0]:=(x-1);
  16.     CtrlPoints2D[x,y,1]:=z[x] ;
  17.     CtrlPoints2D[x,y,2]:=0
  18.    end;
  19. end;
  20.  
  21. procedure TForm1.RenderFlaeche ;
  22. begin
  23.     glMap2f(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4, @CtrlPoints2D[0,0,0]);
  24.     glEnable(GL_MAP2_VERTEX_3);
  25.     glEnable(GL_AUTO_NORMAL);
  26.     glEnable(GL_NORMALIZE);
  27.     glMapGrid2f(40, 0.0, 1.0, 40, 0.0, 1.0);
  28. end;
  29.  
  30. procedure TForm1.glDraw ;
  31. begin
  32. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  33. glClearColor(0.0,0.0,0.0,0.0) ;
  34.  
  35. glMatrixMode(GL_PROJECTION);
  36.  glLoadIdentity;
  37.  gluPerspective(45.0, ClientWidth/ClientHeight{Verhältniss höhe zu Breite}, NearClipping{wie nah man sehen kann}, FarClipping{wie weit man sehen kann});
  38.  
  39. glMatrixMode(GL_MODELVIEW) ;
  40. glLoadIdentity ;
  41. glRotatef(45,1,0,1) ;
  42. gltranslatef(0,0,-5) ;
  43.  
  44. RenderFlaeche ;
  45. SwapBuffers(DC);
  46. end;
  47.  
  48.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 15, 2006 11:33 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
ok .. hab den fehler selbst gefunden


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 15, 2006 11:43 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Und welchen, falls jemand daselbe Problem hat?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 15, 2006 13:23 
Offline
DGL Member

Registriert: Mi Mär 08, 2006 17:38
Beiträge: 153
Wohnort: Rümmelsheim (bei Bingen)
oh sorry
ja .. also ich hab im quelltext diese Zeile vergessen

glEvalMesh2(GL_FILL, 0, 40, 0, 40);
erst dann wird das objekt ja gemalt


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


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]