辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc

上传人:wj 文档编号:8153455 上传时间:2023-05-10 格式:DOC 页数:12 大小:2.08MB
下载 相关 举报
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第1页
第1页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第2页
第2页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第3页
第3页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第4页
第4页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第5页
第5页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第6页
第6页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第7页
第7页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第8页
第8页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第9页
第9页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第10页
第10页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第11页
第11页 / 共12页
辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc

《辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc(12页珍藏版)》请在冰点文库上搜索。

辽工大自考实践矿业信息与计算机应用Word文档下载推荐.doc

{

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样条曲线

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2