收藏 分销(赏)

图形学教案讲课笔记.doc

上传人:xrp****65 文档编号:7674915 上传时间:2025-01-11 格式:DOC 页数:4 大小:32KB 下载积分:10 金币
下载 相关 举报
图形学教案讲课笔记.doc_第1页
第1页 / 共4页
图形学教案讲课笔记.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
讲课笔记 Vc++ 6.0 直接绘图介绍(OnDraw) u SetPisel语句介绍:SetPixel函数用于绘制一个点,其函数声明如下: COLORREF SetPixel(int x, int y, COLORREF crColor); COLORREF SetPixel(POINT point, COLORREF crColor); GetPixel(int x, int y, COLORREF crColor ); COLORREF GetPixel(POINT point); 例子: void CDrawTestView::OnDraw(CDC* pDC) { CDrawTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here for (int i=0;i<255;i=i+5) { //绘制一系列红颜色程度不同的点 pDC->SetPixel(i+10,100,RGB(i,0,0)); } for (int j=0;j<255;j=j+5) { //用与要绘制的点对应的点的颜色来绘制 pDC->SetPixel(j+10,200,pDC->GetPixel(j+10,100)); } } 函数中三种有获得设备环境对象的方法都使用了,在实际应用中,使用其中一种即可。 void CDrawTestView::Draw(CDC *pDC) { pDC->LineTo(200,100);//使用传入的CDC对象指针绘图 CClientDC dc(this);//构造CClientDC设备环境对象 dc.LineTo(200,200);//利用构造的CClientDC设备环境对象绘图 CDC* p=this->GetDC();//通过GetDC函数获得设备环境对象指针 p->LineTo(100,200);//利用GetDC函数获得设备环境对象指针绘图 this->ReleaseDC(p);//由GetDC函数获得的设备环境对象必须用ReleaseDC函数释放 } DDA直线绘制方法: CDC* Pdc=GetDC(); //获得设备指针 ReleaseDC(pDC); //释放设备指针 菜单设置: 在资源编辑的MENU下双击IDR_MAINFRAME, 制作菜单,在菜单上按右键,选CLASSWIZARD,选command后,双击下面的选项,进入编码设计。 (见caidan) void CMainFrame::OnDrawDda() { // TODO: Add your command handler code here CDC* pDC=GetDC(); //获得设备指针 int x1=100,y1=300,x2=300,y2=400; float x,y; float dx,dy,e; dx=(float)(x2-x1),dy=(float)(y2-y1); e=dy/dx,y=y1; if(abs(e)<1) { for (float x=x1;x<=x2;x++) { pDC->SetPixel(x,int(y+0.5),RGB(255,0,0)); y=y+e; } } if(abs(e)>=1) { for( y=y1;y<=y2;y++) { pDC->SetPixel(int(x+0.5),y,RGB(255,0,0)); x=x+1/e; } } ReleaseDC(pDC); //释放设备指针 } CDC* pDC=GetDC(); //获得设备指针 double x1=100,y1=200,x2=200,y2=300; float x,y; float dx,dy,e; dx = x2 -x1; dy = y2- y1; e = (abs(dx) > abs(dy)) ? abs(dx):abs(dy); dx/=e; dy/=e; x = x1; y = y1; for (int i=1;i<=e;i++) { pDC->SetPixel((int)(x+0.5),(int)(y+0.5),RGB(255,0,0)); x+=dx; y+=dy; } 另书中实现方法: /* float x,y; float dx,dy,e; dx=(float)(x2-x1),dy=(float)(y2-y1); e=dy/dx,y=y1; if(abs(e)<1) { for (float x=x1;x<=x2;x++) { pDC->SetPixel(x,int(y+0.5),RGB(255,0,0)); y=y+e; } } if(abs(e)>=1) { for( y=y1;y<=y2;y++) { pDC->SetPixel(int(x+0.5),y,RGB(255,0,0)); x=x+1/e; } } */ ReleaseDC(pDC); //释放设备指针
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服