91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

C/C++基于openGl的畫直線和三角形光柵化源碼加實驗報告 實現鼠標選點操作 完整源碼 加 完整實驗報告

資源截圖

代碼片段和文件信息


#include?
#include?
#include?
using?namespace?std;

int?x0y0x1y1x2y2dxy;
float?m=0.0;
int?mouse=0;
int?number=0;
class?point
{
public:
int?x0;
int?y0;
int?x1;
int?y1;
};
class?triangle
{
public:
int?x0;
int?y0;
int?x1;
int?y1;
int?x2;
int?y2;
};
point?sz;
triangle?sz1;

//int?number=0;//記錄線的條數
//畫點
void?drawpoint(int?xint?y)
{??
glBegin(GL_POINTS);
????glVertex2d(xy);?
????glEnd();
}
//0void?drawline1(int?xint?yint?d)
{???y=y0;
for(?x?=?x0;?x? ???drawpoint(?x?y?);

????if(?d? y?=?y?+?1;
d?=?d?+?2?*?(x1-x0)?+?2?*?(y0-y1);
}
else?{
d?=?d?+?2?*?(?y0?-?y1?);
}
}
}
//m>1
void?drawline2(int?xint?yint?d)
{???x=x0;
for(?y?=?y0;?y? ???drawpoint(?x?y?);

????if(?d? x?=?x?+?1;

d?=?d?+?2?*?(y1-y0)?+?2?*?(x0-x1);
}
else?{
d?=?d?+?2?*?(?x0?-?x1?);
}
}
}
//-1<=m<0
void?drawline3(int?xint?yint?d)
{
???y=y0;
for(?x?=?x0;?x?>?x1;?x--)?
{
???drawpoint(?x?y?);

????if(?d? y?=?y?+?1;
d?=?d?+?2?*?(x0-x1)?+?2?*?(y0-y1);
}
else?{
d?=?d?+?2?*?(?y0?-?y1?);
}
}
}
//m<-1
void?drawline4(int?xint?yint?d)
{??x=x0;
for(?y?=?y0;?y? ???
drawpoint(?x?y?);

????if(?d? x?=?x?-?1;
d?=?d+?2*(y1-y0)+?2*(x1-x0);
}
else?{
d?=?d?+?2*(x1-x0);
?}
}
}
//y0=y1?畫橫線
void?drawline5(int?xint?yint?d)
{????if(?x0?>?x1?)?{
int?temp?=?x0;
x0?=?x1;
x1?=?temp;
}
y=y0;
?for(x=x0;x drawpoint(?x?y?);

}
//x0=x1?畫豎線
void?drawline6(int?xint?yint?d)
{????if(?y0?>?y1?)?{
int?temp?=?y0;
y0?=?y1;
y1?=?temp;
}
x=x0;
?for(y=y0;y drawpoint(?x?y?);

}
//整合畫直線函數
void?drawline(int?xint?yint?xxint?yy)
{??
glColor3f?(1.0?1.0?1.0);
x0=x;y0=y;x1=xx;y1=yy;
int?temp;
if(?y0?>?y1?)?{
temp?=?y0;
y0?=?y1;
y1?=?temp;

temp?=?x0;
x0?=?x1;
x1?=?temp;

}
???d?=?2?*?(?y1?-?y0?-?(?x1?-?x0?)?);
????m=(float)(y1-y0)/(x1-x0);
if(x0==x1)
drawline6(xy?d);
else?if(y0==y1)
????????drawline5(?x?y?d);
else?
if(m>1)
?????????drawline2(?x?y?d);
else?
if?(m>0)
drawline1(?x?y?d);
else
if?(m>-1)
drawline3(?x?y?d);
else
drawline4(x?y?d);
}




//畫三角形

int?find(int?a[]int?countint?b)
{
int?iflag;
flag=a[0];
if(b==0)
{
for(i=0;i {
if(a[i] flag=a[i];
}
?
}
if(b==1)
{
for(i=0;i {
if(a[i]>flag)
flag=a[i];
}
?
}
return?flag;

}
void?drawtriangle(int?x0int?y0int?x1int?y1int?x2int?y2)
{
//找到最大最小橫縱坐標
int?a[3]b[3];
????a[0]=x0;
a[1]=x1;
a[2]=x2;
b[0]=y0;
b[1]=y1;
b[2]=y2;
int?xMinxMaxyMinyMax;
xMin=find(a30);
xMax=find(a31);
yMin=find(b30);
yMax=find(b31);

//計算常量
float?ABC;
int?f01f02;
f01=(y0-y1)*x2+(x1-x0)*y2+x0*y1-x1*y0;

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2011-10-11?15:20??基于openGl的畫直線和三角形?光柵化源碼加實驗報告\
?????文件????????6543??2011-09-30?17:14??基于openGl的畫直線和三角形?光柵化源碼加實驗報告\Simple.cpp
?????文件??????139264??2011-09-30?17:18??基于openGl的畫直線和三角形?光柵化源碼加實驗報告\實驗二??直線和三角形光柵化算法報告.doc

評論

共有 條評論