ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:473.97KB ,
资源ID:4069267      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4069267.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机图形学画直线制作过程Word文档下载推荐.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

计算机图形学画直线制作过程Word文档下载推荐.docx

1、(三)用类向导为对话框IDD_DLG_INPUT创建一个新类CFuncInput,并为控件添加变量:(四)在CFuncInput:DoDataExchange(CDataExchange* pDX)函数中添加如下代码初始化对话框变量值:(这样当弹出对话框时就编辑框中就会有初始值,当然这个也可以不要)SetDlgItemText(IDC_EDIT1,1); SetDlgItemText(IDC_EDIT2,0(五)打开ResourceView进入Menu项,(删除默认的菜单项,左键单机菜单主项,按Delete就可以了,但是别全部删除了,不然这个菜单会消失的,之后就是编译会出问题,在全部删除之前添

2、加菜单“操作”,这个不用多介绍吧,如下:IDM_DRAWLINE 画线(&D)IDM_NEW 刷新(&N)IDM_COLOR 颜色(&C)(六)用类向导为这三个菜单ID添加响应函数,并添加代码如下:void CTask_jd_LineView:OnDrawline() /主要的函数,根据输入的方程式进行绘制直线 / TODO: Add your command handler code here CFuncInput dlg; /这里注释下,要在task_jd_LineView.h文件中添加#includeFuncInput.h包含新建的类 if(dlg.DoModal()=IDOK) flo

3、at k,c; k=StringtoInt(dlg.m_k); c=StringtoInt(dlg.m_c);/这个StringtoInt是自己定义的函数,代码见后文 CDC *pDC=GetDC(); CBrush brush(Color); CBrush *old=pDC-SelectObject(&brush); CRect rt; GetClientRect(&rt); if(k=0&k=1) /斜率大于0且小于1 int x=-(rt.Width()/2)/10; int y=(int)(k*x+c+0.5); float e=k*x+c-y-0.5; for(int i=0;iEl

4、lipse(rt.Width()/2+x*10-3,rt.Height()/2-y*10-3,rt.Width()/2+x*10+3,rt.Height()/2-y*10+3); x+; e+=k; if(e=0) y+; e-; else if(k=-1&0) /斜率大于-1且小于0 float e=k*x+c-y+0.5; if(e=0str.GetAt(i) result+=1.0*(str.GetAt(i)-)/d; d*=10; else AfxMessageBox(系数中有非数字符号,请核实后重新输入! break; return (symbol*result);(八)对了,还有一

5、个很重要的没说,或许应该首先就介绍的,那就是坐标系的创建,用ClassWizard创建Draw函数画坐标系:OnDraw(CDC* pDC) /初始化坐标系 Add your specialized code here and/or call the base class CRect rt; GetClientRect(& Mpoint.x=rt.Width()/2; Mpoint.y=rt.Height()/2;/Mpoint在class CTask_jd_LineView中定义:CPoint Mpoint;代表原点 /*横坐标和纵坐标(粗线)*/ CPen pen(PS_SOLID,3,R

6、GB(0,0,255); CPen *pOldPen=pDC-pen); pDC-MoveTo(Mpoint.x-1,0);LineTo(Mpoint.x-1,rt.Height();MoveTo(0,Mpoint.y-1);LineTo(rt.Width(),Mpoint.y-1);SelectObject(pOldPen); /*坐标系(细线)*/ CPen pen1; pen1.CreatePen(PS_SOLID,1,RGB(180,120,0); pOldPen=pDC-pen1); for(int i=Mpoint.x+10;rt.Width();i+=10) pDC-MoveTo

7、(i,0);LineTo(i,rt.Height(); for(i=Mpoint.x-10;i0;i-=10) for(i=Mpoint.y+10;rt.Height();MoveTo(0,i);LineTo(rt.Width(),i); for(i=Mpoint.y-10;(九)到现在为止,应该就可以运行成功了。在我的代码里还添加了一些元素,让界面更好看:在int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)中删除(工具栏):if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD

8、| WS_VISIBLE | CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY| CBRS_SIZE_DYNAMIC) | !m_wndToolBar.LoadToolBar(IDR_MAINFRAME) TRACE0(Failed to create toolbarn return -1; / fail to create和m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);在BOOL CMain

9、Frame:PreCreateWindow(CREATESTRUCT& cs)中添加:cs.lpszName = _T( 绘制任意直线 ); cs.style = WS_OVERLAPPEDWINDOW; cs.cx=500; cs.cy=400; return TRUE;修改static UINT indicators =/ ID_SEPARATOR, / status line indicator /ID_INDICATOR_CAPS, /ID_INDICATOR_NUM, /ID_INDICATOR_SCRL, IDS_INDICATOR_MOUSE /*在String Table中双击

10、最后的空白行,添加ID:IDS_INDICATOR_MOUSE,标题:“ 当前坐标是: “不要忽略这些空格哈,不然没那么好看的,具体的各位自己调整*/;(十)用ClassWizard天机鼠标移动响应函数,并将鼠标位置所在的坐标显示在状态栏上,代码如下:OnMouseMove(UINT nFlags, CPoint point) /显示当前鼠标在该坐标系中的坐标 Add your message handler code here and/or call default CStatusBar*pFrame=(CStatusBar*)AfxGetMainWnd(); CStatusBar*pSta

11、tusBar=(CStatusBar*)pFrame-GetDescendantWindow(AFX_IDW_STATUS_BAR); CString strMousePoint; strMousePoint.Format(t当前坐标为: x=%1.2f, y=%1.2f,1.0*(point.x-Mpoint.x)/10,1.0*(Mpoint.y-point.y)/10); pStatusBar-SetPaneText(pStatusBar-CommandToIndex(IDS_INDICATOR_MOUSE),strMousePoint); CFormView:OnMouseMove(nFlags, point);(十一)这下真的没问题了,下面大家看看我运行的几个截图效果:1、鼠标放上之前:2、鼠标放上之后:3、点击菜单“画线(&D)”后:4、单机确定后:5、点击菜单“刷新(&N)”后返回图2,点击菜单“颜色(&C)”后:6、选择绿色,点击“确定”,再点击菜单“画线”,改变编辑框的内容:7、点击“确定”后:8、点击“颜色”选择粉红,确定,点击画线,改变对话框值:9、点击“确定”后:10、当然鼠标在上面移动式,状态栏的变化是没法截图过来的,就不演示了,有兴趣的做出来后就看得到了,就到此为止吧,还请多多指教!

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

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