1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| void GLWindow::point() { glPointSize(5.0f); glBegin(GL_POINTS); glVertex2f(0.5f, 0.5f); glEnd(); glFlush(); }
void GLWindow::line() { glEnable(GL_LINE_STIPPLE); glLineStipple(2, 0x0F0F); glLineWidth(10.0f); glBegin(GL_LINES); glVertex2f(0.0f, 0.0f); glVertex2f(0.5f, 0.5f); glEnd(); glDisable(GL_LINE_STIPPLE); glFlush(); }
void GLWindow::circle() { glBegin(GL_POLYGON); for (int i = 0; i<n; ++i) glVertex2f(R*qCos(2 * Pi / n*i), R*qSin(2 * Pi / n*i)); glEnd(); glFlush(); }
void GLWindow::triangle() { glBegin(GL_TRIANGLES); glVertex3f(-0.5,0,0); glVertex3f(0,1,0); glVertex3f(0.5,0,0); glEnd(); }
void GLWindow::quad() { glBegin(GL_QUADS); glVertex3f(-0.5,0.5,0); glVertex3f(0.5,0.5,0); glVertex3f(0.5,-0.5,0); glVertex3f(-0.5,-0.5,0); glEnd(); }
void GLWindow::star() { GLfloat a = 1 / (2 - 2 * cos(72 * Pi / 180)); GLfloat bx = a * cos(18 * Pi / 180); GLfloat by = a * sin(18 * Pi / 180); GLfloat cy = -a * cos(18 * Pi / 180); GLfloat PointA[2] = { 0, a }, PointB[2] = { bx, by }, PointC[2] = { 0.5, cy }, PointD[2] = { -0.5, cy }, PointE[2] = { -bx, by }; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINE_LOOP); glVertex2fv(PointA); glVertex2fv(PointC); glVertex2fv(PointE); glVertex2fv(PointB); glVertex2fv(PointD); glEnd(); glFlush(); }
void GLWindow::mySin() { GLfloat x; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); glVertex2f(-1.0f, 0.0f); glVertex2f(1.0f, 0.0f); glVertex2f(0.0f, -1.0f); glVertex2f(0.0f, 1.0f); glEnd(); glBegin(GL_LINE_STRIP); for (x = -1.0f / factor; x<1.0f / factor; x += 0.01f) { glVertex2f(x*factor, sin(x)*factor); } glEnd(); glFlush(); }
|