J'ai découvert ce qui ne va pas. Il s'avère que j'utilisais sizeof(array)
incorrectement. (Spécifiquement, en référence au code ci-dessous, au lieu d'utiliser i < numCurves
, j'ai naïvement essayé de faire i < sizeof(points)
)
Par conséquent, au lieu de dessiner 4-5 points, j'ai fini par dessiner 192 courbes, ce qui conduit à des résultats étranges. Le diamant au milieu était dû à ne pas se connecter au point de départ. Pour référence pour les futurs qui veut faire, voici le code:
Erroneous Image:
Erroneous Picture http://img535.imageshack.us/img535/8207/failfd.png
Produit final:
Final Product http://img685.imageshack.us/img685/7641/finalsa.png
void drawIrregularPolygon(GLfloat points[][4][3], int numCurves)
// REQUIRES: GLfloat points to be a polygon and center of circle to be current matrix
// EFFECTS: An irregular shape would be drawn
{
for (int i = 0; i < numCurves; i++)
{
glMap1f(GL_MAP1_VERTEX_3, 0.0f, 1.0f, 3, 4, &points[i][0][0]);
glBegin(GL_POLYGON); //replace GL_POLYGON with GL_LINE_STRIP if you need outline
for (int j = 0; j <= TOTAL_SEGMENTS; j++)
glEvalCoord1f((GLfloat) j/TOTAL_SEGMENTS);
glVertex2f(points[0][0][0], points[0][0][1]);
glEnd();
}
}
Pouvez-vous publier des images montrant votre problème ou décrire un peu plus ? Vous n'arrivez pas à comprendre ce que vous essayez d'accomplir et ce que vous obtenez. Le lien ne fonctionne pas. – neodelphi
Ce lien avec l'image est cassé –
@VJo: Image Fix'd. – genpfault