OpenGL中的setPixel(x,y)函数的使用。
《计算机图形学》(第三版)中第三章的DDA算法画直线的程序,有一个setPixel(x,y)函数,我在电脑上一模一样的将代码敲上,但是总出现一个错误,说setPixel函...
《计算机图形学》(第三版)中第三章的DDA算法画直线的程序,有一个setPixel(x,y)函数,我在电脑上一模一样的将代码敲上,但是总出现一个错误,说setPixel函数没申明。我想知道具体要怎样修改,要加什么头文件?最好附上修改后的程序。(附我的程序中的DDA算法)
#include <gl\glut.h>
#include <stdlib.h>
#include <math.h>
inline int round(const float a)
{
return int(a+0.5);
}
void lineDDA(int x0,int y0,int xEnd,int yEnd)
{
int dx=xEnd-x0,dy=yEnd-y0,steps,k;
float xIncrement,yIncrement,x=x0,y=y0;
if(fabs(dx*1.0)>fabs(dy*1.0)) {
steps=fabs(dx*1.0);
}
else {
steps=fabs(dy*1.0);
}
xIncrement=float(dx)/float(steps);
yIncrement=float(dy)/float(steps);
setPixel(round(x),round(y));
for(k=0;k<steps;k++) {
x+=xIncrement;
y+=yIncrement;
setPixel(round(x),round(y));
}
} 展开
#include <gl\glut.h>
#include <stdlib.h>
#include <math.h>
inline int round(const float a)
{
return int(a+0.5);
}
void lineDDA(int x0,int y0,int xEnd,int yEnd)
{
int dx=xEnd-x0,dy=yEnd-y0,steps,k;
float xIncrement,yIncrement,x=x0,y=y0;
if(fabs(dx*1.0)>fabs(dy*1.0)) {
steps=fabs(dx*1.0);
}
else {
steps=fabs(dy*1.0);
}
xIncrement=float(dx)/float(steps);
yIncrement=float(dy)/float(steps);
setPixel(round(x),round(y));
for(k=0;k<steps;k++) {
x+=xIncrement;
y+=yIncrement;
setPixel(round(x),round(y));
}
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询