计算机图形学画圆和直线代码,计算机图形学作业(中点法画直线和八分画圆法).doc...
中點法畫直線:
void MidBresenhamLine(CDC *pDC,int x0,int y0,int x1,int y1,int color){
int dx,dy,d,up,down,x,y;
if(x0>x1){
x=x1;x1=x0;x0=x;
y=y1;y1=y0;y0=y;
}
x=x0;y=y0;
dx=x1-x0;dy=y1-y0;
d=dx-2*dy;
up=2*x-2*y;
down=-2*dy;
while(x<=x1){
pDC->SetPixel(x,y,color);
x++;
if(d<0){
y++;
d+=up;
}
else d+=down;
}
}
void CMy213View::OnButton32772()
{
CDC *pDC;
pDC=this->GetDC();
int x0=50,y0=50,x1=300,y1=300,color=333;
MidBresenhamLine(pDC,x0,y0,x1,y1,color);
this->ReleaseDC(pDC);
// TODO: 在此添加命令處理程序代碼
}
八分法畫圓:
void CirclePoint(CDC *pDC,int x,int y,int color){
pDC->SetPixel(x+350,y+350,color);
pDC->SetPixel(x+350,-y+350,color);
pDC->SetPixel(-x+350,y+350,color);
pDC->SetPixel(-x+350,-y+350,color);
pDC->SetPixel(y+350,x+350,color);
pDC->SetPixel(-y+350,x+350,color);
pDC->SetPixel(y+350,-x+350,color);
pDC->SetPixel(-y+350,-x+350,color);
}
void MidBresenhamCircle(CDC *pDC,int r,int color){
int x,y,d;
x=0;y=r;d=1-r;
while(x<=y){
CirclePoint(pDC,x,y,color);
if(d<0)d+=2*x+3;
else{
d+=2*(x-y)-5;
y--;
}
x++;
}
}
void CmbView::Onbbb()
{
CDC *pDC;
pDC=this->GetDC();
int r=60,color=333;
MidBresenhamCircle(pDC,r,color);
this->ReleaseDC(pDC);
// TODO: 在此添加命令處理程序代碼
}
總結
以上是生活随笔為你收集整理的计算机图形学画圆和直线代码,计算机图形学作业(中点法画直线和八分画圆法).doc...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机中cmos设置程序,电脑主板上有C
- 下一篇: 计算机最小二乘法拟合,数值计算_第6章