# Bezierkurven - Punktkoordinaten



## Guest (14. Mrz 2008)

Hallo,

in folgendem Programm (siehe Ausschnitte) werden mit Hilfe einer Bezierkurve 20 Punkte dargestellt. 


```
// Anzahl der Auswertungen
		int num = 20;

		// FloatBuffer zum Einpacken der Kontrollpunkte
		FloatBuffer buf;

		// Kontrollpunkte
		float[] control_points = { 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f, 0.5f, 0.0f, 1.0f, -0.5f, 0.0f, 0.0f, -0.5f, 0.0f,

		0.0f, 0.0f, 0.0f };

		public void display(GLAutoDrawable gLDrawable) {
			gl = gLDrawable.getGL();
			glu = new GLU();
			GLUT glut = new GLUT();
			gl.glClear(gl.GL_COLOR_BUFFER_BIT);
			gl.glLoadIdentity();
			glu.gluLookAt(0, 0, 0.5, 0, 0, 0, 0, 1, 0);
			// Kontrollpunkte in FloatBuffer einwickeln
			buf = FloatBuffer.wrap(control_points);
			// Parameter für die spätere Auswertung setzen
			gl.glMap1f(gl.GL_MAP1_VERTEX_3, 0.0f, 1.0f, 3, 6, buf);
			gl.glEnable(gl.GL_MAP1_VERTEX_3);
			gl.glBegin(gl.GL_POINTS);
			for (float i = 0.0f; i <= num; i++) {
				// und auswerten

				gl.glEvalCoord1f(i / num);
			}
			gl.glEnd();
			gl.glFlush();
		}
```

Gibt es eine Möglichkeit die Koordinaten (x,y,z) dieser Punkte auszulesen? So nach dem Motto: 


```
Vector vec = gl.glEvalCoord1f(i / num);
```

Dass es so nicht geht ist mir klar, da gl.glEvalCoord1f eine void Methode ist...

Ich hoffe ihr könnt mir helfen.

Gruß Christian


----------



## Guest (14. Mrz 2008)

Es handelt sich übrigens um JOGL.

Sorry hatte ich vergessen zu erwähnen.


----------



## Marco13 (15. Mrz 2008)

GL-eigene Funktionen gibt's da glaubich erstmal nicht (da hast du ja bestimmt schon fleißig danach gesucht :wink:  :wink:  :wink: ). Notfalls selbst ausrechnen. "Algorithmus von DeCasteljau" (oder so)


----------



## Gast (15. Mrz 2008)

Schade die Befürchtung hatte ich auch ...


----------

