辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc
- 文档编号:8153455
- 上传时间:2023-05-10
- 格式:DOC
- 页数:12
- 大小:2.08MB
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc
《辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc(12页珍藏版)》请在冰点文库上搜索。
{
CDC*pDC=GetDC();
intx;
floatdy,dx,y,m;
dx=x1-x0;
dy=y1-y0;
m=dy/dx;
y=y0;
for(x=x0;
x<
=x1;
x++)
{
pDC->
SetPixel(x,(int)(y+0.5),color);
y+=m;
}
ReleaseDC(pDC);
}
ondraw调用:
OnDraw(CDC*pDC)
CDDADoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//TODO:
adddrawcodefornativedatahere
LineDDA(50,55,500,120,123);
试验结果:
2、用中点(Besenham)算法实现椭圆或圆的绘制。
源代码:
voidCBesenhamView:
BresenhmaCircle(intxc,intyc,intr,intcolor)
CDC*pDC=GetDC();
intx=0,y=r,p=3-2*r;
while(x<
y)
SetPixel(xc+x,yc+y,color);
SetPixel(xc-x,yc+y,color);
SetPixel(xc+x,yc-y,color);
SetPixel(xc-x,yc-y,color);
SetPixel(xc+y,yc+x,color);
SetPixel(xc-y,yc+x,color);
SetPixel(xc+y,yc-x,color);
SetPixel(xc-y,yc-x,color);
if(p<
0)p+=4*x+6;
else{
p+=4*(x-y)+10;
y--;
}
x++;
if(x==y)
ondraw函数调用:
CBesenhamDoc*pDoc=GetDocument();
BresenhmaCircle(200,200,100,120);
实验题目 图形的裁剪
1、通过实验,进一步理解和掌握Cohen_Sutherland裁剪算法;
2、掌握用Cohen_Sutherland裁剪算法裁减多边形的基本过程
3、通过编程,会在VC++环境下用Sutherland_Hogman算法编程实现用矩形窗口对的裁剪。
用Cohen_Sutherland算法编程实现用矩形窗口对直线的裁剪。
voidCClipView:
OnLButtonDown(UINTnFlags,CPointpoint)
Addyourmessagehandlercodehereand/orcalldefault
CDC*pDC=CWnd:
GetDC();
//CView:
OnLButtonDown(nFlags,point);
Rectrect;
intx,y;
x=point.x;
y=point.y;
rect.xmin=x-100;
rect.xmax=x+100;
rect.ymin=y-100;
rect.ymax=y+100;
floatx0=0,y0=0,x1=400,y1=400;
//DrawLine(x0,y0,x1,y1,pDC);
Clip(x0,y0,x1,y1,&
rect,pDC);
ReleaseDC(pDC);
voidClip(floatx0,floaty0,floatx1,floaty1,Rect*rect,CDC*pDC){
boolaccept,done;
accept=FALSE;
done=FALSE;
OutCodecode0,code1;
OutCode*outCode;
floatx,y;
CompOutCode(x0,y0,rect,&
code0);
CompOutCode(x1,y1,rect,&
code1);
do{
if(code0.all==0&
&
code1.all==0){
accept=TRUE;
done=TRUE;
}elseif((code0.all&
code1.all)!
=0){
}else{
if(code0.all!
outCode=&
code0;
}else{
code1;
}
if(outCode->
left){
y=y0+(y1-y0)*(rect->
xmin-x0)/(x1-x0);
x=(float)rect->
xmin;
}elseif(outCode->
top){
x=x0+(x1-x0)*(rect->
ymax-y0)/(y1-y0);
y=(float)rect->
ymax;
right){
xmax-x0)/(x1-x0);
xmax;
bottom){
ymin-y0)/(y1-y0);
ymin;
all==code0.all){
x0=x;
y0=y;
CompOutCode(x0,y0,rect,&
x1=x;
y1=y;
CompOutCode(x1,y1,rect,&
}while(!
done);
if(accept){
DrawLine((int)x0,(int)y0,(int)x1,(int)y1,pDC,1);
实验结果:
实验题目 几何图形变换实验
1、通过实验,运用计算机图形学的知识、原理和算法;
2、掌握二维和三维图形几何变换;
3、通过使用VC++编程环境实现图形几何变换;
1、在VC++编程环境下建立二维平面图形(长方形)实现其缩放、平移、旋转几何变换;
2、在VC++编程环境下建立三维立方体,实现缩放、平移、旋转等几何变换,。
4、进行特殊模式的运行测试,并结合情况进行调整;
1、实验源代码
voidCJHBHView:
CJHBHDoc*pDoc=GetDocument();
PY(pDC,x1,y1,x2,y2,Tx,Ty);
BBI(pDC,x1,y1,x2,y2,Sx,Sy);
XZ(pDC,x1,y1,x2,y2,a);
PY(CDC*pDC,intx1,inty1,intx2,inty2,intTx,intTy)
intx3,y3,x4,y4;
x3=x1+Tx;
y3=y1+Ty;
x4=x2+Tx;
y4=y2+Ty;
pDC->
MoveTo(x1,y1);
LineTo(x2,y2);
MoveTo(x3,y3);
LineTo(x4,y4);
BBI(CDC*pDC,intx1,inty1,intx2,inty2,floatSx,floatSy)
x3=x1*Sx;
y3=y1*Sy;
x4=x2*Sx;
y4=y2*Sy;
XZ(CDC*pDC,intx1,inty1,intx2,inty2,doublea)
intx3,y3;
doublerad=0.0174533;
doublealpha,alpha1,c,s;
alpha1=alpha*rad;
c=cos(alpha1);
s=sin(alpha1);
x3=x2*c-y2*s;
y3=y2*c+x2*s;
LineTo(x3,y3);
2、实验结果
实验题目 BEZIER曲线和B样条曲线的绘制
1、通过实验,进一步理解和掌握生成BEZIER曲线的算法;
2、掌握BEZIER曲线的基本生成过程;
3、通过编程,会在VC++环境下编程实现三次BEZIER曲线的绘制;
4、通过实验,进一步理解和掌握生成B样条曲线的算法;
5、掌握B样条曲线的基本生成过程;
6、通过编程,会在VC++环境下编程实现三次B样条曲线的绘制。
1、编程实现三次BEZIER曲线的绘制;
2、编程实现三次B样条曲线的绘制。
1.绘制BEZIER曲线:
voidCBezierView:
DrawBezier()
CClientDCdc(this);
doublex,y;
intrate=800,n;
n=CtrlPoint-1;
for(doublet=0;
t<
=1;
t+=1.0/rate)
x=0;
y=0;
for(inti=0;
i<
=n;
i++)
{
x+=pt[i].x*Cnk(n,i)*pow(t,i)*pow(1-t,n-i);
y+=pt[i].y*Cnk(n,i)*pow(t,i)*pow(1-t,n-i);
dc.SetPixel(ROUND(x),ROUND(y),RGB(0,0,255));
2.绘制B样条曲线:
voidCCgView:
OnBSpline()
doublex,y,Step,t,t2,t3,F03,F13,F23,F33;
Step=0.1;
for(inti=0;
a-1;
t=0.0;
do{
t2=t*t;
t3=t2*t;
F03=(3*t2-t3-3*t+1.0)/6.0;
F13=(3*t3-6*t2+4.0)/6.0;
F23=(3*t2-3*t3+3*t+1.0)/6.0;
F33=t3/6.0;
x=(F03*px[i]+F13*px[i+1]+F23*px[i+2]+F33*px[i+3]);
y=(F03*py[i]+F13*py[i+1]+F23*py[i+2]+F33*py[i+3]);
if(t<
Step&
i==0)dc.MoveTo(x,y);
elsedc.LineTo(x,y);
t+=Step;
}while(t<
1.0001);
}
实验结果
Bezier曲线
B样条曲线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 辽工大 自考 实践 矿业 信息 计算机 应用