




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学基础 第5章交互式技术 本章主要内容 常用的交互技术交互技术的实现 鼠标绘图 二维图形技术综合应用 什么是交互技术 指使用输入设备进行输入的技术 作用 交互式绘图主要内容 交互设备交互任务基本交互技术 如橡皮筋技术 的实现 交互式绘图 设计者在操作计算机系统绘图时 人与计算机之间进行信息交换 从而完成复杂的绘图任务 需要 交互式技术常见系统 AutoCAD Photoshop 3DMAX 视景仿真 Creator Vega 交互技术 交互设备 交互任务三者关系 用户 交互界面 系统程序员图形库 交互设备 交互技术 交互技术 交互任务 图形输入设备的逻辑分类 输入控制 请求模式 RequestMode 输入设备在应用程序的控制下工作 程序在输入请求发出后一直被置于等待状态 直到数据输入 取样模式 SampleMode 应用程序与输入设备同时工作 当输入设备工作时 存储输入数据 并不断更新当前数据 当程序要求输入时 程序采用当前数据值 事件模式 EventMode 每次用户对输入设备的一次操作以及形成的数据称为一个事件 Event 事件按先后顺序排成队列 先进先出 设备被设置为事件方式 程序与设备同时工作 5 1常用的交互技术 一个交互图形系统或图形应用程序 必须允许用户动态的输入坐标 指定选择功能 拾取操作对象 设置变换坐标 以及在图形显示时对图形的局部进行修改 例如平移 旋转 缩放等比例变换 删除等操作 用户还可以允许使用橡皮筋技术 拖动技术等交互技术来进行绘图 这种交互绘图方式完全区别于通过程序自动运行产生的绘图方式 橡皮条技术 定位技术 拖拽技术 定值技术 菜单技术 栅格技术 拾取技术 约束技术 吸附技术 引力域 插入符号 回显功能 直线 圆 矩形橡皮筋 5 1常用的交互技术 定位技术 5 1常用的交互技术 用来给应用程序指定位置坐标 x y 或 x y z 完成此任务一般情况下可采取两种方法 其一 用鼠标移动屏幕上的光标到满意的位置 然后按一下鼠标左键 其二 用键盘直接输入满意的位置坐标 另外 还可以将这些技术混合在一起作用 5 1 1定位技术 5 1 1定位技术 定位是图形输入和图形操作时常用的输入操作之一 定位有直接定位和间接定位两种方式 voidcursor intx inty setwritemode XOR PUT line x 3 y x 3 y line x y 3 x y 3 鼠标等设备的相对移动控制光标定位 异或方式显示光标 在屏幕指定位置画一个十字光标 voidcursor intx inty 5 1 2橡皮筋技术 定位操作有时依赖于环境 例如 在绘图时 已经存在一个圆C和圆外一点A 现在要确定另外一点B 使两点连线AB与圆C相切 这种点的确定可通过使用橡皮条技术而变得容易实现 用橡皮条技术定位 显示线段用异或方式 橡皮筋技术 续 橡皮筋技术图例 5 1 3拖拽技术 拖曳技术被用于拼装定位和其他一些操作 如布局操作 中去 以便使工作变得直观 简便 高效 拖曳一个二极管符号 拖曳技术 5 1 4定值技术 定值输入用于设置物体旋转的角度 缩放的比例因子等 刻度尺与比例尺 圆形刻度尺与比例尺 定值技术定值技术在交互过程中应用很多 而且是必不可少的 用户经常需要输入一个数值 指定一个数量 完成这种任务需要确定精度 单位 需要的设备是键盘或电位计 定值技术有两种 1 键入数值 例如画圆时 输入半径1 2等 2 改变电位计阻值产生要求的数量 可以用模拟的方式实现电位计功能 5 1 5拾取技术 在图形系统的许多交互操作中 经常需要在一个分层的对象结构或虽不分层但很复杂的对象结构中拾取一个基本对象或一些基本对象的集合 然后对其施加某种操作 拾取一个基本对象可以通过一些方法来实现 指定名称法 特征点法 外接矩形法 分类法 直接法 拾取技术 续 拾取操作 5 1 6约束技术 方向约束 如X Y方向上的约束 AutoCAD中命令为autho 栅格约束 输入点用离它最近的网格点位置坐标代替 AutoCAD中命令为Grid 距离为10i 10j 栅格坐标 10 int x 0 5 5 1010 int y 0 5 5 10 5 1 7菜单技术 菜单是一种很重要的交互技术 它可用于指定命令 确定操作对象或选定属性等多中选一的场合 菜单的层次结构 单层次的 多层次的 菜单的表示 字符串方法 图符方法和图像方法 菜单的显示控制 固定式 弹出式 菜单的选择菜单可通过多种设备来选择 如使用指点设备直接选择 使用方向键顺序循环选择 使用数字键指定选择或使用功能键对应选择等 5 1 8网格 Grid 与吸附 Snap 技术 有时要从某已有线段上的点或它的顶点开始绘制另一条线段或其他图形 直接使用定位设备很难保证选中点的重合性 吸附技术则可克服这种困难 带有引力场的线段 网格与吸附技术 网格化是帮助绘制整齐 精确图形的一种技术 有时要从已有的某线段上的点或它的顶点开始绘制另一条线段或其他图形 直接使用定位设备来定位很难保证其重合性 吸附技术可保证用户在定位坐标时只能选择网格上的点 而不能选择网格之间的点 这样就可以克服单纯使用定位设备时无法保证准确性的困难 5 2CAD 交互式图形 系统分析 计算机图形学绘图基础可以使用MFC类库 任何时候可以调用Win32函数 最大程度地利用Windows 与绘图有关的关键类Document 存储数据View 观察窗口 OnDraw 函数 画 的动作 MainFrameApplication 代表应用程序 用户启动应用程序时 Windows交用应用程序框架内置的WinMain函数 寻找一个由CWinApp派生的全局构造的应用程序对象 图形设备接口 GraphicDeviceInterface GDI 管理 图形设备信息 坐标系和映射模式 绘图当前状态 画笔 画刷 颜色 字体 绘图具体操作 画线 画圆等 CGdiObject派生出的对象 CBitmapCBrushCPenCRgnCFontCPalette VC中 绘图应用程序 最重要的类 CDC 设备环境类 功能 其成员函数可以用于对设备环境的操作 绘图工具的使用 GDI对象的选择等 例 CDC pDC pDC LineTo x y 先构造一个CDC对象 然后能使用其成员函数 并及时删除 太多了 系统回在调试窗口中报错 绘图系统设计基本原则 结构层次化通用性强 使用方便处理速度快程序容易 读 查 改 移植 扩充 图形层次结构 一般物体可以分解为不同形体元素的集合 可分层表示 图形 子图形床 床架 床头 分层复杂图形 简单图形 简单CAD绘图软件功能 基本功能图形绘制 点 线 多折线 圆 椭圆 圆弧 颜色 线型改变文本图形放大 缩小 重绘 编辑 删除 复制 移动 高级功能Redo Undo图层三维绘图 5 3交互技术的实现 鼠标绘图 步骤如下 新建一个MFC单文档工程文件 创建绘图菜单 并添加3个子菜单 3 利用ClassWizard为3个菜单项添加菜单响应函数 4 添加代码 绘制直线voidCDrawView OnDrawLine CDC pDC GetDC 获得当前窗口的设备上下文pDC MoveTo 100 100 起点pDC LineTo 400 400 终点 绘制矩形voidCDrawView OnDrawRect CDC pDC GetDC pDC Rectangle 100 100 400 400 绘制圆voidCDrawView OnDrawCircle CDC pDC GetDC pDC Ellipse 100 100 300 300 运行结果 在视图类头文件中添加 添加以下成员变量CPointm p1 m p2 起点和终点intm drawcurrent 当前绘图对象在构造函数中初始化成员变量 CDrawView CDrawView m drawcurrent 0 修改原绘图代码 绘制直线voidCDrawView OnDrawLine m drawcurrent 1 直线 绘制矩形voidCDrawView OnDrawRect m drawcurrent 2 矩形 绘制圆voidCDrawView OnDrawCircle m drawcurrent 3 圆 在OnLButtonDown中添加如下代码 voidCDrawView OnLButtonDown UINTnFlags CPointpoint if 0 m drawcurrent return 非绘图状态m p1 point 得到起点CView OnLButtonDown nFlags point 在OnLButtonUp中添加如下代码 include math h voidCDrawView OnLButtonUp UINTnFlags CPointpoint if 0 m drawcurrent return m p2 point CDC pDC GetDC switch m drawcurrent case1 直线pDC MoveTo m p1 pDC LineTo m p2 break case2 矩形pDC Rectangle m p1 x m p1 y m p2 x m p2 y break case3 圆intr int sqrt m p2 x m p1 x m p2 x m p1 x m p2 y m p1 y m p2 y m p1 y 半径intx1 x2 y1 y2 x1 m p1 x r y1 m p1 y r x2 m p1 x r y2 m p1 y r pDC Ellipse x1 y1 x2 y2 break CView OnLButtonUp nFlags point 5 4二维图形技术综合应用 给出两个实例 参见教材 实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子支付与网络安全问题:高中信息技术课程教案
- 时装品牌干货知识培训课件
- 自由飞翔的小鸟450字7篇
- 纪检宣传课件
- 山东省济宁市(五四学制)2024-2025学年六年级下学期期末历史试题(含答案)
- 描写春天的中考作文(14篇)
- 品牌宣传与推广执行方案
- 农业种植资源共享和流通合作协议
- 品牌宣传与市场拓展方案
- 2025年嵌入式系统设计师考试嵌入式系统大数据试题
- 2025江苏徐州沛县经济开发区发展集团招聘工作人员拟聘用人员笔试历年参考题库附带答案详解
- 2025年《健康知识》竞赛题库含试题及答案
- 残疾预防日班会课件
- 茶叶加工工安全技术操作规程
- 2025年云南高考地理试题解读及答案详解讲评课件
- 2025年航空发电机项目可行性分析报告
- 【课件】集合的概念+课件-2025-2026学年高一上学期数学人教A版(2019)必修第一册
- 江苏清泉化学股份有限公司年产4000吨呋喃、1000吨四氢呋喃丙烷、3000吨四氢呋喃技改项目环评资料环境影响
- 亲子互动策略分析-洞察阐释
- 食堂安全培训课件
- 坏死性筋膜炎护理疑难病例讨论
评论
0/150
提交评论