#include<windows.h>
#include<math.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#include <gl/Glut.h>
const GLint screenWidth = 640;
const GLint screenHeight = 480;
const GLdouble PI = 3.14159 ;
GLdouble A, B, C, D;
void myDisplay(void);
void myInit(void);
/************************************************************************/
/* f(x) = sin(2x) x∈(-π,π) */
/************************************************************************/
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,150);
glutCreateWindow("f(x) = sin(2x) x∈(-π,π) ");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
//H
glVertex2d(0.0,(GLdouble)screenHeight/2.0);
glVertex2d((GLdouble)screenWidth,(GLdouble)screenHeight/2.0);
//V
glVertex2d((GLdouble)screenWidth/2.0,0.0);
glVertex2d((GLdouble)screenWidth/2.0,(GLdouble)screenHeight);
glEnd();
glFlush();
glBegin(GL_POINTS);
for(GLdouble x =-PI; x<PI; x+=0.005)
{//x∈(-π,π)
GLdouble func = sin(2*x);
glVertex2d(A*x+B,C*func+D);
}
glEnd();
glFlush();
}
void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
//glVertex3f(0.0f,0.0f,0.0f);
glColor3f(0.0f, 0.0f, 0.0f); //颜色color
glPointSize(2.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);
//(0,0)点在左下角
//x缩放(2π)&平移(右):sx = (x + PI) * screenWidth/2π
//y缩放(2)&平移(上):sy = (y + 1.0)*screenHeight/2.0
/************************************************************************/
/*
sx = Ax + B
sy = Cy + D*/
/************************************************************************/
A = screenWidth /(2.0*PI);
B = PI* screenWidth /(2.0*PI);
C = D = screenHeight/2.0;
#include<math.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#include <gl/Glut.h>
const GLint screenWidth = 640;
const GLint screenHeight = 480;
const GLdouble PI = 3.14159 ;
GLdouble A, B, C, D;
void myDisplay(void);
void myInit(void);
/************************************************************************/
/* f(x) = sin(2x) x∈(-π,π) */
/************************************************************************/
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,150);
glutCreateWindow("f(x) = sin(2x) x∈(-π,π) ");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
//H
glVertex2d(0.0,(GLdouble)screenHeight/2.0);
glVertex2d((GLdouble)screenWidth,(GLdouble)screenHeight/2.0);
//V
glVertex2d((GLdouble)screenWidth/2.0,0.0);
glVertex2d((GLdouble)screenWidth/2.0,(GLdouble)screenHeight);
glEnd();
glFlush();
glBegin(GL_POINTS);
for(GLdouble x =-PI; x<PI; x+=0.005)
{//x∈(-π,π)
GLdouble func = sin(2*x);
glVertex2d(A*x+B,C*func+D);
}
glEnd();
glFlush();
}
void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
//glVertex3f(0.0f,0.0f,0.0f);
glColor3f(0.0f, 0.0f, 0.0f); //颜色color
glPointSize(2.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);
//(0,0)点在左下角
//x缩放(2π)&平移(右):sx = (x + PI) * screenWidth/2π
//y缩放(2)&平移(上):sy = (y + 1.0)*screenHeight/2.0
/************************************************************************/
/*
sx = Ax + B
sy = Cy + D*/
/************************************************************************/
A = screenWidth /(2.0*PI);
B = PI* screenWidth /(2.0*PI);
C = D = screenHeight/2.0;
}