G
Guest
Gast
Hallo,
in folgendem Programm (siehe Ausschnitte) werden mit Hilfe einer Bezierkurve 20 Punkte dargestellt.
Gibt es eine Möglichkeit die Koordinaten (x,y,z) dieser Punkte auszulesen? So nach dem Motto:
Dass es so nicht geht ist mir klar, da gl.glEvalCoord1f eine void Methode ist...
Ich hoffe ihr könnt mir helfen.
Gruß Christian
in folgendem Programm (siehe Ausschnitte) werden mit Hilfe einer Bezierkurve 20 Punkte dargestellt.
Code:
// 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:
Code:
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