Mit der folgenden Funktion, das zeichnet einen gefüllten Kreis in opengl, wie mache ich es zeigen an verschiedenen Koordinaten des Fensters?
Hallo Leute, ich habe folgenden code zum zeichnen eines gefüllten Kreises in opengl. Das problem ist, dass es zieht in der Mitte des Bildschirms. Wie mache ich es ziehen, in einer anderen position?
Danke, und hier ist der code:
#define CIRCLE_RADIUS = 0.15f
int circle_points = 100;
void draw()
{
glClear(GL_COLOR_BUFFER_BIT);
double angle = 2* PI/circle_points ;
glPolygonMode( GL_FRONT, GL_FILL );
glColor3f(0.2, 0.5, 0.5 );
glBegin(GL_POLYGON);
double angle1 = 0.0;
glVertex2d( CIRCLE_RADIUS * cos(0.0) , CIRCLE_RADIUS * sin(0.0));
int i;
for (i = 0; i < circle_points; i++)
{
glVertex2d(CIRCLE_RADIUS * cos(angle1), CIRCLE_RADIUS *sin(angle1));
angle1 += angle ;
}
glEnd();
glFlush();
}
InformationsquelleAutor dasen | 2010-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die offensichtliche Weg wäre zu nennen
glTranslate
ersten. Beachten Sie jedoch, dass Sie bereits den selben Zweck erfüllen, ein bisschen einfacher mit einer Kombination vonglPointSize
undglPoint
:Bevor Sie starten, zeichnen von Kreisen, Sie wollen so etwas wie:
Ansonsten, deine "Kreise" könnte am Ende als Quadrate.
Edit: Ohne zu wissen, wie Sie sich eingerichtet haben, Ihre Koordinaten, ist es unmöglich zu wissen, was die "Links-oben" - position ist, aber Sie könnte so etwas tun:
Könnten Sie dann anrufen (z.B.):
Natürlich die Richtungen, die ich gegeben habe, davon ausgehen, nicht (beispielsweise) gedreht, dein Blick, so
x
erhöht, um die Rechte undy
steigt nach oben.InformationsquelleAutor Jerry Coffin