使用C++编写直线生成算法(DDA+Bresenham)并调用OpenGL的画点函数,画出两种算法计算得到的直线。下面的示例程序:
- 蓝线:Bresenham
- 红线:DDA(数值微分算法)
源代码
#include<GL\glut.h>
#include<iostream>
#include<cmath>
using namespace std;
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0); // Set display-window color to white.
glMatrixMode(GL_PROJECTION); // Set projection parameters.
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
}
/*
数值微分方法画线
*/
void LineDDA(int x1, int y1, int x2, int y2)
{
glColor3f(1.0, 0.0, 0.0); // 红色
glPointSize(2.0f);
/*
两点重合尚未判断
*/
int d