CN104516733B - 一种可视化控件的优化方法及装置 - Google Patents

一种可视化控件的优化方法及装置 Download PDF

Info

Publication number
CN104516733B
CN104516733B CN201310460103.1A CN201310460103A CN104516733B CN 104516733 B CN104516733 B CN 104516733B CN 201310460103 A CN201310460103 A CN 201310460103A CN 104516733 B CN104516733 B CN 104516733B
Authority
CN
China
Prior art keywords
mtd
small
msub
mrow
mtr
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.)
Active
Application number
CN201310460103.1A
Other languages
English (en)
Other versions
CN104516733A (zh
Inventor
孟祥星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Feinno Communication Technology Co Ltd
Original Assignee
Beijing Feinno Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Feinno Communication Technology Co Ltd filed Critical Beijing Feinno Communication Technology Co Ltd
Priority to CN201310460103.1A priority Critical patent/CN104516733B/zh
Publication of CN104516733A publication Critical patent/CN104516733A/zh
Application granted granted Critical
Publication of CN104516733B publication Critical patent/CN104516733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)

Abstract

本发明公开了一种可视化控件的优化方法及装置,该方法包括:接收到生成可视化控件的请求;利用关键帧动画类生成矩形可视化控件;将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;显示所述不规则形状的目标可视化控件;本发明使得用户可以通过设置所述两条单调曲线的形状,来改变所述不规则形状的目标可视化控件的形状,使得所述不规则形状的目标可视化控件具有多变性,从而满足用户的视觉要求,增强用户体验。

Description

一种可视化控件的优化方法及装置
技术领域
本发明涉及互联网领域,特别涉及一种可视化控件的优化方法及装置。
背景技术
在手持设备操作系统ios上开发的动画实现机制iosCoreAnimation,包括以下多种实现方式:多个动画同时执行类CAAnimationGroup、抽象类CAPropertyAnimation、实现单一动画类CABasicAnimation以及关键帧动画类CAKeyframeAnimation。
现有技术中,关键帧动画类CAKeyframeAnimation是用来在屏幕上显示内容展示的矩形区域,但是,随着对视觉要求的提高,用户不再希望可视化控件的显示区域仅仅表现为方方正正的矩形,很多时候需要通过多变的显示区域来增加用户体验,针对关键帧动画类,现有技术中并没有公开优化可视化控件的方法。
发明内容
本发明提供一种可视化控件的优化方法及装置,用以对可视化控件的显示区域进行变换,增强用户体验。
本发明提供一种可视化控件的优化方法,该方法包括:
接收到生成可视化控件的请求;
利用关键帧动画类生成所述矩形可视化控件;
将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;
显示所述不规则形状的目标可视化控件。
优选的,所述将所述矩形可视化控件变换为不规则形状的目标可视化控件包括:
设定预定份数值;
将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿同样的方向分为预定份数,形成所述预定份数个小梯形;所述预定份数个小矩形与所述预定份数个小梯形一一对应;
计算每个小矩形变换成相应小梯形的三维变换矩阵,得到预定份数个三维变换矩阵;
将所述预定份数个三维变换矩阵挂载到所述关键帧动画类中,由所述关键帧动画类根据所述预定份数个三维变换矩阵完成所述矩形可视化控件到所述不规则形状的目标可视化控件的变换。
优选的,所述将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形包括:
所述矩形可视化控件的一边与直角坐标系的y轴平行,将所述矩形可视化控件沿y轴方向分为预定份数,形成预定份数个小矩形;
相应的,将所述不规则形状的目标可视化控件沿y轴方向分为预定份数,形成预定份数个小梯形。
优选的,所述计算每个小矩形变换成相应小梯形的三维变换矩阵前进一步包括:记录每个小矩形的各顶点坐标,并计算每个小梯形的各顶点坐标;相应的,所述计算每个小矩形变换成相应小梯形的三维变换矩阵包括:
平移所述小矩形,使得所述小梯形下底的一顶点与该小矩形的对应顶点对齐,并计算平移矩阵;以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形进行伸缩,并计算伸缩矩阵;根据所述小梯形的形状,将所述伸缩后的小矩形进行错切,得到与所述小梯形的形状一致的目标小梯形,并计算错切矩阵;
将目标小梯形进行投影变换,并计算其投影矩阵;将所述平移矩阵、伸缩矩阵、错切矩阵以及投影矩阵相乘,得到所述小矩形变换成相应小梯形的三维变换矩阵。
优选的,所述计算每个小梯形的各顶点坐标为:利用牛顿迭代法计算每个小梯形的各顶点坐标。
优选的,所述平移所述小矩形,使得所述小梯形下底的一顶点与该小矩形的对应顶点对齐,并计算平移矩阵包括:所述小梯形下底的一顶点p1坐标为(xp1,y1),对应所述小矩形的一顶点A坐标为(xa,ya);平移所述小矩形,使所述顶点p1与所述顶点A对齐;计算所述平移矩阵T1为:
优选的,所述以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形进行伸缩,并计算伸缩矩阵包括:
对于所述小梯形,与所述顶点p1在同一单调曲线上的上底顶点p2坐标为(xp2,y2),下底的另一顶点q1坐标为(xb,yb);
对于所述小矩形,与所述顶点A相邻的两顶点B和C的坐标分别为(xb,yb)和(xc,yc);
以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形在x轴和y轴上分别进行伸缩,得到所述伸缩矩阵T2为:
优选的,所述根据所述小梯形的形状,将所述伸缩后的小矩形进行错切,得到与所述小梯形的形状一致的目标小梯形,并计算错切矩阵包括:将由所述顶点p1、q1及C组成的三角形错切变换为由所述顶点p1、q1及p2组成的三角形,得到第一错切矩阵T31:
将由所述顶点q1、C及D组成的三角形在x轴上进行伸缩变换,使其变换为由所述顶点q1、D及p2组成的三角形,得到x轴伸缩矩阵T32:
其中,所述顶点D为所述小矩形中,与所述顶点A相对的顶点,其坐标为(xd,yd);
将由所述顶点q1、D及p2组成的三角形错切变换为由所述顶点q1、p2及q2组成的三角形,得到与所述小梯形的形状一致的目标小梯形,且第二错切矩阵T33为:
所述错切矩阵T3为所述第一错切矩阵T31、x轴伸缩矩阵T32以及第二错切矩阵T33的乘积。
优选的,所述将目标小梯形进行投影变换,并计算其投影矩阵包括:计算所述目标小梯形进行投影变换后的灭点坐标;根据所述灭点坐标,计算所述投影矩阵T4。
本发明还提供一种可视化控件的优化装置,该装置包括:
接收模块,用于接收生成可视化控件的请求;
生成模块,用于当接收到生成矩形可视化控件的请求时,利用关键帧动画类生成所述矩形可视化控件;
变换模块,用于将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;
显示模块,用于显示所述不规则形状的目标可视化控件。
本发明实施例的有益效果是:通过将生成的矩形可视化控件变换为由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成的不规则区域,由于对所述两条单调曲线的形状不做限定,因此用户可以通过设置所述两条单调曲线的形状,来改变所述不规则区域的形状,使得所述不规则区域具有多变性,从而满足用户的视觉要求,增强用户体验。
附图说明
图1为本发明一实施例的一种可视化控件的优化方法的流程图;
图2为本发明一实施例的将矩形可视化控件变换为不规则形状的目标可视化控件的流程图;
图3为本发明一实施例的矩形可视化控件与不规则形状的目标可视化控件的示意图;
图4为本发明一实施例的将不规则形状的目标可视化控件沿y轴方向分割成n份的示意图;
图5为本发明一实施例的将小矩形进行平移后的示意图;
图6为本发明一实施例的将平移后的小矩形进行伸缩后的示意图;
图7为本发明一实施例的将伸缩后的小矩形进行错切时的示意图;
图8为本发明一实施例的伸缩后的小矩形进行错切后的示意图;
图9为本发明一实施例的将目标小梯形进行投影变换后的示意图;
图10为本发明一实施例的一种可视化控件的优化方法的装置结构图;
图11为本发明一实施例的变换模块的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1:
如图1所示,本发明提供一种可视化控件的优化方法,该方法包括:
S1、接收到生成可视化控件的请求;
S2、利用关键帧动画类生成所述矩形可视化控件;
需要说明的是,此处主要是指在后台生成矩形可视化控件,而并不在显示界面中显示,后台生成的矩形可视化控件经步骤S3转化为不规则形状的目标可视化控件后,再经步骤S4在显示界面中显示该不规则形状的可视化控件,以进一步提高用户体验。
S3、将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;
S4、显示所述不规则形状的目标可视化控件。
其中,所述步骤S1、S2和S3均在运行所述矩形可视化控件的操作系统的后台完成,步骤S4在运行所述矩形可视化控件的操作系统的屏幕显示,使得用户看到的就是直接显示的不规则形状的目标可视化控件,从而满足用户视觉的要求,增强用户体验,所述操作系统为手持设备操作系统IOS或其他可运行矩形可视化控件的操作系统。
在本发明的一个实施例中,如图2所示,将所述矩形可视化控件变换为不规则形状的目标可视化控件包括:
S31、设定预定份数值;
S32、将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿同样的方向分为预定份数,形成所述预定份数个小梯形;所述预定份数个小矩形与所述预定份数个小梯形一一对应;
S33、计算每个小矩形变换成相应小梯形的三维变换矩阵,得到预定份数个三维变换矩阵;
S34、将所述预定份数个三维变换矩阵挂载到所述关键帧动画类中,由所述关键帧动画类根据所述预定份数个三维变换矩阵完成所述矩形可视化控件到所述不规则形状的目标可视化控件的变换。
优选的,所述预定份数值通常设置为n份,其中,n越大精确度越高,但计算量就会相应增大,在操作时刻根据实际情况设置n值。
在本发明的一个实施例中,将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形包括:
所述矩形可视化控件的一边与直角坐标系的y轴平行,将所述矩形可视化控件沿y轴方向分为预定份数,形成预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿y轴方向分为预定份数,形成预定份数个小梯形。
当所述预定份数值设置为n份时,所述矩形可视化控件的一边与直角坐标系的y轴平行,将所述矩形可视化控件沿y轴方向分为n份,形成n个小矩形;相应的,将所述不规则形状的目标可视化控件沿y轴方向分为n份,形成n个小梯形。
在本发明的一个实施例中,参照图3,所述不规则形状的目标可视化控件由所述矩形可视化控件内的两条单调曲线p和q、以及与所述矩形可视化控件的上下两条边重合的两条直线围成。特别的,所述两条单调曲线中的任一条可以为直线,而另一条为曲线;或者所述两条单调曲线均为直线,且在上述两种情况中,所述直线可以与所述矩形可视化控件的另两条边重合。当所述两条单调曲线为上述两种情况中的任一种时,其实施方式与本发明提供的所有实施例的原理相同。
以将矩形可视化控件和不规则形状的目标可视化控件分别沿y轴方向分为n份为例,将所述矩形可视化控件沿y轴方向分成n个小矩形;如图4所示,将所述不规则形状的目标可视化控件用y=y1,y2,y3……,yn进行分割,由于相邻两y值之间间隔很小,因此,相邻两y值之间对应的曲线可以近似为直线,将所述不规则形状的目标可视化控件被分割后,可以近似成n个小梯形。
在本发明的一个实施例中,所述步骤S33前进一步包括:记录每个小矩形的各顶点坐标,并计算每个小梯形的各顶点坐标;相应的,步骤S33计算每个小矩形变换成相应小梯形的三维变换矩阵具体包括:
(1)平移所述小矩形,使得所述小梯形下底的一顶点与该小矩形的对应顶点对齐,并计算平移矩阵;
(2)以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形进行伸缩,并计算伸缩矩阵;
(3)根据所述小梯形的形状,将所述伸缩后的小矩形进行错切,得到与所述小梯形的形状一致的目标小梯形,并计算错切矩阵;
(4)将目标小梯形进行投影变换,并计算其投影矩阵;
(5)将所述平移矩阵、伸缩矩阵、错切矩阵以及投影矩阵相乘,得到所述小矩形变换成相应小梯形的三维变换矩阵。
在本发明的一个实施例中,所述计算每个小梯形的各顶点坐标为:利用牛顿迭代法计算每个小梯形的各顶点坐标。
所述牛顿迭代法又称为牛顿-拉夫逊方法是把非线性方程线性化的一种近似方法。把非线性方程f(x)在x0点附近展开成泰勒级数:
f(x)=f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2!+…
取所述泰勒级数展开的线性部分,作为非线性方程f(x)=0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=f(x)=0;设f'(x0)≠0则其解为:
x1=x0-f(x0)/f'(x0)
这样,得到牛顿迭代法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。
在本实施例中,假设曲线p的曲线方程为f(x)=ax3+bx2+cx+d,曲线q的曲线方程为g(x)=gx5+hx3+k;以求y=y1对应在p曲线的解为例,即求ax3+bx2+cx+d=y1的解,根据牛顿迭代法,分别求出y=y1,y2,y3……,yn在单调曲线p上的交点p1,p2,p3…pn,如图3所示,并解出其对应的在单调曲线p上的解xp1,xp2,xp3,……,xpn;同理,求出y=y1,y2,y3……,yn在单调曲线q上的交点q1,q2,q3…qn,并解出其对应的在单调曲线q上的解xq1,xq2,xq3,……,xqn
另外,步骤S23中需要计算每个小矩形变换成相应小梯形的三维变换矩阵,假设三维变换前一点a(x,y,z)变换后为a1(x1,y1,z1),变换方式符合以下公式:
其中,是指对图形进行比例、旋转、反射和错切变换,[m n o]是指对图形进行平移变换,是指对图形进行投影变换,[p]是对图形进行整体比例变换,[m]是计算机图形三维变换中的调整值。
具体的,如图5所示,所述步骤S33中计算每个小矩形变换成相应小梯形的三维变换矩阵中的(1)包括:所述小梯形下底的一顶点p1坐标为(xp1,y1),对应所述小矩形的一顶点A坐标为(xa,ya);平移所述小矩形,使所述顶点p1与所述顶点A对齐;
此时,所述小矩形在x轴方向上平移了(xp1-xa)个单位,在y轴方向上平移了(ya-y1)个单位,z轴上没做变换,所以z轴上不做平移,其对应关系如下:
根据上述公式,计算所述平移矩阵T1为:
具体的,如图6所示,所述步骤S33中计算每个小矩形变换成相应小梯形的三维变换矩阵中的(2)包括:
对于所述小梯形,与所述顶点p1在同一单调曲线上的上底顶点p2坐标为(xp2,y2),下底的另一顶点q1坐标为(xb,yb);
对于所述小矩形,与所述顶点A相邻的两顶点B和C的坐标分别为(xb,yb)和(xc,yc);
以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形在x轴和y轴上分别进行伸缩;
此时,在x轴上的伸缩比例为:在y轴上的伸缩比例为:z轴方向上没有进行伸缩变换,则对应关系如下:
根据上述公式,得到所述伸缩矩阵T2为:
具体的,如图7所示,所述步骤S33中计算每个小矩形变换成相应小梯形的三维变换矩阵中的(3)包括:
将由所述顶点p1、q1及C组成的三角形错切变换为由所述顶点p1、q1及p2组成的三角形,其变换公式为:
根据上述公式,得到第一错切矩阵T31为:
将由所述顶点q1、C及D组成的三角形在x轴上进行伸缩变换,使其变换为由所述顶点q1、D及p2组成的三角形,其变换公式为:
根据上述公式,得到x轴伸缩矩阵T32为:
其中,所述顶点D为所述小矩形中,与所述顶点A相对的顶点,其坐标为(xd,yd);
将由所述顶点q1、D及p2组成的三角形错切变换为由所述顶点q1、p2及q2组成的三角形,其变换公式为:
得到与所述小梯形的形状一致的目标小梯形,如图8所示,且第二错切矩阵T33为:
所述错切矩阵T3为所述第一错切矩阵T31、x轴伸缩矩阵T32以及第二错切矩阵T33的乘积。
其中,如图9所示,所述步骤S33中计算每个小矩形变换成相应小梯形的三维变换矩阵中的(4)包括:
将所述目标小梯形进行投影变换,即将p1p2,q1q2所在直线延长相交,得到唯一的灭点J,根据p1,p2,q1及q2的坐标计算出J点坐标;根据所述灭点J的坐标,计算所述投影矩阵T4:
其中,m和l均为与所述p1,p2,q1及q2的坐标相关的参数。
综上所述,所述小矩形变换成相应小梯形的三维变换矩阵T=T1*T2*T3*T4=T1*T2*T31*T32*T33*T4,与前述对三维变换矩阵的定义对比可知,至此,所述小矩形变换成相应小梯形的三维变换矩阵计算完毕。
同理,分别计算出n个三维变换矩阵,并根据步骤S34,将计算出的所述n个三维变换矩阵挂载到关键帧动画类中,由所述关键帧动画类根据所述n个三维变换矩阵完成原矩形可视化控件到目标可视化控件的动态变换。
本发明实施例的有益效果是:通过将矩形可视化控件变换为由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成的不规则区域,由于对所述两条单调曲线的形状不做限定,因此用户可以通过设置所述两条单调曲线的形状,来改变所述不规则区域的形状,使得所述不规则区域具有多变性,同时,在实现矩形可视化控件到目标可视化控件的变换时,将牛顿迭代法和三维图形变换方法与关键帧动画类CAKeyframeAnimation结合在一起,形成一套可视化控件的完整变换方案,从而满足用户的视觉要求,增强用户体验。
实施例2:
如图10所示,本发明还提供一种可视化控件的优化装置100,该装置包括:
接收模块110,用于接收生成可视化控件的请求;
生成模块120,用于利用关键帧动画类生成所述矩形可视化控件;
变换模块130,用于将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;
显示模块140,用于显示所述不规则形状的目标可视化控件。
其中,所述接收模块110、生成模块120以及变换模块130的功能均在运行所述矩形可视化控件的操作系统的后台完成,所述显示模块140在运行所述矩形可视化控件的操作系统的屏幕显示,使得用户看到的就是直接显示的不规则形状的目标可视化控件,从而满足用户视觉的要求,增强用户体验,所述操作系统为手持设备操作系统IOS或其他可运行矩形可视化控件的操作系统。
在本发明的一个实施例中,如图11所示,所述变换模块130包括:
预设子模块131,用于设定预定份数值;
分割子模块132,用于将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿同样的方向分为预定份数,形成所述预定份数个小梯形;所述预定份数个小矩形与所述预定份数个小梯形一一对应;
计算子模块133,用于计算每个小矩形变换成相应小梯形的三维变换矩阵,得到预定份数个三维变换矩阵;
挂载子模块134,用于将所述预定份数个三维变换矩阵挂载到所述关键帧动画类中,由所述关键帧动画类根据所述预定份数个三维变换矩阵完成所述矩形可视化控件到所述不规则形状的目标可视化控件的变换。
优选的,所述预定份数值通常设置为n份,其中,n越大精确度越高,但计算量就会相应增大,在操作时刻根据实际情况设置n值。
在本发明的一个实施例中,所述分割子模块132包括:
所述矩形可视化控件的一边与直角坐标系的y轴平行,将所述矩形可视化控件沿y轴方向分为预定份数,形成预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿y轴方向分为预定份数,形成预定份数个小梯形。
当所述预定份数值设置为n份时,所述矩形可视化控件的一边与直角坐标系的y轴平行,将所述矩形可视化控件沿y轴方向分为n份,形成n个小矩形;相应的,将所述不规则形状的目标可视化控件沿y轴方向分为n份,形成n个小梯形。
在本发明的一个实施例中,参照图3,所述不规则形状的目标可视化控件由所述矩形可视化控件内的两条单调曲线p和q、以及与所述矩形可视化控件的上下两条边重合的两条直线围成。特别的,所述两条单调曲线中的任一条可以为直线,而另一条为曲线;或者所述两条单调曲线均为直线,且在上述两种情况中,所述直线可以与所述矩形可视化控件的另两条边重合。当所述两条单调曲线为上述两种情况中的任一种时,其实施方式与本发明提供的所有实施例的原理相同。
以将矩形可视化控件和不规则形状的目标可视化控件分别沿y轴方向分为n份为例,将所述矩形可视化控件沿y轴方向分成n个小矩形;如图4所示,将所述不规则形状的目标可视化控件用y=y1,y2,y3……,yn进行分割,由于相邻两y值之间间隔很小,因此,相邻两y值之间对应的曲线可以近似为直线,将所述不规则形状的目标可视化控件被分割后,可以近似成n个小梯形。
在本发明的一个实施例中,所述变换模块130在所述计算子模块133前进一步包括:
记录子模块,用于记录每个小矩形的各顶点坐标,并计算每个小梯形的各顶点坐标;相应的,所述计算子模块133具体用于:
(1)平移所述小矩形,使得所述小梯形下底的一顶点与该小矩形的对应顶点对齐,并计算平移矩阵;
(2)以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形进行伸缩,并计算伸缩矩阵;
(3)根据所述小梯形的形状,将所述伸缩后的小矩形进行错切,得到与所述小梯形的形状一致的目标小梯形,并计算错切矩阵;
(4)将目标小梯形进行投影变换,并计算其投影矩阵;
(5)将所述平移矩阵、伸缩矩阵、错切矩阵以及投影矩阵相乘,得到所述小矩形变换成相应小梯形的三维变换矩阵。
在本发明的一个实施例中,所述记录子模块:利用牛顿迭代法计算每个小梯形的各顶点坐标。
所述牛顿迭代法又称为牛顿-拉夫逊方法是把非线性方程线性化的一种近似方法。把非线性方程f(x)在x0点附近展开成泰勒级数:
f(x)=f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2!+…
取所述泰勒级数展开的线性部分,作为非线性方程f(x)=0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=f(x)=0;设f'(x0)≠0则其解为:
x1=x0-f(x0)/f'(x0)
这样,得到牛顿迭代法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。
在本实施例中,假设曲线p的曲线方程为f(x)=ax3+bx2+cx+d,曲线q的曲线方程为g(x)=gx5+hx3+k;以求y=y1对应在p曲线的解为例,即求ax3+bx2+cx+d=y1的解,根据牛顿迭代法,分别求出y=y1,y2,y3……,yn在单调曲线p上的交点p1,p2,p3…pn,如图3所示,并解出其对应的在单调曲线p上的解xp1,xp2,xp3,……,xpn;同理,求出y=y1,y2,y3……,yn在单调曲线q上的交点q1,q2,q3…qn,并解出其对应的在单调曲线q上的解xq1,zq2,xq3,……,xqn
另外,假设三维变换前一点a(x,y,z)变换后为a1(x1,y1,z1),变换方式符合以下公式:
其中,是指对图形进行比例、旋转、反射和错切变换,[m n o]是指对图形进行平移变换,是指对图形进行投影变换,[p]是对图形进行整体比例变换,[m]是计算机图形三维变换中的调整值。
具体的,如图5所示,所述计算子模块133用于:所述小梯形下底的一顶点p1坐标为(xp1,y1),对应所述小矩形的一顶点A坐标为(xa,ya);平移所述小矩形,使所述顶点p1与所述顶点A对齐;
此时,所述小矩形在x轴方向上平移了(xp1-xa)个单位,在y轴方向上平移了(ya-y1)个单位,z轴上没做变换,所以z轴上不做平移,其对应关系如下:
根据上述公式,计算所述平移矩阵T1为:
具体的,如图6所示,所述计算子模块133还用于:
对于所述小梯形,与所述顶点p1在同一单调曲线上的上底顶点p2坐标为(xp2,y2),下底的另一顶点q1坐标为(xb,yb);
对于所述小矩形,与所述顶点A相邻的两顶点B和C的坐标分别为(xb,yb)和(xc,yc);
以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形在x轴和y轴上分别进行伸缩;
此时,在x轴上的伸缩比例为:在y轴上的伸缩比例为:z轴方向上没有进行伸缩变换,则对应关系如下:
根据上述公式,得到所述伸缩矩阵T2为:
具体的,如图7所示,所述计算子模块133还用于:
将由所述顶点p1、q1及C组成的三角形错切变换为由所述顶点p1、q1及p2组成的三角形,其变换公式为:
根据上述公式,得到第一错切矩阵T31为:
将由所述顶点q1、C及D组成的三角形在x轴上进行伸缩变换,使其变换为由所述顶点q1、D及p2组成的三角形,其变换公式为:
根据上述公式,得到x轴伸缩矩阵T32为:
其中,所述顶点D为所述小矩形中,与所述顶点A相对的顶点,其坐标为(xd,yd);
将由所述顶点q1、D及p2组成的三角形错切变换为由所述顶点q1、p2及q2组成的三角形,其变换公式为:
得到与所述小梯形的形状一致的目标小梯形,如图8所示,且第二错切矩阵T33为:
所述错切矩阵T3为所述第一错切矩阵T31、x轴伸缩矩阵T32以及第二错切矩阵T33的乘积。
其中,如图9所示,所述计算子模块133还用于:
将所述目标小梯形进行投影变换,即将p1p2,q1q2所在直线延长相交,得到唯一的灭点J,根据p1,p2,q1及q2的坐标计算出J点坐标;根据所述灭点J的坐标,计算所述投影矩阵T4:
其中,m和l均为与所述p1,p2,q1及q2的坐标相关的参数。
综上所述,所述小矩形变换成相应小梯形的三维变换矩阵T=T1*T2*T3*T4=T1*T2*T31*T32*T33*T4,与前述对三维变换矩阵的定义对比可知,至此,所述小矩形变换成相应小梯形的三维变换矩阵计算完毕。
同理,分别计算出n个三维变换矩阵,并根据所述挂载子模块124,将计算出的所述n个三维变换矩阵挂载到关键帧动画类中,由所述关键帧动画类根据所述n个三维变换矩阵完成原矩形可视化控件到目标可视化控件的动态变换。
需要说明的是,本实施例中的各个模块或者子模块的工作原理和处理过程可以参见上述图1-图9所示方法实施例中的相关描述,此处不再赘述。
本发明实施例的有益效果是:通过将矩形可视化控件变换为由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成的不规则区域,由于对所述两条单调曲线的形状不做限定,因此用户可以通过设置所述两条单调曲线的形状,来改变所述不规则区域的形状,使得所述不规则区域具有多变性,同时,在实现矩形可视化控件到目标可视化控件的变换时,将牛顿迭代法和三维图形变换方法与关键帧动画类CAKeyframeAnimation结合在一起,形成一套可视化控件的完整变换方案,从而满足用户的视觉要求,增强用户体验。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种可视化控件的优化方法,其特征在于,该方法包括:
接收到生成可视化控件的请求;
利用关键帧动画类生成矩形可视化控件;
将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;
显示所述不规则形状的目标可视化控件;
其中,所述将所述矩形可视化控件变换为不规则形状的目标可视化控件包括:
设定预定份数值;
将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿同样的方向分为预定份数,形成所述预定份数个小梯形;所述预定份数个小矩形与所述预定份数个小梯形一一对应;
计算每个小矩形变换成相应小梯形的三维变换矩阵,得到预定份数个三维变换矩阵;
将所述预定份数个三维变换矩阵挂载到所述关键帧动画类中,由所述关键帧动画类根据所述预定份数个三维变换矩阵完成所述矩形可视化控件到所述不规则形状的目标可视化控件的变换。
2.如权利要求1所述的方法,其特征在于,所述将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形包括:
所述矩形可视化控件的一边与直角坐标系的y轴平行,将所述矩形可视化控件沿y轴方向分为预定份数,形成预定份数个小矩形;
相应的,将所述不规则形状的目标可视化控件沿y轴方向分为预定份数,形成预定份数个小梯形。
3.如权利要求1或2所述的方法,其特征在于,所述计算每个小矩形变换成相应小梯形的三维变换矩阵前进一步包括:记录每个小矩形的各顶点坐标,并计算每个小梯形的各顶点坐标;
相应的,所述计算每个小矩形变换成相应小梯形的三维变换矩阵包括:
平移所述小矩形,使得所述小梯形下底的一顶点与该小矩形的对应顶点对齐,并计算平移矩阵;
以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形进行伸缩,并计算伸缩矩阵;
根据所述小梯形的形状,将所述伸缩后的小矩形进行错切,得到与所述小梯形的形状一致的目标小梯形,并计算错切矩阵;
将目标小梯形进行投影变换,并计算其投影矩阵;
将所述平移矩阵、伸缩矩阵、错切矩阵以及投影矩阵相乘,得到所述小矩形变换成相应小梯形的三维变换矩阵。
4.如权利要求3所述的方法,其特征在于,所述计算每个小梯形的各顶点坐标为:
利用牛顿迭代法计算每个小梯形的各顶点坐标。
5.如权利要求4所述的方法,其特征在于,所述平移所述小矩形,使得所述小梯形下底的一顶点与该小矩形的对应顶点对齐,并计算平移矩阵包括:
所述小梯形下底的一顶点p1坐标为(xp1,y1),对应所述小矩形的一顶点A坐标为(xa,ya);
平移所述小矩形,使所述顶点p1与所述顶点A对齐;计算所述平移矩阵T1为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>x</mi> <mrow> <mi>p</mi> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>a</mi> </msub> </mrow> </mtd> <mtd> <mrow> <msub> <mi>y</mi> <mi>a</mi> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>.</mo> </mrow>
6.如权利要求5所述的方法,其特征在于,所述以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形进行伸缩,并计算伸缩矩阵包括:
对于所述小梯形,与所述顶点p1在同一单调曲线上的上底顶点p2坐标为(xp2,y2),下底的另一顶点q1坐标为(xb,yb);
对于所述小矩形,与所述顶点A相邻的两顶点B和C的坐标分别为(xb,yb)和(xc,yc);
以所述小梯形下底长为所述平移后的小矩形的长,以所述小梯形的高为所述平移后的小矩形的宽,将所述平移后的小矩形在x轴和y轴上分别进行伸缩,得到所述伸缩矩阵T2为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mfrac> <mrow> <msub> <mi>x</mi> <mi>k</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mrow> <mi>p</mi> <mn>1</mn> </mrow> </msub> </mrow> <mrow> <msub> <mi>x</mi> <mrow> <mi>q</mi> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mrow> <mi>p</mi> <mn>1</mn> </mrow> </msub> </mrow> </mfrac> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mfrac> <mrow> <msub> <mi>y</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> <mrow> <msub> <mi>y</mi> <mi>c</mi> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mfrac> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </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> <mo>.</mo> </mrow>
7.如权利要求6所述的方法,其特征在于,所述根据所述小梯形的形状,将所述伸缩后的小矩形进行错切,得到与所述小梯形的形状一致的目标小梯形,并计算错切矩阵包括:
将由所述顶点p1、q1及C组成的三角形错切变换为由所述顶点p1、q1及p2组成的三角形,得到第一错切矩阵T31:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>c</mi> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>2</mn> </msub> <mo>)</mo> <mo>/</mo> <mo>(</mo> <msub> <mi>x</mi> <mi>c</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mrow> <mi>p</mi> <mn>2</mn> </mrow> </msub> <mo>)</mo> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </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> <mo>;</mo> </mrow>
将由所述顶点q1、C及D组成的三角形在x轴上进行伸缩变换,使其变换为由所述顶点q1、D及p2组成的三角形,得到x轴伸缩矩阵T32:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mrow> <mi>p</mi> <mn>2</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>d</mi> </msub> <mo>)</mo> <mo>/</mo> <mo>(</mo> <msub> <mi>x</mi> <mi>c</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>d</mi> </msub> <mo>)</mo> </mrow> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </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> <mo>;</mo> </mrow>
其中,所述顶点D为所述小矩形中,与所述顶点A相对的顶点,其坐标为(xd,yd);
将由所述顶点q1、D及p2组成的三角形错切变换为由所述顶点q1、p2及q2组成的三角形,得到与所述小梯形的形状一致的目标小梯形,且第二错切矩阵T33为:
<mrow> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>d</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mrow> <mi>q</mi> <mn>2</mn> </mrow> </msub> <mo>)</mo> <mo>/</mo> <mo>(</mo> <msub> <mi>y</mi> <mi>d</mi> </msub> <mo>-</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mtd> <mtd> <mn>1</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>1</mn> </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> <mo>;</mo> </mrow>
所述错切矩阵T3为所述第一错切矩阵T31、x轴伸缩矩阵T32以及第二错切矩阵T33的乘积。
8.如权利要求7所述的方法,其特征在于,所述将目标小梯形进行投影变换,并计算其投影矩阵包括:
计算所述目标小梯形进行投影变换后的灭点坐标;
根据所述灭点坐标,计算所述投影矩阵T4。
9.一种可视化控件的优化装置,其特征在于,该装置包括:
接收模块,用于接收生成可视化控件的请求;
生成模块,用于利用关键帧动画类生成矩形可视化控件;
变换模块,用于将所述矩形可视化控件变换为不规则形状的目标可视化控件,所述不规则形状的目标可视化控件由两条单调曲线和与所述矩形可视化控件的上下两条边重合的两条直线围成;
显示模块,用于显示所述不规则形状的目标可视化控件;
其中,所述变换模块,用于设定预定份数值;
将所述矩形可视化控件沿其任意一条边的方向分为预定份数,形成所述预定份数个小矩形;相应的,将所述不规则形状的目标可视化控件沿同样的方向分为预定份数,形成所述预定份数个小梯形;所述预定份数个小矩形与所述预定份数个小梯形一一对应;
计算每个小矩形变换成相应小梯形的三维变换矩阵,得到预定份数个三维变换矩阵;
将所述预定份数个三维变换矩阵挂载到所述关键帧动画类中,由所述关键帧动画类根据所述预定份数个三维变换矩阵完成所述矩形可视化控件到所述不规则形状的目标可视化控件的变换。
CN201310460103.1A 2013-09-30 2013-09-30 一种可视化控件的优化方法及装置 Active CN104516733B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310460103.1A CN104516733B (zh) 2013-09-30 2013-09-30 一种可视化控件的优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310460103.1A CN104516733B (zh) 2013-09-30 2013-09-30 一种可视化控件的优化方法及装置

Publications (2)

Publication Number Publication Date
CN104516733A CN104516733A (zh) 2015-04-15
CN104516733B true CN104516733B (zh) 2018-01-09

Family

ID=52792099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310460103.1A Active CN104516733B (zh) 2013-09-30 2013-09-30 一种可视化控件的优化方法及装置

Country Status (1)

Country Link
CN (1) CN104516733B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105931285A (zh) * 2016-04-29 2016-09-07 乐视控股(北京)有限公司 一种3d空间中的控件实现方法及其装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561671A (zh) * 2009-06-01 2009-10-21 杭州电子科技大学 基于构件的梯形图设计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7609888B2 (en) * 2005-07-01 2009-10-27 Microsoft Corporation Separating a video object from a background of a video sequence

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101561671A (zh) * 2009-06-01 2009-10-21 杭州电子科技大学 基于构件的梯形图设计方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
C++Builder中控件的动态生成与使用方法;刘艮等;《软件开发与设计》;20110930;第39-41页 *
空间OLE/ActiveX控件的生成与应用;詹庆明等;《武汉测绘科技大学学报》;19990930;第24卷(第3期);第272-275页 *

Also Published As

Publication number Publication date
CN104516733A (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
US7881818B2 (en) Flexible packaging incorporating two-dimensional graphics
US8830223B2 (en) Computer aided design of three-dimensional cartons with curved creases
US20070055401A1 (en) Two-dimensional graphics for incorporating on three-dimensional objects
WO2013184446A4 (en) Rotation operations in a mapping application
JP5992934B2 (ja) 三次元ビューイングの方法
Cui et al. A curved ray camera for handling occlusions through continuous multiperspective visualization
CN104424658B (zh) 一种保结构的二维形状内插方法
CN107168516A (zh) 基于vr及手势交互技术的全球气候矢量场数据可视化方法
CN108537877A (zh) 基于三维模型的可视化监测界面定制生成方法及装置
CN104516733B (zh) 一种可视化控件的优化方法及装置
JP2007325043A (ja) 画像表示装置及び画像表示プログラム
JP5834317B2 (ja) 誤差画像生成方法
CN101697235B (zh) 一种透视图生成方法和装置
JP4553601B2 (ja) 可視化プログラム
CN103325086B (zh) 一种基于四面体坐标系的三维图形的变形方法
CN103310045A (zh) 一种利用增强现实技术进行晶体大分子三维可视化的方法
Guo et al. Transfer function map
WO2015146517A1 (ja) 画像表示システム
JPWO2012107952A1 (ja) メータ表示装置
JP6058216B2 (ja) 描画装置及び描画方法及び描画プログラム
CN104835192A (zh) 一种三维网页图形绘制方法及装置
CN104036547B (zh) 基于Leap Motion控制的三维笔刷实时生成网络模型的方法与装置
JP2016065790A (ja) 車両用表示装置
CN104637091B (zh) 一种通过稀疏表示创建流形的方法
JP2013246824A (ja) ドローイングコード生成システム及びその方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080

Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A room 602

Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder