نقل قول نوشته شده توسط zuck_619 مشاهده تاپیک
چرا ناراحت میشی . سوال کردن که عیب نیست . سوال من اینه که اینجا scrPt مقداردهی نشده و چیزی رسم نمیکنه . مگه یک شی نیست ؟؟؟
به خدا شرمنده شما ببخشید من اشتباه کردم
اما خوب اون خط برای این اضافه شده چون ما تابع circlePlotPoints را بعد از تابعی که الان در حال اجراش هستیم فراخوانی می کنیم یعنی این خط به کامپایلر می گه که ما احتیاج به تعریف این تابع داریم در این نقطه شما می تونی این خط رو حذف کنی اینجوری:

#include <GL/glut.h>

class scrPt {
public:
GLint x, y;
};

void setPixel (GLint x, GLint y)
{
glBegin (GL_POINTS);
glVertex2i (x, y);
glEnd ( );
}


void circlePlotPoints (scrPt circCtr, scrPt circPt);
{
setPixel (circCtr.x + circPt.x, circCtr.y + circPt.y);
setPixel (circCtr.x - circPt.x, circCtr.y + circPt.y);
setPixel (circCtr.x + circPt.x, circCtr.y - circPt.y);
setPixel (circCtr.x - circPt.x, circCtr.y - circPt.y);
setPixel (circCtr.x + circPt.y, circCtr.y + circPt.x);
setPixel (circCtr.x - circPt.y, circCtr.y + circPt.x);
setPixel (circCtr.x + circPt.y, circCtr.y - circPt.x);
setPixel (circCtr.x - circPt.y, circCtr.y - circPt.x);
}


void circleMidpoint (scrPt circCtr, GLint radius)
{
scrPt circPt;

GLint p = 1 - radius; // Initial value of midpoint parameter.

circPt.x = 0; // Set coordinates for top point of circle.
circPt.y = radius;

/* Plot the initial point in each circle quadrant. */
circlePlotPoints (circCtr, circPt);

/* Calculate next points and plot in each octant. */
while (circPt.x < circPt.y) {
circPt.x++;
if (p < 0)
p += 2 * circPt.x + 1;
else {
circPt.y--;
p += 2 * (circPt.x - circPt.y) + 1;
}
circlePlotPoints (circCtr, circPt);
}
}


یا اینجوری

#include <GL/glut.h>

class scrPt {
public:
GLint x, y;
};

void setPixel (GLint x, GLint y)
{
glBegin (GL_POINTS);
glVertex2i (x, y);
glEnd ( );
}

void circlePlotPoints (scrPt, scrPt);

void circleMidpoint (scrPt circCtr, GLint radius)
{
scrPt circPt;

GLint p = 1 - radius; // Initial value of midpoint parameter.

circPt.x = 0; // Set coordinates for top point of circle.
circPt.y = radius;

/* Plot the initial point in each circle quadrant. */
circlePlotPoints (circCtr, circPt);

/* Calculate next points and plot in each octant. */
while (circPt.x < circPt.y) {
circPt.x++;
if (p < 0)
p += 2 * circPt.x + 1;
else {
circPt.y--;
p += 2 * (circPt.x - circPt.y) + 1;
}
circlePlotPoints (circCtr, circPt);
}
}

void circlePlotPoints (scrPt circCtr, scrPt circPt);
{
setPixel (circCtr.x + circPt.x, circCtr.y + circPt.y);
setPixel (circCtr.x - circPt.x, circCtr.y + circPt.y);
setPixel (circCtr.x + circPt.x, circCtr.y - circPt.y);
setPixel (circCtr.x - circPt.x, circCtr.y - circPt.y);
setPixel (circCtr.x + circPt.y, circCtr.y + circPt.x);
setPixel (circCtr.x - circPt.y, circCtr.y + circPt.x);
setPixel (circCtr.x + circPt.y, circCtr.y - circPt.x);
setPixel (circCtr.x - circPt.y, circCtr.y - circPt.x);
}