CAD教程 行业资讯 3D模型下载 Pro/E教程 CAD书店 软件下载 联系我们
技术资料 CAD招聘 发布招聘 CAD问答 设计竞赛 CAD认证 北京CAD培训
视频教程 PS教程 CAD图纸 图书推荐 Solidworks教程 CAD培训 CAD软件商

 最新视频教程Pro/ENGINEER Wildfire2.0 工业设计实例视频教程 (全套免费在线学习)   AutoCAD视频教程每日更新
 
首页 > CAD在线问答 > 计算机图形学

计算机图形学

2010-10-06 51自学网



我下了几个程序 是画直线的 老师让我们给讲出来是怎么回事 谁能帮帮我啊 中点画直线CDC*PDC=GetDC ();int xa=500,ya=300,xb=200,yb=400,c=RGB(0,255,0);int temp1,temp2;if(xa>xb){temp1=xa; xa=xb; xb=temp1; temp2=ya; ya=yb; yb=temp2;}int x,y,a,b,d;a=ya-yb;b=xb-xa;float dx,dy,k;dx=(float) (xb-xa),dy=(float) (yb-ya);k=dy/dx,y=ya,x=xa;if(k>0) {if(k>=1) {d=a+2*b; for(y=ya;y<=yb;) {if(d>0) {PDC->SetPixel (x+=1,y+=1,c); d=d+2*a+2*b;} else {PDC->SetPixel (x,y+=1,c); d=d+2*b;}}} else {d=2*a+b; for(x=xa;x<=xb;) {if(d>=0) {PDC->SetPixel(x+=1,y+=1,c); d=d+2*a;} else {PDC->SetPixel(x+=1,y,c); d=d+2*a+2*b;} }}}if(k<0) {if(k>-1) {d=2*a-b; for(x=xa;x<=xb;) {if(d>=0) {PDC->SetPixel(x+=1,y-=1,c); d=d+2*a-2*b;} else {PDC->SetPixel(x+=1,y,c); d=d+2*a;} }}else {d=a-2*b; for(y=ya;y>=yb;) {if(d>=0) {PDC->SetPixel(x,y-=1,c); d=d-2*b;} else {PDC->SetPixel(x+=1,y-=1,c); d=d+a*2-2*b;} }}} ReleaseDC(PDC); DDA画直线CDC* PDC=GetDC ();int xa=500,ya=600,xb=400,yb=100,c=RGB (255,0,0);float x,y;int temp1,temp2;if(xa>xb){temp1=xa; xa=xb; xb=temp1; temp2=ya; ya=yb; yb=temp2;}float dx,dy,k;dx=(float) (xb-xa),dy=(float) (yb-ya);k=dy/dx;x=xa;y=ya;if(k>0){if(k<1) {for(x=xa;x<=xb;) {PDC->SetPixel(x+=1,int(y+0.5),c); y=y+k;} } else {for(y=ya;y<=yb;) {PDC-> SetPixel (int(x+0.5),y+=1,c); x=x+1.0/k;}}}if(k<0){if(k>-1) {for(x=xa;x<=xb;) {PDC->SetPixel(x+=1,int(y-0.5),c); y=y+k;}} else {for(y=ya;y>=yb;) {PDC->SetPixel(int(x+0.5),y-=1,c); x=x-1.0/k;}}} ReleaseDC (PDC); bresen画直线CDC* PDC=GetDC ();int x1=400,y1=500,x2=500,y2=400;int temp1,temp2;if(x1>x2){temp1=x1; x1=x2; x2=temp1; temp2=y1; y1=y2; y2=temp2;}int value=RGB(0,0,255);float b,m,x,y;float dx,dy,p;dx=x2-x1;dy=y2-y1;m=dy/dx;x=x1;y=y1;if(m>0) {if(m<1) {p=2*dy-dx; for(x=x1;x<=x2;) {if(p>=0) {PDC->SetPixel(x+=1,y+=1,value); p=p+2*(dy-dx);} else {PDC->SetPixel(x+=1,y,value); p=p+2*dy;}}} else {p=dy-2*dx; for(y=y1;y<=y2;) {if(p>=0) {PDC->SetPixel(x,y+=1,value); p=p-2*dx;} else {PDC->SetPixel(x+=1,y+=1,value); p=p+2*dy-2*dx;}}}}else {if(m>-1) {p=2*dy+dx; for(x=x1;x<=x2;) {if(p>=0) {PDC->SetPixel(x+=1,y-=1,value); p=p+2*dy;} else {PDC->SetPixel(x+=1,y,value); p=p+2*dx+2*dy;}}} else {p=-2*dx-dy; for(y=y1;y>=y2;) {if(p>=0) {PDC->SetPixel(x+=1,y-=1,value); p=p+2*(dy+dx);} else {PDC->SetPixel(x,y-=1,value); p=p+2*dx;}}}}ReleaseDC (PDC);




 

 

谁有图形学的教程啊 急
各位前辈,帮小弟一个忙,求图形学,日语的前途(高分送给热心人)
我来回答 共有条 回答
用户名: 密码:
验证码: 匿名发表
| AutoCAD | Pro/E | UG | 3Dmax | catia | solidworks | maya | photoshop | 模具设计 | 有限元 | matlab | 计算机图形学 | 室内设计 |