CN106126085A - 一种面向移动设备的多点触控手势交互三维建模方法 - Google Patents
一种面向移动设备的多点触控手势交互三维建模方法 Download PDFInfo
- Publication number
- CN106126085A CN106126085A CN201610414457.6A CN201610414457A CN106126085A CN 106126085 A CN106126085 A CN 106126085A CN 201610414457 A CN201610414457 A CN 201610414457A CN 106126085 A CN106126085 A CN 106126085A
- Authority
- CN
- China
- Prior art keywords
- voxel
- finger
- function
- gesture
- behavior
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 152
- 230000003993 interaction Effects 0.000 title claims abstract description 48
- 230000006399 behavior Effects 0.000 claims abstract description 107
- 239000013598 vector Substances 0.000 claims description 72
- 238000006073 displacement reaction Methods 0.000 claims description 46
- 230000000007 visual effect Effects 0.000 claims description 25
- 238000001125 extrusion Methods 0.000 claims description 23
- 238000003825 pressing Methods 0.000 claims description 23
- 230000009466 transformation Effects 0.000 claims description 23
- 230000033001 locomotion Effects 0.000 claims description 12
- 238000009877 rendering Methods 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 9
- 230000009471 action Effects 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims description 3
- 230000000717 retained effect Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000002679 ablation Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 92
- 230000008901 benefit Effects 0.000 abstract description 7
- 238000012360 testing method Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 238000010408 sweeping Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005057 finger movement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种面向移动设备的多点触控手势交互三维建模方法,该方法主要包括:初始化三维建模空间;义所述三维建模方法中的三维建模操作功能集合,包括:生成、操纵及编辑三大类型的功能操作子集合,及其各功能操作分别对应的多点触控手势行为子集合;在支持多点触控的触摸屏上进行单指或多指的手势交互操作并监听;对手势操作进行识别,将识别的手势行为映射到三维建模功能上并调用。本发明能够通过组合多点触控手势在移动设备上进行相应的三维建模操作,弥补了移动设备屏幕空间有限、点击不精确的缺点,具有建模快速、学习成本低、使用直观的优点,给出了一种适用于移动平台的三维建模系统解决方案。
Description
技术领域
本发明应用于支持多点触控技术的移动设备上,具体涉及到一种面向移动设备的多点触控手势交互三维建模方法。
背景技术
随着移动设备CPU、内存、显示屏等硬件技术的不断发展以及智能操作系统开发环境的日益完善,基于移动设备的应用日愈丰富,一些传统的软件公司和机构也在研究将其PC应用移植到移动平台上。在三维建模领域,已有一些公司推出了其移动平台的建模系统,如AutoCAD,中望CAD等,但是这些应用仍延续传统的基于GUI按钮的交互方式及三维建模方法,由于移动设备上由于屏幕分辨率有限及计算精度等原因,手指触摸点击按钮的效率与精确度较差,导致用户使用困难、学习成本高,使得移动设备上建模系统在用户中的推广受到阻碍。
随着移动设备上电容式显示屏技术的快速发展,市场上几乎所有移动设备已经具备支持多点触控手势交互的能力,而这类交互方式也逐渐在移动应用上成为主流,例如滑动解锁、下拉刷新、滑动翻页等手势交互发明极大提高了用户体验。三维建模领域由于涉及到大量的图形对象操作,对于多点触控手势交互方式十分贴合,可以预想到手势交互方式将会成为移动平台上三维建模领域的主流交互方案。
发明内容
本发明的目的在于克服现有移动平台上三维建模系统的缺点与不足,提供一种基于多点触控手势交互的三维建模方法。
为了达到上述发明目的,本发明采用以下技术方案:
一种面向移动设备的多点触控交互的三维建模方法,包括如下步骤:
S1、利用自定义的数据格式记录三维建模空间的当前状态,并将所记录的当前状态信息作为三维建模空间中各对象的构造参数进行建模空间的初始化;
S2、定义所述三维建模方法中的三维建模操作功能集合,包括:生成、操纵及编辑三大类型的功能操作子集合,及其各功能操作分别对应的多点触控手势行为子集合;
S3、在支持多点触控的触摸屏上进行单指或多指的手势交互操作并监听;
S4、对手势交互操作进行识别,调用识别的手势行为所映射的三维建模功能,实现相应的建模操作。
进一步地,所述步骤S1中数据格式包括:当前摄像机状态信息,记录当前摄像机的位置与方向;模型的构造几何表示树信息,记录当前三维建模空间中所存在的模型体素及它们相互间的组成关系;体素的边界表示结构信息,记录当前三维建模空间中模型体素的点、边、面、体等几何拓扑结构关系。
进一步地,所述生成类型的功能操作子集合包括:规则体素生成功能、直线生成功能、曲线生成功能、圆弧生成功能;其中,
所述规则体素生成功能中规则体素是作为构建CSG树体素结点的正则规则模型集合,包含:长方体、圆柱体、圆锥体、球体,并在特征属性中通过构成体素的参数属性进行定义,该功能需要参数位置坐标x、位置坐标z,在建模空间的笛卡尔坐标系(x,0,z)位置P创建三维形体;
所述直线生成功能,实现绘制一条直线路径,并记录为线拓扑,记录有限元分析的直线逼进剖分,该功能需要参数起始点startPoint、终止点endPoint,直线绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上;
所述曲线生成功能,实现绘制一条贝塞尔曲线路径,n阶的贝塞尔曲线绘制如公式所示:
其中n为贝塞尔曲线阶数,i为贝塞尔曲线的序列点,t是曲线细分段数,并由曲线剖分算法的直线逼进,将曲线分解记录为线拓扑,该功能需要参数曲线控制点集合PointSet,曲线绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上;
所述圆弧生成功能,实现绘制一条圆弧路径,其中圆弧的极坐标方程如公式所示:
其中(h,k)为椭圆中心,(a,b)为椭圆控制参数,(x,y)是点坐标,并通过有限元分析的直线逼进剖分,圆弧记录为多段线拓扑,该功能需要参数焦点矩形rectangle、起始角度startAngle、扫掠角度sweepAngle,圆弧绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上。
进一步地,所述操纵类型的功能操作子集合包括:视角旋转及放缩操纵功能、体素位移及旋转操纵功能、体素轴向及整体伸缩操纵功能、体素快速对齐操纵功能、基准轴操纵功能、基准面操纵功能、基准体操纵功能,其中,
所述视角旋转及放缩操纵功能,通过设置视角变换矩阵从而改变摄像机位置,该功能定义参数摄像机与球心距离D、与Z轴角a、与XOY平面角b,摄像机偏向角c,则视角变换矩阵如公式:
所述体素位移及旋转操纵功能,实现基本体素在3维笛卡尔空间下能够围绕x轴、y轴、z轴做位移变换以及旋转变换,位移功能定义对象相对空间三个坐标轴的位移参数为(Tx,Ty,Tz),旋转功能定义对象的旋转轴心向量与旋转角度V=((x,y,z),α);
所述体素轴向及整体伸缩操纵功能,通过选取物体自身坐标系的x轴、y轴、z轴做伸缩变换,实现基本体素的尺度伸缩功能,功能参数定义为x轴放缩因子,y轴放缩因子,z轴放缩因子(Sx,Sy,Sz);
所述体素快速对齐操纵功能,通过选取源对齐体素的面与被对齐体素的面,实现体素快速对齐操纵功能,将源体素通过调用体素位移、旋转的方法,快速将两个面贴合对齐在一起,功能参数定义为源对齐体素引用S1与被对齐体素引用S2;
所述基准轴操纵功能,通过选取体素的规范轴向,用以作为操纵体素方法的控制轴,通过向量点积进行轴向的匹配,从而选取基准轴;
所述基准面操纵功能,通过选取空间中的二维正则平面,用以作为旋转或扫掠方法的基本平面,再通过判断拾取射线与平面上的三角形网格进行逐一相交性检测的方法,从而定位到具体的面网格引用,功能参数定义为三维空间拾取射线D;
所述基准体操纵功能,通过选取建模空间中CSG树的体素对象,用以作为操纵或特征方法,再通过拾取射线与仿射变换后的OBB包围盒相交判断的方法完成对体素的基准拾取,功能参数定义为三维空间拾取射线D。
进一步地,所述编辑类型的功能操作子集合包括:挤出编辑功能、切除编辑功能、扫掠编辑功能、回扫编辑功能,其中,
所述挤出编辑功能,通过在基本体素的某一面结构上构建一个挤出体素,并定义挤出特征,然后将基本体素与挤出体通过正则体素布尔并集运算实现,功能参数定义为挤出体素引用和被挤出体素引用;
所述切除编辑功能,通过在基本体素的某一面结构上构建一个切除体素,并定义切除特征,然后将基本体素与切除体通过正则体素布尔差集运算实现,功能参数定义为挤出体素引用和被挤出体素引用;
所述扫掠编辑功能,通过选取一个绘制的二维的正则封闭基准面,然后定义一条扫掠轨迹,使得基准面沿扫掠轨迹生成一个扫掠体素,功能参数定义为扫掠面引用与扫掠轨迹引用;
所述回扫编辑功能,通过选取一个绘制的二维与Z轴构成封闭的基准面,使基准面沿Z轴旋转生成一个回扫体素,功能参数定义为回扫面引用与回扫轴引用。
进一步地,所述生成类型的功能操作子集合中各功能分别对应的多点触控手势行为子集合包括:绘制规则体素手势行为、绘制直线手势行为、绘制曲线手势行为、绘制圆弧手势行为,其中,
所述绘制规则体素手势行为的定义如下:先单指Click规则体素按钮,选取体素类型,在单指Click在建模空间上,手指按下的位置P(X,Y)作为体素绘制位置的参数调用绘制规则体素生成方法;
所述绘制直线手势行为的定义如下:先在绘制基准面平面上单指Press,手指位置P(X,Y)作为直线起始点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为直线的终止点参数,并调用绘制直线生成方法;
所述绘制曲线手势行为的定义如下:先在绘制基准面平面上单指Press,手指位置P(X,Y)作为曲线起始控制点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为曲线的终止控制点参数,并将两点加入曲线控制点集合作为参数调用绘制曲线的方法,再数次单指Drag操作,每次手指位置P(X,Y)加入贝塞尔曲线的控制点列表中,并调用绘制曲线生成方法;
所述绘制圆弧手势行为的定义如下:先在绘制基准面平面上单指Press,手指位置P(X,Y)作为椭圆a控制点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为曲线的椭圆b控制点参数,并调用绘制圆弧的建模方法,再单指Click操作,手指位置P(X,Y)与已知的圆心坐标计算出圆弧的起始角度,然后单指Click操作,手指位置P(X,Y)与已知的圆心坐标计算出圆弧的终止角度,最后再次调用绘制圆弧生成方法。
进一步地,所述操纵类型的功能操作子集合中各功能分别对应的多点触控手势行为子集合包括:视角旋转及放缩手势行为、体素位移及旋转手势行为、体素轴向及整体伸缩手势行为、体素快速对齐手势行为、体素复制手势行为和体素基准轴、面、体手势行为,其中,
所述视角旋转及放缩手势行为的定义如下:对于所述视角旋转手势行为,首先单指Press操作,判断按下位置是否不在任何面或体上,如果是,则继续,否则退出,再次Drag操作,将手指相对上次位置的横向相对向量Vx与纵向相对向量Vy记录相应的旋转角度作为参数调用视角旋转操纵方法;对于所述视角放缩手势行为,首先三指Press操作,判断按下位置是否不在任何面或体上,如果是,则继续,否则退出,然后三指Drag操作,并且判断三指移动向量V1、V2、V3方向是否两两互相相反,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算相对Press操作时的位置的向量V1、V2、V3,并计算平均值,方向同时设为三轴,作为参数调用视角旋转操纵方法;
所述体素位移及旋转手势行为的定义如下:对于所述体素位移手势行为,首先双指Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指Drag操作,并且判断是否两指移动方向V2、V3一致,与按下向量V1平行,再计算双指位置P1(X,Y)、P2(X,Y)相对Press操作时的位置的向量V2、V3,并计算位移量L与方向V,作为参数调用体素位移操纵方法;对于所述体素旋转手势,首先双指Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指Drag操作,并且判断是否两指移动方向V2、V3一致,与按下向量V1垂直,再计算双指位置P1(X,Y)、P2(X,Y)相对Press操作时的位置的向量V2、V3,并计算旋转角度a与方向V,作为参数调用体素位移操纵方法。
所述体素轴向及整体伸缩手势行为的定义如下:对于所述体素轴向伸缩手势,首先双指Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指Drag操作,并且判断是否两指移动方向V2、V3相反,与按下向量V1平行,再计算双指位置P1(X,Y)、P2(X,Y)相对Press操作时的位置的向量V2、V3,并计算伸缩量S与方向V,作为参数调用体素伸缩操纵方法;对于所述体素整体伸缩手势,首先三指Press操作,并且三指位置至少一个在物体上,然后三指Drag操作,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算相对Press操作时的位置的向量V1、V2、V3,并计算伸缩平均值S,方向同时设为三轴,作为参数调用体素旋转操纵方法;
所述体素复制手势行为的定义如下:三指Drag操作,其中三指移动向量保持平行且方向一致,根据当前基准体作为参数调用创建规则体素生成方法,并根据三指分别的位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算移动的平均距离S与方向V调用体素位移操纵方法;
所述体素快速对齐手势行为的定义如下:先单指Press操作在源对齐体素位置上,记录手指位置P1(X,Y),再单指Drag操作,并从源对齐体素离开,手指位置P2(X,Y)与P1计算相对向量进而判断源对齐面法向量N1,最后单指Dr ag操作,从空间中进入被对齐体素,手指位置进入前位置P3(X,Y)与抬起位置P4(X,Y)计算相对向量进而判断被对齐面法向量N2,将N1、N2作为参数调用体素对齐方法;
所述体素基准轴、面、体手势行为的定义如下:双指Press操作在建模空间上,双指位置P1(X,Y)、P2(X,Y)计算相对位置向量V作为参数调用基准轴编辑方法;单指Click操作在要选择的面上,单指位置P(X,Y)作为参数调用基准面编辑方法;单指LongClick操作在要选择的体素上,单指位置P(X,Y)作为参数调用基准体编辑方法。
进一步地,所述编辑类型的功能操作子集合中各功能分别对应的多点触控手势行为子集合包括:挤出手势行为、切除手势行为、扫掠手势行为以及回扫手势行为,其中,
所述挤出手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准体编辑方法选择被挤出体,然后双指Press,其中一指按在源体素上,按在源体素的手指位置P(X,Y)调用基准体编辑方法,再一指Press不动,另一指做Dr ag操作,并且位移向量向外,将源体素引用与被挤出体素引用作为参数调用挤出编辑方法;
所述切除手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准体编辑方法选择被挤出体,然后双指Press,其中一指按在源体素上,按在源体素的手指位置P(X,Y)调用基准体编辑方法,再一指Press不动,另一指做Dr ag操作,并且位移向量向内,将源体素引用与被挤出体素引用作为参数调用挤出编辑方法;
所述扫掠手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准面编辑方法选择扫掠面,再单指Drag,绘制扫掠轨迹,根据基准面和扫掠轨迹调用扫掠编辑方法生成扫掠体素;
所述回扫手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准面编辑方法选择回扫面,根据基准面调用回扫编辑方法生成回扫体素。
进一步地,所述步骤S3中,监听方法回调参数Motion event是一个对触控屏多点触摸事件进行封装的对象,包含手指触摸屏幕保留的有效信息,其中所述有效信息包括手指触控坐标、事件行为类型以及触摸事件的持续时间,该对象会在用户触摸手机屏幕时被创建,通过设置一个int变量mode记录当前触摸屏幕的手指数,当有手指按下事件时令mode++,当有手指抬起时令mode--,在不同按下、移动与抬起的不同action事件的事件回调中,依据mode变量进行匹配选择操作,从而对各个action事件中不同手指数量触摸的行为进行分别的定义,进而做出识别出相应的手势行为,并通过event对象的getX()与getY()方法获得各个手指当前事件触发时的屏幕坐标。
本发明相对于现有技术具有如下的优点及效果:
1、适用于市面上绝大部分的支持多点触控的移动设备,技术上具有跨平台的优势,该方案可方便应用于构建一个三维建模移动应用;
2、针对其他三维建模交互技术操作繁琐、学习成本高的缺陷,本发明通过设定基本手势行为,以组合的方式简化手势操作的步骤,并通过图形化方式将交互轨迹显示在用户界面上,以降低用户的学习成本;
3、针对其他技术定义的方法种类较少,无法应对复杂形体建模的情况,本发明通过定义了一个包含模型绘制生成、视角自由漫游,模型几何操纵,编辑特征方法等三维建模基本功能集合使得用户可以通过一系列基本建模操作完成复杂三维模型的简历,并分别映射其手势交互方式,通过手势识别加以严格区分,使得用户可以完全通过手势快速的建立复杂三维形体;
4、相比传统的基于GUI的3D建模,本发明在完成时间与交互次数上具有显著的优势,可大量减少用户同种模型建模花费的时间,提高用户的工作效率;
5、本发明可有效通过一系列组合的手势及建模操作完成对复杂三维模型的建立,具备实用可行性。
附图说明
图1是基于多点触控手势交互的三维建模流程方框图;
图2是建模功能集合所映射的多点触控手势行为集合演示图;
图3(a)是多点触控交互方式与基于按钮交互方式的总用时统计图;
图3(b)是多点触控交互方式与基于按钮交互方式的总交互次数统计图;
图3(c)是多点触控交互方式与基于按钮交互方式的各部分用时统计图;
图3(d)是多点触控交互方式与基于按钮交互方式的各部分交互次数统计图;
图4(a)是利用本发明进行“扳手”模型建模测试的示例结果图;
图4(b)是利用本发明进行“餐桌”模型建模测试的示例结果图;
图4(c)是利用本发明进行“飞机”模型建模测试的示例结果图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例公开了一种面向移动设备的多点触控手势交互三维建模方法,其流程方框图如图1所示,包括下述步骤:
S1、利用自定义的数据格式记录三维建模空间的当前状态,并将所记录的当前状态信息作为三维建模空间中各对象的构造参数进行建模空间的初始化;
S2、定义所述三维建模方法中的三维建模操作功能集合,包括:生成、操纵及编辑三大类型的功能操作子集合,及其各功能操作分别对应的多点触控手势行为子集合;
S3、在支持多点触控的触摸屏上进行单指或多指的手势交互操作并监听;
S4、对手势交互操作进行识别,调用识别的手势行为所映射的三维建模功能,实现相应的建模操作。
在步骤S1中,利用自定义的数据格式记录三维建模空间的当前状态,其中数据格式包括:当前摄像机状态信息,记录当前摄像机的位置与方向;模型的构造几何表示树信息,记录当前三维建模空间中所存在的模型体素及它们相互间的组成关系;体素的边界表示结构信息,记录当前三维建模空间中模型体素的点、边、面、体等几何拓扑结构关系。通过二进制文件读写的方式将三维建模空间的当前状态包含的三类信息在移动设备的物理存储中保存与读取,并将所记录的状态信息作为三维建模空间中各对象的构造参数进行建模空间的初始化。
在步骤S2中,定义所述三维建模方法中的三维建模操作功能集合,包括:生成、操纵及编辑三大类型的功能操作子集合,及其各功能操作分别对应的多点触控手势行为子集合;
其中生成、操纵及编辑三大类型的功能操作子集合中包含有关于三维模型的生成、操纵以及编辑的三大类型的功能操作子集合,每个子集合中包含有数种具体的相关建模功能,通过调用集合中的建模方法从而实现三维建模,各类型功能操作集合所包含的功能具体定义如下:
上述生成类型的方法子集合包括:
(1)规则体素生成功能。规则体素是作为构建CSG树体素结点的正则规则模型集合,目前包含有长方体、圆柱体、圆锥体、球体,并在特征属性中通过构成体素的参数属性进行定义,长方体体素定义为长l、宽w、高h,圆柱体体素定义为半径r、高h,圆锥体体素定义为半径高r、高h,球体素定义为半径r,并在所有对象中记录了模型的拓扑结构信息与三角网格划分。该功能需要参数位置坐标x、位置坐标z,在建模空间的笛卡尔坐标系(x,0,z)位置P创建三维形体。
(2)直线生成功能。直线作为构建基准面的绘制方法之一,绘制一条直线路径,并记录为线拓扑,记录有限元分析的直线逼进剖分,该功能需要参数起始点startPoint、终止点endPoint,直线绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上。
(3)曲线生成功能。曲线作为构建基准面的绘制方法之一,绘制一条贝塞尔曲线路径,n阶的贝塞尔曲线绘制如公式所示:
其中n为贝塞尔曲线阶数,i为贝塞尔曲线的序列点,t是曲线细分段数。并由曲线剖分算法的直线逼进,将曲线分解记录为线拓扑,该功能需要参数曲线控制点集合PointSet,曲线绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上。
(4)圆弧生成功能。圆弧作为构建基准面的绘制方法之一,绘制一条圆弧路径,其中圆弧的极坐标方程如公式所示:
其中(h,k)为椭圆中心,(a,b)为椭圆控制参数,(x,y)是点坐标。并通过有限元分析的直线逼进剖分,圆弧记录为多段线拓扑,该功能需要参数焦点矩形rectangle、起始角度startAngle、扫掠角度sweepAngle,圆弧绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上。
上述操纵类型的方法子集合包括:
(1)视角旋转及放缩操纵功能。视角旋转、放缩作为操纵摄像机的方法,通过设置视角变换矩阵从而改变摄像机位置,该功能定义参数摄像机与球心距离D、与Z轴角a、与XOY平面角b,摄像机偏向角c,则视角变换矩阵如公式:
(2)体素位移及旋转操纵功能。基本体素在3维笛卡尔空间下能够围绕x轴、y轴、z轴做位移变换以及旋转变换叫做6自由度变换,将体素在空间下作6自由度变换时,首先需要将对象从笛卡尔坐标系映射到齐次坐标系坐标(x,y,z,1)。
位移功能定义对象相对空间三个坐标轴的位移参数为(Tx,Ty,Tz),则三维位移的齐次变换矩阵如公式所示:
对于体素的旋转变换,因为欧拉旋转存在知名的万向死锁原因,则通过采用四元数旋转的方法可以很好的解决该问题,定义四元数q表示公式所示:
q=(x y z w)=xi+yj+zk+w
四元数通过转化为矩阵对体素齐次坐标进行变换的公式为:
旋转功能定义对象的旋转轴心向量与旋转角度V=((x,y,z),α),则旋转变化公式所示:
(3)体素轴向及整体伸缩操纵功能。基本体素的尺度伸缩功能通过选取物体自身坐标系的x轴、y轴、z轴做伸缩换,将体素伸缩变换时,首先将体素坐标转化为齐次坐标,在通过伸缩矩阵进行变化,该功能参数定义为x轴放缩因子,y轴放缩因子,z轴放缩因子(Sx,Sy,Sz),见公式:
(4)体素快速对齐操纵功能。基本体素的快速对齐功能通过选取源对齐体素的面与被对齐体素的面,将源体素通过调用体素位移、旋转的方法,快速将两个面贴合对齐在一起,参数定义为源对齐体素引用S1与被对齐体素引用S2,其中S.Vs、S.VT、S.q分别表示体素的伸缩变变量向量、位移变化向量、旋转变化四元数,Mr是四元数的旋转变化矩阵,对齐的算法见公式:
VΔT=(S2.q→Mr)·N2
S1.q=S2.q
S1.VT=S2.VT+S·VΔT
(5)基准轴操纵功能指选取体素的规范轴向,用以作为操纵体素方法的控制轴,通过向量点积进行轴向的匹配,从而选取基准轴。
(6)基准面操纵功能指选取空间中的二维正则平面,用以作为旋转或扫掠方法的基本平面,再通过判断拾取射线与平面上的三角形网格进行逐一相交性检测的方法,从而定位到具体的面网格引用,进而选择基准面。三角面片(V0,V1,V2)上的点可由公式如下表示:
T(u,v)=(1-u-v)V0+uV1+vV2
则射线与三角面片的交点Rt=O+tD=T(u,v)经过整理得方程:
令E1=V1-V0,E2=V2-V0,T=O-V0,经克拉默法则变化为公式如下:,其中P=D×E2,Q=T×E1,求解公式得到相交结果。
(7)基准体操纵功能指选取建模空间中CSG树的体素对象,用以作为操纵或特征方法,通过拾取射线与仿射变换后的OBB包围盒相交判断的方法,相交算法如公式所示:
其中T是包围盒与向量相对位移,L是参考向量,A和B是包围盒与射线的向量,当如下公式判断为True时,拾取到具体的体素对象。
上述编辑类型的方法子集合包括:
(1)挤出编辑功能。挤出功能是在基本体素的某一面结构上构建一个挤出体素,并定义挤出特征,然后将基本体素与挤出体通过正则体素布尔并集运算实现的,并将两个体素加入CSG树的节点中。
(2)切除编辑功能。切除功能是在基本体素的某一面结构上构建一个切除体素,并定义切除特征,然后将基本体素与切除体通过正则体素布尔差集运算实现的,并将两个体素加入CSG树的节点中。
(3)扫掠编辑功能。扫掠功能是通过选取一个绘制的二维的正则封闭基准面,然后定义一条扫掠轨迹,使得基准面沿扫掠轨迹生成一个扫掠体素。设定基准面的方程为r=r(u,v),则一阶微分方程为则法向量矢量与等距面方程如公式(3-14)所示:
设曲线r(u)为逆时针方向的环,其正向单位法向量为e2,那么对于弧线r(u)的等距线方程可以描述为如下公式:
(4)回扫编辑功能。回扫功能是通过选取一个绘制的二维与Z轴构成封闭的基准面,使基准面沿Z轴旋转生成一个回扫体素。设一个二维平面XOY,其法向量为n,将Z轴与直线、曲线、圆弧等在平面XOY上定义的封闭线段组图形定义为r0(u,v),将该图形沿Z轴旋转,则其得到的回扫体素的表达式为公式如下:
r0(u,v)=p(u)cos(v)i+p(u)sin(v)j+Z(u)k。
在步骤S3中,在支持多点触控的触摸屏上进行单指或多指的手势交互操作并进行监听,监听方法回调参数Motion event是一个对触控屏多点触摸事件进行封装的对象,包含了手指触摸屏幕保留的有效信息,比如手指触控坐标、事件行为类型以及触摸事件的持续时间等,该对象会在用户触摸手机屏幕时被创建。通过设置一个int变量mode记录当前触摸屏幕的手指数,当有手指按下事件时令mode++,当有手指抬起时令mode--。在不同按下、移动与抬起的不同action事件的事件回调中,依据mode变量进行匹配选择操作,从而对各个action事件中不同手指数量触摸的行为进行分别的定义,进而做出识别出相应的手势行为,并通过event对象的getX()与getY()方法获得各个手指当前事件触发时的屏幕坐标。
在步骤S4中,在支持多点触控的触摸屏上进行单指或多指的手势交互操作进行识别,调用识别的手势行为所映射的三维建模功能,从而实现相应的建模操作,然后继续监听手势操作。
首先定义4个基本手势,分别是点击Click、长按LongClick、按住Press、拖动Drag,通过四个基本手势的组合,进行复杂手势的识别操作,设计一个多点触控手势行为集合,其手势行为演示图如图2所示,集合中复杂手势行为及相应的映射功能的具体关系如下:
生成类型的绘制手势行为定义:
(1)绘制规则体素手势行为定义:先单指点击Click规则体素按钮,选取体素类型,在单指点击Click在建模空间上,手指按下的位置P(X,Y)作为体素绘制位置的参数调用绘制规则体素生成方法。
(2)绘制直线手势行为定义:先在绘制基准面平面上单指按住Press,手指位置P(X,Y)作为直线起始点参数,然后在绘制基准面平面上数次单指拖动Drag,手指位置P(X,Y)不断更新为直线的终止点参数,并调用绘制直线生成方法。
(3)绘制曲线手势行为定义:先在绘制基准面平面上单指按住Press,手指位置P(X,Y)作为曲线起始控制点参数,然后在绘制基准面平面上数次单指拖动Drag,手指位置P(X,Y)不断更新为曲线的终止控制点参数,并将两点加入曲线控制点集合作为参数调用绘制曲线的方法,再数次单指拖动Drag操作,每次手指位置P(X,Y)加入贝塞尔曲线的控制点列表中,并调用绘制曲线生成方法。
(4)绘制圆弧手势行为定义:先在绘制基准面平面上单指按住Press,手指位置P(X,Y)作为椭圆a控制点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为曲线的椭圆b控制点参数,并调用绘制圆弧的建模方法,再单指点击Click操作,手指位置P(X,Y)与已知的圆心坐标计算出圆弧的起始角度,最后单指点击Click操作,手指位置P(X,Y)与已知的圆心坐标计算出圆弧的终止角度,最后再次调用绘制圆弧生成方法。
操纵类型的手势行为定义:
(1)视角旋转及放缩手势行为定义:对于视角旋转手势,首先单指按住Press操作,判断按下位置是否不在任何面或体上,如果是,则继续,否则退出,再次拖动Drag操作,将手指相对上次位置的横向相对向量Vx与纵向相对向量Vy记录相应的旋转角度作为参数调用视角旋转操纵方法;对于视角放缩手势,首先三指按住Press操作,判断按下位置是否不在任何面或体上,如果是,则继续,否则退出,三指拖动Drag操作,并且三指移动向量V1、V2、V3要互相相反,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算相对按住Press操作时的位置的向量V1、V2、V3,并计算平均值,方向同时设为三轴,作为参数调用视角旋转操纵方法。
(2)体素位移及旋转手势行为定义:对于体素位移手势,首先双指按住Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指拖动Drag操作,并且判断是否两指移动方向V2、V3一致,与按下向量V1平行,再计算双指位置P1(X,Y)、P2(X,Y)相对按住Press操作时的位置的向量V2、V3,并计算位移量L与方向V,作为参数调用体素位移操纵方法;对于体素旋转手势,首先双指按住Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指拖动Drag操作,并且判断是否两指移动方向V2、V3一致,与按下向量V1垂直,再计算双指位置P1(X,Y)、P2(X,Y)相对按住Press操作时的位置的向量V2、V3,并计算旋转角度a与方向V,作为参数调用体素位移操纵方法。
(3)体素轴向及整体伸缩手势行为定义:对于体素轴向伸缩手势,首先双指按住Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指拖动Drag操作,并且判断是否两指移动方向V2、V3相反,与按下向量V1平行,再计算双指位置P1(X,Y)、P2(X,Y)相对按住Press操作时的位置的向量V2、V3,并计算伸缩量S与方向V,作为参数调用体素伸缩操纵方法;对于体素整体伸缩手势,首先三指按住Press操作,并且三指位置至少一个在物体上,然后三指Drag操作,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算相对按住Press操作时的位置的向量V1、V2、V3,并计算伸缩平均值S,方向同时设为三轴,作为参数调用体素旋转操纵方法。
(4)体素复制手势行为定义:三指拖动Drag操作,其中三指移动向量保持平行且方向一致,根据当前基准体作为参数调用创建规则体素生成方法,并根据三指分别的位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算移动的平均距离S与方向V调用体素位移操纵方法。
(5)体素快速对齐手势行为定义:先单指按住Press操作在源对齐体素位置上,记录手指位置P1(X,Y),再单指拖动Drag操作,并从源对齐体素离开,手指位置P2(X,Y)与P1计算相对向量进而判断源对齐面法向量N1,最后单指拖动Drag操作,从空间中进入被对齐体素,手指位置进入前位置P3(X,Y)与抬起位置P4(X,Y)计算相对向量进而判断被对齐面法向量N2,将N1、N2作为参数调用体素对齐方法。
(6)体素基准轴、面、体手势行为定义:双指按住Press操作在建模空间上,双指位置P1(X,Y)、P2(X,Y)计算相对位置向量V作为参数调用基准轴编辑方法。单指点击Click操作在要选择的面上,单指位置P(X,Y)作为参数调用基准面编辑方法;单指长按LongClick操作在要选择的体素上,单指位置P(X,Y)作为参数调用基准体编辑方法。
编辑类型的手势行为定义:
(1)挤出手势行为定义:先单指点击Click,手指位置P(X,Y)调用基准体编辑方法选择被挤出体,然后双指按住Press,其中一指按在源体素上,按在源体素的手指位置P(X,Y)调用基准体编辑方法,再一指按住Press不动,另一指做Drag操作,并且位移向量向外,将源体素引用与被挤出体素引用作为参数调用挤出编辑方法。
(2)切除手势行为定义:先单指点击Click,手指位置P(X,Y)调用基准体编辑方法选择被挤出体,然后双指按住Press,其中一指按在源体素上,按在源体素的手指位置P(X,Y)调用基准体编辑方法,再一指按住Press不动,另一指做拖动Drag操作,并且位移向量向内,将源体素引用与被挤出体素引用作为参数调用挤出编辑方法。
(3)扫掠手势行为定义:先单指点击Click,手指位置P(X,Y)调用基准面编辑方法选择扫掠面,再单指拖动Drag,绘制扫掠轨迹,根据基准面和扫掠轨迹调用扫掠编辑方法生成扫掠体素。
(4)回扫手势行为定义:先单指点击Click,手指位置P(X,Y)调用基准面编辑方法选择回扫面,根据基准面调用回扫编辑方法生成回扫体素。
综上所述,该发明公开的多点触控手势交互三维建模方法适用于市面上绝大部分的支持多点触控的移动设备,技术上具有跨平台的优势,该方案可方便应用于构建一个三维建模移动应用;针对其他三维建模交互技术操作繁琐、学习成本高的缺陷,本发明通过设定基本手势行为,以组合的方式简化手势操作的步骤,并通过图形化方式将交互轨迹显示在用户界面上,以降低用户的学习成本;针对其他技术定义的方法种类较少,无法应对复杂形体建模的情况,本发明通过定义了一个包含模型绘制生成、视角自由漫游,模型几何操纵,编辑特征方法等三维建模基本功能集合使得用户可以通过一系列基本建模操作完成复杂三维模型的简历,并分别映射其手势交互方式,通过手势识别加以严格区分,使得用户可以完全通过手势快速的建立复杂三维形体;对比基于多点触控手势交互界面(Multi-touchuser interface,MTUI)和传统的基于按钮交互界面(Button-based user interface,BUI)的3D建模的三个测试时间,总建模时间结果如图3(a)所示,总交互次数结果如图3(b)所示,其中数据如下:
-Test 1.利用本发明进行“扳手”模型建模测试,示例如图4(a)所示
本发明:平均完成时间16.5s,平均交互次数12.5。
传统技术:平均完成时间26.6s,平均交互次数12.9。
-Test 2.利用本发明进行“餐桌”模型建模测试,示例如图4(b)所示
本发明:平均完成时间10.1s,平均交互次数5.8。
传统技术:平均完成时间21.6s,平均交互次数10.7。
-Test 3.利用本发明进行“飞机”模型建模测试,示例如图4(c)所示
本发明:平均完成时间16.5s,平均交互次数24.9。
传统技术:平均完成时间34.8s,平均交互次数17.3。
由数据得出,相比传统的BUI的交互,本发明在完成时间与交互次数上具有显著的优势,可大量减少用户同种模型建模花费的时间,提高用户的工作效率。并且各模块功能使用时间如图3(c)所示,交互次数如图3(d)所示,可得在不同测试示例中,对于三维建模各个功能的效率都有较为明显的提升;使用本发明进行三维建模测试示例结果如图4(a)、图4(b)、图4(c)所示,证明本发明可有效通过一系列组合的手势及建模操作完成对复杂三维模型的建立,具备实施的可行性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种面向移动设备的多点触控交互的三维建模方法,其特征在于,包括如下步骤:
S1、利用自定义的数据格式记录三维建模空间的当前状态,并将所记录的当前状态信息作为三维建模空间中各对象的构造参数进行建模空间的初始化;
S2、定义所述三维建模方法中的三维建模操作功能集合,包括:生成、操纵及编辑三大类型的功能操作子集合,及其各功能操作分别对应的多点触控手势行为子集合;
S3、在支持多点触控的触摸屏上进行单指或多指的手势交互操作并监听;
S4、对手势交互操作进行识别,调用识别的手势行为所映射的三维建模功能,实现相应的建模操作。
2.根据权利要求1所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述步骤S1中数据格式包括:当前摄像机状态信息,记录当前摄像机的位置与方向;模型的构造几何表示树信息,记录当前三维建模空间中所存在的模型体素及它们相互间的组成关系;体素的边界表示结构信息,记录当前三维建模空间中模型体素的点、边、面、体的几何拓扑结构关系。
3.根据权利要求1所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述生成类型的功能操作子集合包括:规则体素生成功能、直线生成功能、曲线生成功能、圆弧生成功能;其中,
所述规则体素生成功能中规则体素是作为构建CSG树体素结点的正则规则模型集合,包含:长方体、圆柱体、圆锥体、球体,并在特征属性中通过构成体素的参数属性进行定义,该功能需要参数位置坐标x、位置坐标z,在建模空间的笛卡尔坐标系(x,0,z)位置P创建三维形体;
所述直线生成功能,实现绘制一条直线路径,并记录为线拓扑,记录有限元分析的直线逼进剖分,该功能需要参数起始点startPoint、终止点endPoint,直线绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上;
所述曲线生成功能,实现绘制一条贝塞尔曲线路径,n阶的贝塞尔曲线绘制如公式所示:
其中n为贝塞尔曲线阶数,i为贝塞尔曲线的序列点,t是曲线细分段数,并由曲线剖分算法的直线逼进,将曲线分解记录为线拓扑,该功能需要参数曲线控制点集合PointSet,曲线绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上;
所述圆弧生成功能,实现绘制一条圆弧路径,其中圆弧的极坐标方程如公式所示:
其中(h,k)为椭圆中心,(a,b)为椭圆控制参数,(x,y)是点坐标,并通过有限元分析的直线逼进剖分,圆弧记录为多段线拓扑,该功能需要参数焦点矩形rectangle、起始角度startAngle、扫掠角度sweepAngle,圆弧绘制在一个定位在建模空间的笛卡尔坐标系的XOY基准平面上。
4.根据权利要求1所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述操纵类型的功能操作子集合包括:视角旋转及放缩操纵功能、体素位移及旋转操纵功能、体素轴向及整体伸缩操纵功能、体素快速对齐操纵功能、基准轴操纵功能、基准面操纵功能、基准体操纵功能,其中,
所述视角旋转及放缩操纵功能,通过设置视角变换矩阵从而改变摄像机位置,该功能定义参数摄像机与球心距离D、与Z轴角a、与XOY平面角b,摄像机偏向角c,则视角变换矩阵如公式:
所述体素位移及旋转操纵功能,实现基本体素在3维笛卡尔空间下能够围绕x轴、y轴、z轴做位移变换以及旋转变换,位移功能定义对象相对空间三个坐标轴的位移参数为(Tx,Ty,Tz),旋转功能定义对象的旋转轴心向量与旋转角度V=((x,y,z),α);
所述体素轴向及整体伸缩操纵功能,通过选取物体自身坐标系的x轴、y轴、z轴做伸缩变换,实现基本体素的尺度伸缩功能,功能参数定义为x轴放缩因子,y轴放缩因子,z轴放缩因子(Sx,Sy,Sz);
所述体素快速对齐操纵功能,通过选取源对齐体素的面与被对齐体素的面,实现体素快速对齐操纵功能,将源体素通过调用体素位移、旋转的方法,快速将两个面贴合对齐在一起,功能参数定义为源对齐体素引用S1与被对齐体素引用S2;
所述基准轴操纵功能,通过选取体素的规范轴向,用以作为操纵体素方法的控制轴,通过向量点积进行轴向的匹配,从而选取基准轴;
所述基准面操纵功能,通过选取空间中的二维正则平面,用以作为旋转或扫掠方法的基本平面,再通过判断拾取射线与平面上的三角形网格进行逐一相交性检测的方法,从而定位到具体的面网格引用,功能参数定义为三维空间拾取射线D;
所述基准体操纵功能,通过选取建模空间中CSG树的体素对象,用以作为操纵或特征方法,再通过拾取射线与仿射变换后的OBB包围盒相交判断的方法完成对体素的基准拾取,功能参数定义为三维空间拾取射线D。
5.根据权利要求1所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述编辑类型的功能操作子集合包括:挤出编辑功能、切除编辑功能、扫掠编辑功能、回扫编辑功能,其中,
所述挤出编辑功能,通过在基本体素的某一面结构上构建一个挤出体素,并定义挤出特征,然后将基本体素与挤出体通过正则体素布尔并集运算实现,功能参数定义为挤出体素引用和被挤出体素引用;
所述切除编辑功能,通过在基本体素的某一面结构上构建一个切除体素,并定义切除特征,然后将基本体素与切除体通过正则体素布尔差集运算实现,功能参数定义为挤出体素引用和被挤出体素引用;
所述扫掠编辑功能,通过选取一个绘制的二维的正则封闭基准面,然后定义一条扫掠轨迹,使得基准面沿扫掠轨迹生成一个扫掠体素,功能参数定义为扫掠面引用与扫掠轨迹引用;
所述回扫编辑功能,通过选取一个绘制的二维与Z轴构成封闭的基准面,使基准面沿Z轴旋转生成一个回扫体素,功能参数定义为回扫面引用与回扫轴引用。
6.根据权利要求3所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述生成类型的功能操作子集合中各功能分别对应的多点触控手势行为子集合包括:绘制规则体素手势行为、绘制直线手势行为、绘制曲线手势行为、绘制圆弧手势行为,其中,
所述绘制规则体素手势行为的定义如下:先单指Click规则体素按钮,选取体素类型,在单指Click在建模空间上,手指按下的位置P(X,Y)作为体素绘制位置的参数调用绘制规则体素生成方法;
所述绘制直线手势行为的定义如下:先在绘制基准面平面上单指Press,手指位置P(X,Y)作为直线起始点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为直线的终止点参数,并调用绘制直线生成方法;
所述绘制曲线手势行为的定义如下:先在绘制基准面平面上单指Press,手指位置P(X,Y)作为曲线起始控制点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为曲线的终止控制点参数,并将两点加入曲线控制点集合作为参数调用绘制曲线的方法,再数次单指Drag操作,每次手指位置P(X,Y)加入贝塞尔曲线的控制点列表中,并调用绘制曲线生成方法;
所述绘制圆弧手势行为的定义如下:先在绘制基准面平面上单指Press,手指位置P(X,Y)作为椭圆a控制点参数,然后在绘制基准面平面上数次单指Drag,手指位置P(X,Y)不断更新为曲线的椭圆b控制点参数,并调用绘制圆弧的建模方法,再单指Click操作,手指位置P(X,Y)与已知的圆心坐标计算出圆弧的起始角度,然后单指Click操作,手指位置P(X,Y)与已知的圆心坐标计算出圆弧的终止角度,最后再次调用绘制圆弧生成方法。
7.根据权利要求4所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述操纵类型的功能操作子集合中各功能分别对应的多点触控手势行为子集合包括:视角旋转及放缩手势行为、体素位移及旋转手势行为、体素轴向及整体伸缩手势行为、体素快速对齐手势行为、体素复制手势行为和体素基准轴、面、体手势行为,其中,
所述视角旋转及放缩手势行为的定义如下:对于所述视角旋转手势行为,首先单指Press操作,判断按下位置是否不在任何面或体上,如果是,则继续,否则退出,再次Drag操作,将手指相对上次位置的横向相对向量Vx与纵向相对向量Vy记录相应的旋转角度作为参数调用视角旋转操纵方法;对于所述视角放缩手势行为,首先三指Press操作,判断按下位置是否不在任何面或体上,如果是,则继续,否则退出,然后三指Drag操作,并且判断三指移动向量V1、V2、V3方向是否两两互相相反,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算相对Press操作时的位置的向量V1、V2、V3,并计算平均值,方向同时设为三轴,作为参数调用视角旋转操纵方法;
所述体素位移及旋转手势行为的定义如下:对于所述体素位移手势行为,首先双指Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指Drag操作,并且判断是否两指移动方向V2、V3一致,与按下向量V1平行,再计算双指位置P1(X,Y)、P2(X,Y)相对Press操作时的位置的向量V2、V3,并计算位移量L与方向V,作为参数调用体素位移操纵方法;对于所述体素旋转手势,首先双指Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指Drag操作,并且判断是否两指移动方向V2、V3一致,与按下向量V1垂直,再计算双指位置P1(X,Y)、P2(X,Y)相对Press操作时的位置的向量V2、V3,并计算旋转角度a与方向V,作为参数调用体素位移操纵方法。
所述体素轴向及整体伸缩手势行为的定义如下:对于所述体素轴向伸缩手势,首先双指Press操作,双指位置P1(X,Y)、P2(X,Y)计算相对位置V1,然后双指Drag操作,并且判断是否两指移动方向V2、V3相反,与按下向量V1平行,再计算双指位置P1(X,Y)、P2(X,Y)相对Press操作时的位置的向量V2、V3,并计算伸缩量S与方向V,作为参数调用体素伸缩操纵方法;对于所述体素整体伸缩手势,首先三指Press操作,并且三指位置至少一个在物体上,然后三指Drag操作,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算相对Press操作时的位置的向量V1、V2、V3,并计算伸缩平均值S,方向同时设为三轴,作为参数调用体素旋转操纵方法;
所述体素复制手势行为的定义如下:三指Drag操作,其中三指移动向量保持平行且方向一致,根据当前基准体作为参数调用创建规则体素生成方法,并根据三指分别的位置P1(X,Y)、P2(X,Y)、P3(X,Y)计算移动的平均距离S与方向V调用体素位移操纵方法;
所述体素快速对齐手势行为的定义如下:先单指Press操作在源对齐体素位置上,记录手指位置P1(X,Y),再单指Drag操作,并从源对齐体素离开,手指位置P2(X,Y)与P1计算相对向量进而判断源对齐面法向量N1,最后单指Drag操作,从空间中进入被对齐体素,手指位置进入前位置P3(X,Y)与抬起位置P4(X,Y)计算相对向量进而判断被对齐面法向量N2,将N1、N2作为参数调用体素对齐方法;
所述体素基准轴、面、体手势行为的定义如下:双指Press操作在建模空间上,双指位置P1(X,Y)、P2(X,Y)计算相对位置向量V作为参数调用基准轴编辑方法;单指Click操作在要选择的面上,单指位置P(X,Y)作为参数调用基准面编辑方法;单指LongClick操作在要选择的体素上,单指位置P(X,Y)作为参数调用基准体编辑方法。
8.根据权利要求5所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述编辑类型的功能操作子集合中各功能分别对应的多点触控手势行为子集合包括:挤出手势行为、切除手势行为、扫掠手势行为以及回扫手势行为,其中,
所述挤出手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准体编辑方法选择被挤出体,然后双指Press,其中一指按在源体素上,按在源体素的手指位置P(X,Y)调用基准体编辑方法,再一指Press不动,另一指做Drag操作,并且位移向量向外,将源体素引用与被挤出体素引用作为参数调用挤出编辑方法;
所述切除手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准体编辑方法选择被挤出体,然后双指Press,其中一指按在源体素上,按在源体素的手指位置P(X,Y)调用基准体编辑方法,再一指Press不动,另一指做Drag操作,并且位移向量向内,将源体素引用与被挤出体素引用作为参数调用挤出编辑方法;
所述扫掠手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准面编辑方法选择扫掠面,再单指Drag,绘制扫掠轨迹,根据基准面和扫掠轨迹调用扫掠编辑方法生成扫掠体素;
所述回扫手势行为的定义如下:先单指Click,手指位置P(X,Y)调用基准面编辑方法选择回扫面,根据基准面调用回扫编辑方法生成回扫体素。
9.根据权利要求4所述的一种面向移动设备的多点触控交互的三维建模方法,其特征在于,所述步骤S3中,监听方法回调参数Motion event是一个对触控屏多点触摸事件进行封装的对象,包含手指触摸屏幕保留的有效信息,其中所述有效信息包括手指触控坐标、事件行为类型以及触摸事件的持续时间,该对象会在用户触摸手机屏幕时被创建,通过设置一个int变量mode记录当前触摸屏幕的手指数,当有手指按下事件时令mode++,当有手指抬起时令mode--,在不同按下、移动与抬起的不同action事件的事件回调中,依据mode变量进行匹配选择操作,从而对各个action事件中不同手指数量触摸的行为进行分别的定义,进而做出识别出相应的手势行为,并通过event对象的getX()与getY()方法获得各个手指当前事件触发时的屏幕坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610414457.6A CN106126085A (zh) | 2016-06-13 | 2016-06-13 | 一种面向移动设备的多点触控手势交互三维建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610414457.6A CN106126085A (zh) | 2016-06-13 | 2016-06-13 | 一种面向移动设备的多点触控手势交互三维建模方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106126085A true CN106126085A (zh) | 2016-11-16 |
Family
ID=57270176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610414457.6A Pending CN106126085A (zh) | 2016-06-13 | 2016-06-13 | 一种面向移动设备的多点触控手势交互三维建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126085A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506035A (zh) * | 2017-08-21 | 2017-12-22 | 中国电子科技集团公司第二十九研究所 | 一种基于移动平台的手势化频谱分析方法及系统 |
CN108920076A (zh) * | 2018-06-27 | 2018-11-30 | 清远墨墨教育科技有限公司 | 一种用户手势操作识别方法及识别系统 |
CN111026266A (zh) * | 2019-11-29 | 2020-04-17 | 深圳维示泰克技术有限公司 | 一种移动平台上编辑3d模型的交互方法及装置 |
CN111212456A (zh) * | 2020-01-16 | 2020-05-29 | 中国电建集团成都勘测设计研究院有限公司 | 基于地理位置面向低功耗远距离物联网的多径路由算法 |
CN111290579A (zh) * | 2020-02-10 | 2020-06-16 | Oppo广东移动通信有限公司 | 虚拟内容的控制方法、装置、电子设备及计算机可读介质 |
CN111444673A (zh) * | 2020-03-09 | 2020-07-24 | 稿定(厦门)科技有限公司 | 文字弯曲变形方法、介质、设备及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103065353A (zh) * | 2012-12-22 | 2013-04-24 | 中国科学院深圳先进技术研究院 | 三维模型特征提取方法和系统、三维模型检索方法和系统 |
WO2013060085A1 (en) * | 2011-10-27 | 2013-05-02 | The Hong Kong University Of Science And Technology | System and method for constrained manipulations of 3d objects by multitouch inputs |
CN104103091A (zh) * | 2014-07-17 | 2014-10-15 | 北京毛豆科技有限公司 | 3d智能建模方法和系统及3d模型柔性制造系统 |
CN104123747A (zh) * | 2014-07-17 | 2014-10-29 | 北京毛豆科技有限公司 | 多方式触控三维建模方法和系统 |
-
2016
- 2016-06-13 CN CN201610414457.6A patent/CN106126085A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013060085A1 (en) * | 2011-10-27 | 2013-05-02 | The Hong Kong University Of Science And Technology | System and method for constrained manipulations of 3d objects by multitouch inputs |
CN103065353A (zh) * | 2012-12-22 | 2013-04-24 | 中国科学院深圳先进技术研究院 | 三维模型特征提取方法和系统、三维模型检索方法和系统 |
CN104103091A (zh) * | 2014-07-17 | 2014-10-15 | 北京毛豆科技有限公司 | 3d智能建模方法和系统及3d模型柔性制造系统 |
CN104123747A (zh) * | 2014-07-17 | 2014-10-29 | 北京毛豆科技有限公司 | 多方式触控三维建模方法和系统 |
Non-Patent Citations (2)
Title |
---|
姚垚: "基于多点触控平台的的三维可视化系统交互设计与评价研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
燕厚仪 等: "基于多智能体的新型电子沙盘交互系统设计", 《系统仿真学报》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506035A (zh) * | 2017-08-21 | 2017-12-22 | 中国电子科技集团公司第二十九研究所 | 一种基于移动平台的手势化频谱分析方法及系统 |
CN107506035B (zh) * | 2017-08-21 | 2020-03-27 | 中国电子科技集团公司第二十九研究所 | 一种基于移动平台的手势化频谱分析方法及系统 |
CN108920076A (zh) * | 2018-06-27 | 2018-11-30 | 清远墨墨教育科技有限公司 | 一种用户手势操作识别方法及识别系统 |
CN108920076B (zh) * | 2018-06-27 | 2021-03-02 | 清远墨墨教育科技有限公司 | 一种用户手势操作识别方法及识别系统 |
CN111026266A (zh) * | 2019-11-29 | 2020-04-17 | 深圳维示泰克技术有限公司 | 一种移动平台上编辑3d模型的交互方法及装置 |
CN111212456A (zh) * | 2020-01-16 | 2020-05-29 | 中国电建集团成都勘测设计研究院有限公司 | 基于地理位置面向低功耗远距离物联网的多径路由算法 |
CN111212456B (zh) * | 2020-01-16 | 2022-07-08 | 中国电建集团成都勘测设计研究院有限公司 | 基于地理位置面向低功耗远距离物联网的多径路由方法 |
CN111290579A (zh) * | 2020-02-10 | 2020-06-16 | Oppo广东移动通信有限公司 | 虚拟内容的控制方法、装置、电子设备及计算机可读介质 |
CN111290579B (zh) * | 2020-02-10 | 2022-05-20 | Oppo广东移动通信有限公司 | 虚拟内容的控制方法、装置、电子设备及计算机可读介质 |
CN111444673A (zh) * | 2020-03-09 | 2020-07-24 | 稿定(厦门)科技有限公司 | 文字弯曲变形方法、介质、设备及装置 |
CN111444673B (zh) * | 2020-03-09 | 2022-07-19 | 稿定(厦门)科技有限公司 | 文字弯曲变形方法、介质、设备及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687230B2 (en) | Manipulating 3D virtual objects using hand-held controllers | |
CN106126085A (zh) | 一种面向移动设备的多点触控手势交互三维建模方法 | |
Olsen et al. | Sketch-based modeling: A survey | |
Millette et al. | DualCAD: integrating augmented reality with a desktop GUI and smartphone interaction | |
US7701457B2 (en) | Pen-based 3D drawing system with geometric-constraint based 3D cross curve drawing | |
Sheng et al. | An interface for virtual 3D sculpting via physical proxy. | |
US20200134916A1 (en) | Collaborative 3d modeling system | |
CN102779358B (zh) | 用于设计几何三维建模对象的方法及设备 | |
KR101794498B1 (ko) | 터치-감지형 디스플레이를 사용하여 오브젝트를 복제하는 방법 및 시스템 | |
JP5807686B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
Kang et al. | Instant 3D design concept generation and visualization by real-time hand gesture recognition | |
JP7241462B2 (ja) | 3次元シーンにおけるオブジェクトの高速操作 | |
US11087561B2 (en) | Three-dimensional sketching in mobile augmented reality | |
Kang et al. | Editing 3D models on smart devices | |
Cruz et al. | A sketch on sketch-based interfaces and modeling | |
US20180158239A1 (en) | Sketch-based 3d modeling system | |
CN104820584B (zh) | 一种面向层次化信息自然操控的3d手势界面的构建方法及系统 | |
CN111984151B (zh) | 一种提高处理效率的白板画布大小、位置漫游控制方法 | |
JP2019121387A (ja) | 3dオブジェクトの設計のための描画平面を定義するための方法 | |
JP2023184496A (ja) | 3d形状を2dスケッチ上に推論する方法 | |
CN112529984B (zh) | 绘制多边形的方法、装置、电子设备及存储介质 | |
Zhong et al. | A methodology for solid modelling in a virtual reality environment | |
JP2022096623A (ja) | 仮想3dグリッドおよび手描きスケッチを使用することによって3dオブジェクトを設計する方法 | |
Araújo et al. | Combining Virtual Environments and Direct Manipulation for Architectural Modeling' | |
De Araujo et al. | Modeling on and above a stereoscopic multitouch display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161116 |