计算机图形学编程.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:73 大小:397KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机图形学编程.doc

计算机图形学编程.doc

预览

免费试读已结束,剩余 63 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

voidCMy2013302590083View::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCMy2013302590083Doc*pDoc=GetDocument();//获得文档类指针CClientDCht(this);//定义当前绘图设备if(MenuID==1){//DDA直线if(PressNum==0){//第一次按键将第一点保留在文档类数组中pDoc->group[PressNum]=point;PressNum++;mPointOrign=point;mPointOld=point;//记录第一点SetCapture();}elseif(PressNum==1){//第二次按键保留第二点,用文档类画线pDoc->group[PressNum]=point;PressNum=0;//程序画图pDoc->DDALine(&ht);ReleaseCapture();}}if(MenuID==2){//中点直线if(PressNum==0){//第一次按键将第一点保留在文档类数组中pDoc->group[PressNum]=point;PressNum++;mPointOrign=point;mPointOld=point;//记录第一点SetCapture();}elseif(PressNum==1){//第二次按键保留第二点,用文档类画线pDoc->group[PressNum]=point;PressNum=0;//程序画图pDoc->MidLine(&ht);ReleaseCapture();}}if(MenuID==3||MenuID==4||MenuID==33){//Bresenham圆以及正负法圆if(PressNum==0){//第一次按键将第一点保留在mPointOrignpDoc->group[PressNum]=point;PressNum++;mPointOrign=point;mPointOld=point;//记录第一点SetCapture();}elseif(PressNum==1&&MenuID==3){//第二次按键调用文档类画圆程序画图PressNum=0;ASSERT_VALID(pDoc);//测试文档对象是否有效运行pDoc->BCircle(&ht,mPointOrign,point);ReleaseCapture();}elseif(PressNum==1&&MenuID==4){//第二次按键调用画圆程序画图pDoc->group[PressNum]=point;PressNum=0;ASSERT_VALID(pDoc);//测试文档对象是否有效运行pDoc->ZCircle(&ht,mPointOrign,point);ReleaseCapture();}elseif(PressNum==1&&MenuID==33)//圆裁剪{pDoc->group[PressNum]=point;PressNum=0;pDoc->CircleCut(&ht,mPointOrign,point);ReleaseCapture();}}if(MenuID==5){//Bezier曲线选点并做十字标志pDoc->group[pDoc->PointNum++]=point;ht.MoveTo(point.x-5,point.y);ht.LineTo(point.x+5,point.y);ht.MoveTo(point.x,point.y-5);ht.LineTo(point.x,point.y+5);SetCapture();PressNum=1;}if(MenuID==6&&PressNum==0){//在控制点数组中,逐个寻找for(inti=0;i<pDoc->PointNum;i++){if((point.x>=pDoc->group[i].x-5)&&(point.x<=pDoc->group[i].x+5