#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);
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,150);
glutCreateWindow("Dot Plot of a Function");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
//Horizon
glVertex2d(0.0,(GLdouble)screenHeight/2.0);
glVertex2d((GLdouble)screenWidth,(GLdouble)screenHeight/2.0);
//Vertical 即使画了也看不见
glVertex2d(0.0,0.0);
glVertex2d(0.0,(GLdouble)screenHeight);
glEnd();
glFlush();
glBegin(GL_POINTS);
for(GLdouble x =0.0; x<4.0; x+=0.005)
{
GLdouble func = exp(-x)* cos(2*PI*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);
//x: 0~4 范围内进行比例变换 y:-1~1
/************************************************************************/
/* sx = x * screenWidth/4.0
sy = (y+1.0)*screenHeight/2.0
sx = Ax + B
sy = Cy + D*/
/************************************************************************/
A = screenWidth /4.0;
B = 0.0;
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);
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,150);
glutCreateWindow("Dot Plot of a Function");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
//Horizon
glVertex2d(0.0,(GLdouble)screenHeight/2.0);
glVertex2d((GLdouble)screenWidth,(GLdouble)screenHeight/2.0);
//Vertical 即使画了也看不见
glVertex2d(0.0,0.0);
glVertex2d(0.0,(GLdouble)screenHeight);
glEnd();
glFlush();
glBegin(GL_POINTS);
for(GLdouble x =0.0; x<4.0; x+=0.005)
{
GLdouble func = exp(-x)* cos(2*PI*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);
//x: 0~4 范围内进行比例变换 y:-1~1
/************************************************************************/
/* sx = x * screenWidth/4.0
sy = (y+1.0)*screenHeight/2.0
sx = Ax + B
sy = Cy + D*/
/************************************************************************/
A = screenWidth /4.0;
B = 0.0;
C = D = screenHeight/2.0;
}