层级结构和建模方法.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
层级结构和建模方法 模型 模型是世界的抽象 这里的世界既可以是真实的,也可以是虚拟的 模型通常是用它的数学方程表示的 在计算机科学中应用抽象数据类型模拟对象的组织 在计算机图形学中应用几何对象模拟整个世界 模型的数学表示 当建立一个数学模型时,需要仔细确定采用哪种数学表示 根据所需要模拟的现象进行选择 例:常微分方程适用于模拟弹簧质子系统的行为;而偏微分方程则适用于模拟流体的行为 在计算机图形学中关键在于几何对象的表示方式以及对象之间关系的反映 分级建模 基本内容 线性建模的局限性 符号与实例 分级模型 关联的模型 机器人 介绍树模型与DAG模型 实例变换 从一个原型对象(称为一个符号, symbol)开始 在模型中对象的出现称为一个实例(instance) 需要进行放缩、定向、定位 定义实例的变换 符号-实例表 存贮模型的方法是:给每个符号赋一个编号,并存贮实例变换的参数 汽车模型的关系 符号-实例表并没有显示出来模型各部分之间的关系 考虑汽车的模型 车身+ 四个一样的车轮 两个符号 向前运动的速度由车轮的旋转速度确定的 由函数调用反映结构 car(speed) { chassis(); wheel(right_front); wheel(left_front); wheel(right_rear); wheel(left_rear); } 没有很好地反映各部分之间的关系 图结构 图(graph)由节点(node)和边(edge, 也称为link)组成 边连接两个节点 有向图无向图 环路(cycle): 构造一个循环的有向路径 树结构 一种特殊的图结构,其中每个节点(除了根节点)都有一个父节点 可以有多个子节点 叶子:没有子节点的节点 汽节的树结构模型 DAG结构模型 如果应用所有轮子相同的事实,那么就得到有向无环图(directed acyclic graph, DAG) 与树结构的处理没有很大的不同 应用树结构建模 需要确定把哪种信息放在节点上,哪种信息放在边上 节点 要绘制的内容 指向子节点的指针 边 可以包含变换矩阵改变的信息(也可以保存在节点处) 机器人手臂 关联的模型 机器人手臂就是一个关联的模型(articulated model) 的例子 部分与部分之间在关节处连接在一起 可以通过给定关节角指定模型的状态 机器人手臂中的关系 支架部分独立旋转 单个角度确定它的位置 下臂与基本部分相连 它的位置与支架的旋转相关 必须相对于支架平移,并且绕关节点旋转 上臂与下臂相连 它的位置与支架和下臂的位置有关 相对于下臂部分平移,并且绕与下臂相连的关节处旋转 所需要的矩阵 支架的旋转:Rb 把M = Rb应用到支架上 下臂相对于支架部分部分平移:Tlu 下臂绕关节旋转:Rlu 把M=RbTluRlu应用到下臂上 上臂相对于下臂平移:Tuu 上臂绕关节旋转:Ruu 把M=RbTluRluTuuRuu应用到上臂上 机器人手臂的OpenGL代码 robot_arm() { glRotated(theta, 0.0, 1.0, 0.0); base(); glTranslated(0.0, h1, 0.0); glRotated(phi, 0.0, 1.0, 0.0); lower_arm(); glTranslated(0.0, h2, 0.0); glRoated(psi, 0.0, 1.0, 0.0); upper_arm(); } 机器人手臂的树结构模型 注意上述代码显示了模型中各部分的关系 这样可以很容易改变各部分的样子,而不改变它们相互之间的关系 右图为机器人手臂的树结构模型 希望为节点建立起一个一般的节点结构 可能的节点结构 推广 需要处理多个子节点的情形 如何表示一个更一般的树结构? 如何遍历这样的数据结构? 动画 如何动态应用? 能否在执行期间创建和删除节点? 人体示意图 模型的建立 可以用二次曲面简单实现前述示意图 椭球面与圆柱面 通过函数调用创建每一部分 torso(); left_upper_arm(); 矩阵描述节点相对于其父节点的位置 Mlll相对于左上腿定位左下腿 带有矩阵的树结构 显示与遍历 示意图的位置是由11个关节角(头部有两个,其它每部分一个)确定的 树结构的显示需要对图进行遍历 访问每个节点一次 在每个节点处的绘制函数描述与节点相联系的部分,并且应用恰当的变换矩阵进行定位和定向 变换矩阵 有10个相关的矩阵 M定位和定向整个示意图,它作用在根节点躯干上 Mh相对于躯干定位头部 Mlua, Mrua, Mlul, Mrul相对于躯干定位手臂与腿 Mlla, Mrla,

文档评论(0)

dianxin1241 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

认证主体王**

1亿VIP精品文档

相关文档

相关课程推荐