基于OpenGL的dda算法

基于OpenGL的dda算法,opengl,c++14,Opengl,C++14,编译时出错: 将“y1”重新定义为不同类型的符号浮点x1=0、y1=0、x2=0、y2=0 非对象类型“double(double)”不可赋值 y1=240-y 调用“drawPixel”时没有匹配的函数 像素(x1,y1) 对“dda”的调用没有匹配的函数 dda(x1,y1,x2,y2) 代码: 苹果公司__ #包括 #否则 #包括 #恩迪夫 #包括 使用名称空间std; #包括 #包括 //定义常数 #定义最大宽度640 #定义最大高度480 int标志=1; 浮动x1=0,y1=0,

编译时出错:

  • 将“y1”重新定义为不同类型的符号浮点x1=0、y1=0、x2=0、y2=0
  • 非对象类型“double(double)”不可赋值 y1=240-y
  • 调用“drawPixel”时没有匹配的函数 像素(x1,y1)
  • 对“dda”的调用没有匹配的函数 dda(x1,y1,x2,y2)
代码:

苹果公司__ #包括 #否则 #包括 #恩迪夫 #包括 使用名称空间std; #包括 #包括 //定义常数 #定义最大宽度640 #定义最大高度480 int标志=1; 浮动x1=0,y1=0,x2=0,y2=0; //绘制像素的方法 无效绘制像素(整数x,整数y){ glBegin(总分); //设置指针颜色 GL3F(1.0,1.0,1.0); glVertex2i(x,y); 格伦德(); glFlush(); } //显示回调函数 无效显示(){ glClear(GLU颜色缓冲位); gluLookAt(0.0,0.0,0.0,0.0,0.0,5.0,0.0,1.0,0.0); /* glBegin(总分); //设置指针颜色 GL3F(1.0,1.0,1.0); glVertex2i(0,0); glVertex2i(10,0); 格伦德(); */ glFlush(); } //捕捉键盘事件 无效键盘事件(无符号字符c、整数x、整数y){ 如果(c==27){ 出口(0); } } //dda实施 无效dda(浮子m1、浮子n1、浮子m2、浮子n2){ 浮动斜率,Dx,Dy; 浮动dx,dy,长度; int i=1; dx=dy=length=0.0; 斜率=Dx=Dy=0.0; dx=m2-m1; dy=n2-n1; 斜率=dy/dx;//斜率
cout如果您在POSIX上编译这个,您将得到
(和
cmath
)声明,这将与任何同名的全局变量完全冲突

因为您明确地将这个问题标记为
c++14
,所以还应该通过使用

 g++ -std=c++14

(或该标准的任何其他适当版本),这也将阻止libc头声明不在该标准中的函数。

如果在POSIX上编译此函数,最终将声明
(和
cmath
),这将与任何同名全局变量完全冲突

因为您明确地将这个问题标记为
c++14
,所以还应该通过使用

 g++ -std=c++14

(或本标准的任何其他适当版本),这也将阻止libc头声明不在该标准中的函数。

这是完整的错误消息吗?没有提示y1定义了两次?请添加编译器和glut版本。这是完整的错误消息吗?没有提示y1定义了两次?请添加编译器和glut版本。