发明名称 基于三维VRML模型的虚拟装配方法
摘要 基于三维VRML模型的虚拟装配方法,其特征在于,它是一种在计算机网络上基于虚拟现实建模语言的异地跨平台协同直接预装配的方法,它能够恢复基础装配件和零部件的主要几何信息使VRML在具有网络浏览功能的同时又具有可装配性。它提出了圆柱轴孔配合、面贴面配合、面对齐配合共三种装配方法,能够准确地实现装配的约束,完成对异构CAD系统生成VRML模型的完整装配操作,实现异地协同装配,具有易于实现,计算效率高的优点,计算误差在0.02%以下,可普遍用于基于网络的虚拟设计系统。
申请公布号 CN1564165A 申请公布日期 2005.01.12
申请号 CN200410033618.4 申请日期 2004.04.13
申请人 清华大学 发明人 田凌;王巧玉;尤国平;陈继忠;童秉枢
分类号 G06F17/50 主分类号 G06F17/50
代理机构 代理人
主权项 1、基于三维VRML模型的虚拟装配方法,其特征在于,它是一种在计算机网络上基于虚拟现实建模语言,即VRML格式文件的异地跨平台协同直接预装配方法,它由一下三种装配方法共同组成,它们各依次含有以下步骤:圆柱、轴孔配合,即fit装配方法,它依次含有以下步骤:设定:装配基础件的一个顶面定位点为P0,一个顶面定位法向量为三个侧面定位点为P1,P2,P3,三个侧面定位法向量为零部件轴的一个顶面定位点为Pi0,一个顶面定位法向量三个侧面定位点Pi1,Pi2,Pi3,三个侧面定位法向量i为零部件的编号;与装配基础件和零部件的几何位置有关,可由已有的软件包Cortona SDK得到,在本申请文件中是给定的;(一)用同步移动搜索算法计算轴心的位置,依次含有一下步骤:(1)对各已知定位向量单位化,再把单位化后的新分量值赋给上述各向量;(2)保持点P1的位置不变,把不在同一平面的点P2、P3投射到与垂直且点P1所在的平面内,点P′2,P′3表示点P2,P3在平面ψ内的投影,得到:(3)计算且单位化;(4)计算出ψ平面内点P1,P′2,P′3各自沿着所在弦的搜索方向向量(5)在平面ψ内找出点P1,P′2,P′3所在各弦的中点,它依次含有以下步骤:(5.1)分别计算P1点的搜索方向向量和矢量夹角α的余弦、矢量与P′2点的搜索方向向量夹角β的余弦:<math> <mrow> <mi>cos</mi> <mi>&alpha;</mi> <mo>=</mo> <mover> <msub> <mi>T</mi> <msub> <mi>P</mi> <mn>1</mn> </msub> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <mover> <mrow> <msubsup> <mi>P</mi> <mn>2</mn> <mo>&prime;</mo> </msubsup> <msub> <mi>P</mi> <mn>1</mn> </msub> </mrow> <mo>&RightArrow;</mo> </mover> <mo>,</mo> </mrow> </math> <math> <mrow> <mi>cos</mi> <mi>&beta;</mi> <mo>=</mo> <mover> <mrow> <msubsup> <mi>P</mi> <mn>2</mn> <mo>&prime;</mo> </msubsup> <msub> <mi>P</mi> <mn>1</mn> </msub> </mrow> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <mover> <msub> <mi>T</mi> <msubsup> <mi>P</mi> <mn>2</mn> <mo>&prime;</mo> </msubsup> </msub> <mo>&RightArrow;</mo> </mover> </mrow> </math> (5.2)比较α,β,根据比较结果,移动P1,P′2点:若α>β,则把P1,P′2分别移动到P′1,P″2点,移动步长分别为即:若α<β,则同α>β时所述,即再重新计算cosα,cosβ,比较α,β大小,直到α=β,转入下一步;(5.3)分别计算P′2点的搜索方向向量和矢量夹角_的余弦、P′3点的搜索方向向量和矢量夹角γ的余弦:<math> <mrow> <mi>cos</mi> <mi>&gamma;</mi> <mo>=</mo> <mover> <msub> <mi>T</mi> <msubsup> <mi>P</mi> <mn>3</mn> <mo>&prime;</mo> </msubsup> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <mover> <mrow> <msubsup> <mi>P</mi> <mn>2</mn> <mo>&prime;</mo> </msubsup> <msubsup> <mi>P</mi> <mn>3</mn> <mo>&prime;</mo> </msubsup> </mrow> <mo>&RightArrow;</mo> </mover> </mrow> </math> (5.4)比较γ与_,根据比较结果移动P1,P′2,P′3点:若γ>_,则把P1,P′2,P′3点分别移至P′1,P″2,P″3点,移动步长分别为若γ<_,则同γ>_所述,即:再重新比较γ与_,直到γ=_,进入下一步骤;(5.5)分别计算点P′3的搜索方向向量和矢量的夹角λ的余弦、点P1的搜索方向向量和矢量夹角δ的余弦:<math> <mrow> <mi>cos</mi> <mi>&lambda;</mi> <mo>=</mo> <mover> <msub> <mi>T</mi> <msubsup> <mi>P</mi> <mn>3</mn> <mo>&prime;</mo> </msubsup> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <mover> <mrow> <msubsup> <mi>P</mi> <mn>3</mn> <mo>&prime;</mo> </msubsup> <msub> <mi>P</mi> <mn>1</mn> </msub> </mrow> <mo>&RightArrow;</mo> </mover> <mo>,</mo> </mrow> </math> <math> <mrow> <mi>cos</mi> <mi>&delta;</mi> <mo>=</mo> <mover> <msub> <mi>T</mi> <msub> <mi>P</mi> <mn>1</mn> </msub> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <mover> <mrow> <msubsup> <mi>P</mi> <mn>3</mn> <mo>&prime;</mo> </msubsup> <msub> <mi>P</mi> <mn>1</mn> </msub> </mrow> <mo>&RightArrow;</mo> </mover> </mrow> </math> (5.6)比较λ与δ,根据比较结果移动P1,P′2,P′3点:若λ>δ,则把P1,P′2,P′3分别移动至P′1,P″2,P″3,移动步长分别为若λ<δ,则同λ>δ所述,即:再重新比较λ与δ,直到λ=δ,进入下一步骤;(6)根据步骤(5)得到的各弦中点P1,P′2,P′3,计算得圆心Pc:<math> <mrow> <mover> <mrow> <msub> <mi>P</mi> <mi>c</mi> </msub> <mo>-</mo> <msub> <mi>P</mi> <mn>1</mn> </msub> </mrow> <mo>&RightArrow;</mo> </mover> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mover> <mrow> <msub> <mi>P</mi> <mn>1</mn> </msub> <mo>-</mo> <msub> <mi>P</mi> <mn>2</mn> </msub> </mrow> <mo>&RightArrow;</mo> </mover> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mover> <msub> <mi>V</mi> <mn>1</mn> </msub> <mo>&RightArrow;</mo> </mover> <mo>-</mo> <mover> <msub> <mi>V</mi> <mn>2</mn> </msub> <mo>&RightArrow;</mo> </mover> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <mover> <msub> <mi>V</mi> <mn>1</mn> </msub> <mo>&RightArrow;</mo> </mover> </mrow> </math> (二)根据装配的条件,计算变换矩阵,完成装配操作,它依次含有以下步骤:(1)单位化步骤(一)得到的所有向量;(2)判别是否同向或反向:若同向,则按下述方法直接作平移计算;若反向,则令旋转角θ=π,以为轴翻转π角;若不同向也不反向,则转入下一步骤:(3)按下式得到的旋转向量和旋转角θ,再设置旋转域:<math> <mrow> <mi>cos</mi> <mi>&theta;</mi> <mo>=</mo> <mover> <msub> <mi>V</mi> <mrow> <mi>i</mi> <mn>0</mn> </mrow> </msub> <mo>&RightArrow;</mo> </mover> <mo>&CenterDot;</mo> <mover> <msub> <mi>V</mi> <mn>0</mn> </msub> <mo>&RightArrow;</mo> </mover> <mo>,</mo> </mrow> </math> <math> <mrow> <mover> <mi>R</mi> <mo>&RightArrow;</mo> </mover> <mo>=</mo> <mover> <msub> <mi>V</mi> <mrow> <mi>i</mi> <mn>0</mn> </mrow> </msub> <mo>&RightArrow;</mo> </mover> <mo>&times;</mo> <mover> <msub> <mi>V</mi> <mn>0</mn> </msub> <mo>&RightArrow;</mo> </mover> </mrow> </math> 按下式得到第i零部件的变换矩阵Ti[4][4]:<math> <mrow> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>[</mo> <mn>4</mn> <mo>]</mo> <mo>[</mo> <mn>4</mn> <mo>]</mo> <mo>=</mo> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <msubsup> <mi>R</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msubsup> <mi>R</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msubsup> <mi>R</mi> <mi>z</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>z</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> (4)按下式把零部件轴的坐标体系Mi[4][4]变换到装配基础件坐标体系M[4][4]内,即: M[4][4]=Mi[4][4]×Ti[4][4](5)将Pi0,Pi1,Pi2,Pi3各点分别经过旋转变换矩阵Ti[4][4]变换为新的坐标位置P′i0,P′i1,P′i2,P′i3;(6)利用同步移动搜索算法分别计算装配基础件的轴心Pc和零部件的轴心Pic (7)由下式计算P′i0,Pic在装配基础件坐标系下经过平移变换后的位置P″i0,P′ic:其中与P′i0与P″i0,Pic与P′ic满足如下关系(Δx,Δy,Δz未知):其中,P′i0(P′i0x,P′i0y,P′i0z)为Pi0在零部件坐标系下经过旋转变换后的三维坐标;P″i0(P′i0x,P′i0y,P′i0z)为P′i0在装配基础件坐标系下经过平移变换后的三维坐标;Picx,Picy,Picz为Pic在零部件坐标系下的三维坐标;P′icx,P′icy,P′icz为P′ic在装配基础件坐标系下的三维坐标;(8)按下式计算平移域,得到(Δx,Δy,Δz)(9)把Δx,Δy,Δz代入Ti[4][4]得到最终变换矩阵Ti[4][4];<math> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <msubsup> <mi>R</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msubsup> <mi>R</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msubsup> <mi>R</mi> <mi>z</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>z</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mi>&Delta;x</mi> </mtd> <mtd> <mi>&Delta;y</mi> </mtd> <mtd> <mi>&Delta;z</mi> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </math> (10)将平移域的值(Δx,Δy,Δz)和旋转域的值写入VRML模型,完成位置变换实现装配;(三)Align即面贴和装配和Against即面对齐装配,它们依次含有以下步骤:(1)对于法向量构成的装配基础件坐标系M[4][4],首先判断是否正交,若正交,则执行下述步骤,否则终止执行;(2)对于法向量构成的零部件坐标系Mi[4][4],判断是否正交,若正交,则执行下述步骤,否则终止执行;(3)利用式Ti[4][4]=Mi[4][4]-1×M[4][4]或Ti[4][4]=M′i[4][4]-1×M[4][4]算出坐标系变换矩阵Ti[4][4]:其中,Ti[4][4]=Mi[4][4]-1×M[4][4]由Align的装配关系必须满足的下述关系式得到: M[4][4]=Mi[4][4]×Ti[4][4]Ti[4][4]=M′i[4][4]-1×M[4][4]由Against的装配关系必须满足的下述关系式得到: M[4][4]=M′i[4][4]×Ti[4][4](4)Ti[4][4]还可以表示为<math> <mrow> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>[</mo> <mn>4</mn> <mo>]</mo> <mo>[</mo> <mn>4</mn> <mo>]</mo> <mo>=</mo> <mfenced open='[' close=']'> <mtable> <mtr> <mtd> <msubsup> <mi>R</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>x</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msubsup> <mi>R</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>y</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msub> <mi>R</mi> <mi>y</mi> </msub> <mo>&CenterDot;</mo> <msub> <mi>R</mi> <mi>z</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>cos</mi> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mi>x</mi> </msub> <mo>&CenterDot;</mo> <mi>sin</mi> <mi>&theta;</mi> </mtd> <mtd> <msubsup> <mi>R</mi> <mi>z</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msubsup> <mi>R</mi> <mi>z</mi> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mi>cos</mi> <mi>&theta;</mi> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mi>&Delta;x</mi> </mtd> <mtd> <mi>&Delta;y</mi> </mtd> <mtd> <mi>&Delta;z</mi> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </math> 根据步骤(3)(4)中的Ti[4][4],求出旋转矢量和转角为θ,以及平移域值(Δx,Δy,Δz);(5)将旋转域和平移域值写入VRML模型,完成Against/Align装配。
地址 100084北京市100084-82信箱