void CShape2D::drawSquare(void) {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_STRIP);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2f(-0.5f, 0.5f);//
glVertex2f(0.5f, 0.5f);//
glVertex2f(0.5f, 0.5f);//
glVertex2f(0.5f, -0.5f);//
glVertex2f(0.5f, -0.5f);//
glVertex2f(-0.5f, -0.5f);//
glVertex2f(-0.5f, -0.5f);//
glVertex2f(-0.5f, 0.5f);//
glEnd();
glFlush();
}
void CShape2D::drawTriangle(void) {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glPointSize(10.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(-1.0f, 0.0f);//动态绘制x坐标
glVertex2f(beginXpoint_ += 0.01f, 0.0f);
glVertex2f(0.0f,1.0f);//动态绘制y坐标
glVertex2f(0.0f,beginYpoint_ -= 0.01f);
glEnd();
//GL_TRIANGLES:连接由3个点组成的三角形,4,5...都不能组成三角形(也就是除以3除不尽)
//GL_TRIANGLE_STRIP:不闭合,相邻坐标连接,但首尾不连接
//GL_TRIANGLE_FAN:相邻坐标连接,但闭合首尾连接
glBegin(GL_TRIANGLE_FAN);
glPointSize(10.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(-0.75f, 0.53f);//
glVertex2f(0.15f, -0.57f);//
glVertex2f(-0.35f, -0.8f);//
glVertex2f(0.35f, 0.58f);//
glEnd();
glFlush();
glutSwapBuffers();
}
void CShape2D::drawRectangle(void) {
glClear(GL_COLOR_BUFFER_BIT);
//GL_QUADS:连接由3个点组成的三角形,1,2,3,5等都不能组成三角形(也就是除以4除不尽)
//GL_QUAD_STRIP:不闭合
//GL_POLYGON: 闭合
glBegin(GL_LINES);
glPointSize(10.0f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(-1.0f, 0.0f);//动态绘制x坐标
glVertex2f(beginXpoint_ += 0.01f, 0.0f);
glVertex2f(0.0f,1.0f);//动态绘制y坐标
glVertex2f(0.0f,beginYpoint_ -= 0.01f);
glEnd();
glBegin(GL_POLYGON);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(0.35f, -0.57f);//
glVertex2f(-0.55f, -0.57f);//
glVertex2f(-0.25f, 0.20f);//
glVertex2f(0.15f, 0.57f);//
glVertex2f(0.3f, 0.78f);//
glEnd();
glFlush();
glutSwapBuffers();
}
void CShape2D::drawSin(void){
/*
*角度A1转换弧度A2:
A2=A1*PI/180
弧度A2转换角度A1:
A1=A2*180/PI
*/
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(-1.0f, 0.0f);//动态绘制x坐标
glVertex2f(beginXpoint_ += 0.01f, 0.0f);
glVertex2f(0.0f,1.0f);//动态绘制y坐标
glVertex2f(0.0f,beginYpoint_ -= 0.01f);
glEnd();
glBegin(GL_LINES);
glColor3f(1.0f, 0.0f, 0.0f);
if(beginPoint_.x <= 2.0f * Pi) {
for(GLfloat fVaule = 0; fVaule <= beginPoint_.x; fVaule += 0.00001f) {
glVertex2f(fVaule, sin(fVaule * 180 / Pi));
}
beginPoint_.x += 0.01f;
}
glEnd();
glFlush();
glutSwapBuffers();
}
void CShape2D::drawCos(void) {
/*
*角度A1转换弧度A2:
A2=A1*PI/180
弧度A2转换角度A1:
A1=A2*180/PI
*/
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(-1.0f, 0.0f);//动态绘制x坐标
glVertex2f(beginXpoint_ += 0.01f, 0.0f);
glVertex2f(0.0f,1.0f);//动态绘制y坐标
glVertex2f(0.0f,beginYpoint_ -= 0.01f);
glEnd();
glBegin(GL_LINES);
glColor3f(1.0f, 0.0f, 0.0f);
if(beginPoint_.x <= 2.0f * Pi) {
for(GLfloat fVaule = 0; fVaule <= beginPoint_.x; fVaule += 0.00001f) {
glVertex2f(fVaule, cos(fVaule * 180 / Pi));
}
beginPoint_.x += 0.01f;
}
glEnd();
glFlush();
glutSwapBuffers();
}
OpengL画cos,sin,三角形等图形
最新推荐文章于 2023-09-02 12:59:48 发布