代码:
/*使用Bresenham算法画线*/
#include<iostream>
using namespace std;
#include<windows.h>
#include<math.h>
#include<gl/glut.h>
void myDisplay(void);
void setPixel(int x,int y);
int round(const float a);
void ChangeSize(GLsizei w, GLsizei h);
void lineBres(int x0,int y0,int xEnd,int yEnd);
void myDisplay(void){
lineBres(50,50,200,200);
}
void setPixel(int x,int y){
glPointSize(5.0f);
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd();
glFlush();
}
int round(const float a){
return int(a+0.5);
}
void ChangeSize(GLsizei w, GLsizei h){
if(h==0)
h=1;
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho(0.0f,250.0f,0.0f,250.0f*h/w,1.0,-1.0);
else
glOrtho(0.0f,250.0f*w/h,0.0f,250.0f,1.0,-1.0);
}
void lineBres(int x0,int y0,int xEnd,int yEnd){
/*
Bresenham画线法的要点在于:
对于xk来说,需要选择下一个坐标位置究竟是(xk+