CN105760073B - 一种在交互式电子白板软件中实现图形透视的方法 - Google Patents

一种在交互式电子白板软件中实现图形透视的方法 Download PDF

Info

Publication number
CN105760073B
CN105760073B CN201610069436.5A CN201610069436A CN105760073B CN 105760073 B CN105760073 B CN 105760073B CN 201610069436 A CN201610069436 A CN 201610069436A CN 105760073 B CN105760073 B CN 105760073B
Authority
CN
China
Prior art keywords
perspective
tool
window
pts
drawing object
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.)
Expired - Fee Related
Application number
CN201610069436.5A
Other languages
English (en)
Other versions
CN105760073A (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.)
RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd
Original Assignee
RETURNSTAR INTERACTIVE TECHNOLOGY GROUP 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 RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd filed Critical RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd
Priority to CN201610069436.5A priority Critical patent/CN105760073B/zh
Publication of CN105760073A publication Critical patent/CN105760073A/zh
Application granted granted Critical
Publication of CN105760073B publication Critical patent/CN105760073B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04804Transparency, e.g. transparent or translucent windows

Abstract

本发明提供一种在交互式电子白板软件中实现图形透视的方法,包括:10、定义透视工具的功能;20、创建一个窗口作为透视工具窗口,充当透视工具的操作体,并实现透视工具的形状及使用透视工具进行拉伸操作;30、根据画布中各个顶点坐标分别绘制出透视工具窗口及各个透视图形的形状,并计算出画布中按图层顺序显示的各个透视图形与透视工具窗口有交集的图形对象;40、根据设定的透视层数计算出要显示及隐藏的图形对象;50、将需要显示的图形对象按图层顺序在透视工具窗口绘制出来,并将需要隐藏的图形对象不在透视工具窗口绘制出来;60、根据设定的透明度值,用带有透明度的维度A填充透视工具窗口。本发明可以实现层叠图形间的透射。

Description

一种在交互式电子白板软件中实现图形透视的方法
技术领域
本发明涉及交互式电子版本软件的绘图操作领域,尤其涉及一种在交互式电子白板软件中实现图形透视的方法。
背景技术
近年来交互式电子白板软件在教学中得到广泛的应用;软件使用者可以利用软件提供的功能绘制图形对象,在实际的教学使用过程中,使用者又往往需要一种工具可以透过层叠图层按照设定的穿透层次查看被叠在下面的图形信息。
发明内容
本发明要解决的技术问题,在于提供一种在交互式电子白板软件中实现图形透视的方法。
本发明是这样实现的:
一种在交互式电子白板软件中实现图形透视的方法,包括如下步骤:
步骤10、定义透视工具的功能;
步骤20、创建一个窗口作为透视工具窗口,充当所述透视工具的操作体,并实现所述透视工具的形状以及使用所述透视工具进行拉伸操作;
步骤30、将画布中通过所述透视工具进行透视的图形定义为透视图形,根据画布中所述透视工具窗口及各个透视图形的顶点坐标分别绘制出所述透视工具窗口及各个所述透视图形的形状,并计算出画布中按图层顺序显示的各个所述透视图形与所述透视工具窗口有交集的图形对象;
步骤40、根据设定的透视层数计算出要显示及隐藏的图形对象,若透视层数为k,则将所述透视图形的图层值小于及等于k的图形对象进行隐藏,并将所述透视图形的图层值大于k的图形对象进行显示;
步骤50、将需要显示的图形对象按图层顺序在所述透视工具窗口绘制出来,并将需要隐藏的图形对象不在所述透视工具窗口绘制出来;
步骤60、根据设定的透明度值,用带有透明度的维度A填充所述透视工具窗口。
进一步地,所述步骤10中透视工具的功能具体为:
所述透视工具的形状为几何图形;
所述透视工具用于设置透视层数,根据该透视层数确定透视图形显示或隐藏的方式;
所述透视工具用于设置透明度值,并按设置好的透明度值显示透视效果;
在所述透视工具的形状边缘上进行拉伸来改变所述透视工具的大小。
进一步地,所述步骤20具体包括如下步骤:
步骤201、创建一个窗口作为透视工具窗口,并使用系统API函数SetWindowLong及SetLayeredWindowAttributes设置该透视工具窗口的风格;
步骤202、选定所述透视工具窗口的形状,根据选定的图形类别,计算出所述透视工具窗口的各个顶点坐标,创建对应的透视工具窗口形状;
步骤203、判断操作点是否落在所述透视工具窗口的边缘上,如果操作点落在边缘上,则根据操作产生的dx、dy进行拉伸,即width=width+dx,height=height+dy,从而改变所述透视工具窗口的大小;如果操作点不落在边缘上且位于所述透视工具窗口内部,则将所述透视工具窗口进行整体拉伸;否则不进行拉伸操作。
进一步地,所述步骤30具体包括如下步骤:
步骤301、计算按图层顺序显示各个透视图形的顶点坐标,依次按顺序连接起来,首尾相连,形成一个个封闭的几何图形;
步骤302、根据所述透视工具窗口的形状,获取各个顶点坐标,依次按顺序连接起来,首尾相连,形成透视工具的外围几何图形;
步骤303、将步骤301所构建的每个几何图形按顺序依次与步骤302所构建的几何图形求交集,如果交集不为空,则按图层顺序依次记录其对应的图形对象;如果交集为空,则不存在有交集的图形对象。
进一步地,所述步骤60之后还包括:
步骤70、加粗所述透视工具窗口的边框。
本发明具有如下优点:本发明可以实现层叠图形之间的透射。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种在交互式电子白板软件中实现图形透视的方法执行流程图。
图2为透视工具窗口形状图。
图3为没用到透视工具的图形视觉效果图。
图4为用透视工具透视一层的图形视觉效果图。
图5为用透视工具透视二层的图形视觉效果图。
图6为用透视工具透视二层并带20%透明度的图形视觉效果图。
图7为有图形不在透视区域透视一层的图形视觉效果图。
具体实施方式
为使得本发明更明显易懂,现以一优选实施例,并配合附图作详细说明如下。
请参阅图1,本发明的一种在交互式电子白板软件中实现图形透视的方法,包括如下步骤:
步骤10、定义透视工具的功能,所述步骤10中透视工具的功能具体为:
所述透视工具的形状为几何图形;
所述透视工具用于设置透视层数,根据该透视层数确定透视图形显示或隐藏的方式;
所述透视工具用于设置透明度值,并按设置好的透明度值显示透视效果;
在所述透视工具的形状边缘上进行拉伸来改变所述透视工具的大小。
步骤20、创建一个窗口作为透视工具窗口,充当所述透视工具的操作体,并实现所述透视工具的形状以及使用所述透视工具进行拉伸操作,具体包括如下步骤:
步骤201、创建一个窗口作为透视工具窗口,并使用系统API(ApplicationProgramming Interface,应用程序编程接口)函数SetWindowLong(用来改变指定窗口的属性)及SetLayeredWindowAttributes(用于设置分层窗口透明度)设置该透视工具窗口的风格;具体如下:
定义一个比较偏的颜色值:
FormColor=RGB(1,0,1);
令窗口的背景颜色为:
Color=FormColor;
设置窗口的风格,标题栏窗口:
FormStyle=GetWindowLong(Handle,GWL_EXSTYLE);
SetWindowLong(Handle,GWL_EXSTYLE,FormStyle or WS_EX_LAYERED);
设置窗口的透明模式,即窗口上只要是颜色是RGB(1,0,1)的位置都完全透明,其他颜色不透明;
SetLayeredWindowAttributes(Handle,FormColor,255,LWA_ALPHA or LWA_COLORKEY);
因此,窗口初始化时,整个窗口背景都被设置颜色为:RGB(1,0,1),整个窗口完全透明;
步骤202、选定所述透视工具窗口的形状,根据选定的图形类别,比如说五角星,计算出所述透视工具窗口的各个顶点坐标,创建对应的透视工具窗口形状;针对图2各个几何图形构建说明如下:
路径FillPath用于保存图形的路径区域,即透视工具窗口的“形状”,
窗口左上顶点坐标为:
FRectFLeftTop:TGPPointF;
窗口右上顶点坐标为:
FRectFRightBottom:TGPPointF;
(1)矩形的区域路径:
Point1.X=FRectFLeftTop.X;
Point1.Y=FRectFLeftTop.Y;
Point2.X=FRectFLeftTop.X;
Point2.Y=FRectFLeftTop.Y+FRectFRightBottom.Y;
Point3.X=FRectFRightBottom.X;
Point3.Y=FRectFRightBottom.Y;
Point4.X=FRectFRightBottom.X;
Point4.Y=FRectFLeftTop.Y;
则路径形状为:
FillPath.AddLine(Point1,Point2);
FillPath.AddLine(Point2,Point3);
FillPath.AddLine(Point3,Point4);
FillPath.AddLine(Point4,Point1);
(2)圆形的区域路径为:
Path.AddEllipse(RectF);
RectF两点FRectFLeftTop、FRectFRightBottom构成的矩形,如下:
RectF.X=FRectFLeftTop.X;
RectF.Y=FRectFLeftTop.Y;
RectF.Width=FRectFRightBottom.X-FRectFLeftTop.X;
RectF.Height=FRectFRightBottom.Y-FRectFLeftTop.Y;
(3)三角形区域路径:
Pts[0].X=(FRectFRightBottom.X+FRectFLeftTop.X)/2;
Pts[0].Y=FRectFLeftTop.Y;
Pts[1].X=FRectFLeftTop.X;
Pts[1].Y=FRectFRightBottom.Y;
Pts[2].X=FRectFRightBottom.X;
Pts[2].Y=FRectFRightBottom.Y;
Pts为三个顶点坐标数组
FillPath.AddLine(Pts[0],Pts[1]);
FillPath.AddLine(Pts[1],Pts[2]);
FillPath.AddLine(Pts[2],Pts[0]);
(4)菱形区域路径:
Pts[0].X=(FRectFLeftTop.X+FRectFRightBottom.X)/2;
Pts[0].Y=FRectFLeftTop.Y;
Pts[1].X=FRectFLeftTop.X;
Pts[1].Y=(FRectFLeftTop.Y+FRectFRightBottom.Y)/2;
Pts[2].X=(FRectFLeftTop.X+FRectFRightBottom.X)/2;
Pts[2].Y=FRectFRightBottom.Y;
Pts[3].X=FRectFRightBottom.X;
Pts[3].Y=(FRectFLeftTop.Y+FRectFRightBottom.Y)/2;
Pts为四个顶点坐标数组
FillPath.AddLine(Pts[0],Pts[1]);
FillPath.AddLine(Pts[1],Pts[2]);
FillPath.AddLine(Pts[2],Pts[3]);
FillPath.AddLine(Pts[3],Pts[0]);
与构造三角形的路径区域类似,可同样构造出FillPath;
(5)五边形区域路径:
Points[0].X=FRectFLeftTop.X;
Points[0].Y=FRectFLeftTop.Y;
Points[1].X=FRectFLeftTop.X;
Points[1].Y=FRectFRightBottom.Y;
Points[2].X=FRectFRightBottom.X;
Points[2].Y=FRectFRightBottom.Y;
Points[3].X=FRectFRightBottom.X;
Points[3].Y=FRectFLeftTop.Y;;
Pts[0].X=(Points[0].X+Points[3].X)*0.5;
Pts[0].Y=(Points[0].Y+Points[3].Y)*0.5;
Pts[1].X=Points[0].X+(Points[1].X-Points[0].X)*0.381966;
Pts[1].Y=Points[0].Y+(Points[1].Y-Points[0].Y)*0.381966;
Pts[2].X=Points[1].X+(Points[2].X-Points[1].X)*0.190983;
Pts[2].Y=Points[1].Y+(Points[2].Y-Points[1].Y)*0.190983;
Pts[3].X=Points[2].X-(Points[2].X-Points[1].X)*0.190983;
Pts[3].Y=Points[2].Y-(Points[2].Y-Points[1].Y)*0.190983;
Pts[4].X=Points[3].X+(Points[2].X-Points[3].X)*0.381966;
Pts[4].Y=Points[3].Y+(Points[2].Y-Points[3].Y)*0.381966;
其中,Points为外围矩形四个顶点,用于计算五边形5个顶点过程中的辅助点;Pts为五个顶点坐标数组:
FillPath.AddLine(Pts[0],Pts[1]);
FillPath.AddLine(Pts[1],Pts[2]);
FillPath.AddLine(Pts[2],Pts[3]);
FillPath.AddLine(Pts[3],Pts[4]);
FillPath.AddLine(Pts[4],Pts[0]);
公式中的比例值:0.5、0.381966、0.190983是本发明规定的比例经验值;同上,类似可造出FillPath;
(6)五角星区域路径:
Points[0].X=FRectFLeftTop.X;
Points[0].Y=FRectFLeftTop.Y;
Points[1].X=FRectFLeftTop.X;
Points[1].Y=FRectFRightBottom.Y;
Points[2].X=FRectFRightBottom.X;
Points[2].Y=FRectFRightBottom.Y;
Points[3].X=FRectFRightBottom.X;
Points[3].Y=FRectFLeftTop.Y;
Pts[0].X=(Points[0].X+Points[3].X)*0.5;
Pts[0].Y=(Points[0].Y+Points[3].Y)*0.5;
Pts[2].X=Points[0].X+(Points[1].X-Points[0].X)*0.381966;
Pts[2].Y=Points[0].Y+(Points[1].Y-Points[0].Y)*0.381966;
Pts[4].X=Points[1].X+(Points[2].X-Points[1].X)*0.190983;
Pts[4].Y=Points[1].Y+(Points[2].Y-Points[1].Y)*0.190983;
Pts[6].X=Points[2].X-(Points[2].X-Points[1].X)*0.190983;
Pts[6].Y=Points[2].Y-(Points[2].Y-Points[1].Y)*0.190983;
Pts[8].X=Points[3].X+(Points[2].X-Points[3].X)*0.381966;
Pts[8].Y=Points[3].Y+(Points[2].Y-Points[3].Y)*0.381966;
Pts[1].X=Pts[0].X+(Pts[4].X-Pts[0].X)*0.381966;
Pts[1].Y=Pts[0].Y+(Pts[4].Y-Pts[0].Y)*0.381966;
Pts[3].X=Pts[2].X+(Pts[6].X-Pts[2].X)*0.381966;
Pts[3].Y=Pts[2].Y+(Pts[6].Y-Pts[2].Y)*0.381966;
Pts[5].X=Pts[4].X+(Pts[8].X-Pts[4].X)*0.381966;
Pts[5].Y=Pts[4].Y+(Pts[8].Y-Pts[4].Y)*0.381966;
Pts[7].X=Pts[8].X+(Pts[4].X-Pts[8].X)*0.381966;
Pts[7].Y=Pts[8].Y+(Pts[4].Y-Pts[8].Y)*0.381966;
Pts[9].X=Pts[0].X+(Pts[6].X-Pts[0].X)*0.381966;
Pts[9].Y=Pts[0].Y+(Pts[6].Y-Pts[0].Y)*0.381966;
其中,Points为外围矩形四个顶点,用于计算五角星10个顶点过程中的辅助点;Pts为10个顶点坐标数组:
FillPath.AddLine(Pts[0],Pts[1]);
FillPath.AddLine(Pts[1],Pts[2]);
FillPath.AddLine(Pts[2],Pts[3]);
FillPath.AddLine(Pts[3],Pts[4]);
FillPath.AddLine(Pts[4],Pts[5]);
FillPath.AddLine(Pts[5],Pts[6]);
FillPath.AddLine(Pts[6],Pts[7]);
FillPath.AddLine(Pts[7],Pts[8]);
FillPath.AddLine(Pts[8],Pts[9]);
FillPath.AddLine(Pts[9],Pts[0]);
公式中的比例值:0.5、0.381966、0.190983是本发明规定的比例经验值;同上,类似可造出FillPath;
以上(1)-(6)的核心思想都是:在已知四个顶点坐标的矩形区域里,根据几何图形基本图形形状,结合规定的比例值换算出各个顶点的坐标及区域;
步骤203、判断操作点是否落在所述透视工具窗口的边缘上,如果操作点落在边缘上,则根据操作产生的dx、dy进行拉伸,即width=width+dx,height=height+dy,从而改变所述透视工具窗口的大小;如果操作点不落在边缘上且位于所述透视工具窗口内部,则将所述透视工具窗口进行整体拉伸;否则不进行拉伸操作;所述透视工具窗口的边缘是指:步骤202所述的区域向外扩大一定的图形比例尺寸及向内缩小一定的图形比例尺寸,形成的环形区域,这里取5个像素点为例,即所述透视工具窗口的每条边向外5个像素点与向内5个像素点之间的区域为边缘;在该步骤中的判断方法说明如下:
(1)将FRectFLeftTop、FRectFRightBottom“向外”扩展5个像素点:
FRectFLeftTop1.X=FRectFLeftTop.X-5;
FRectFLeftTop1.Y=FRectFLeftTop.Y-5;
FRectFRightBottom1.X=FRectFRightBottom.X+5;
FRectFRightBottom1.Y=FRectFRightBottom1.Y+5;
利用新的两个点FRectFLeftTop1、FRectFRightBottom1,用步骤202的方法,可以算出比FillPath的各点X、Y坐标都大5的区域OutPath;
(2)将FRectFLeftTop、FRectFRightBottom“向内”压缩5个像素点:
FRectFLeftTop2X=FRectFLeftTopX+5;
FRectFLeftTop2.Y=FRectFLeftTop.Y+5;
FRectFRightBottom2.X=FRectFRightBottom.X-5;
FRectFRightBottom2.Y=FRectFRightBottom1.Y-5;
利用新的两个点FRectFLeftTop2、FRectFRightBottom2,用步骤202的方法,可以算出比FillPath的各点X、Y坐标都小5的区域InPath;
(3)显然区域OutPath完全包含区域InPath;在此,区域OutPath与InPath做区域减法运算,得到新区域ControlPath,为边缘区域;只要操作点落在此区域里,都将被视为改变透视工具窗口大小的操作,操作过程中根据前后两点的坐标,将产生位移变差dx、dy,也就有:
width=width+dx;
height=height+dy;
对应的FRectFLeftTop、FRectFRightBottom也将跟着更新,之后重新利用上面的步骤202及本步骤203中的(1)-(3)算出FillPath、ControlPath。
步骤30、将画布中通过所述透视工具进行透视的图形定义为透视图形,根据画布中所述透视工具窗口及各个透视图形的顶点坐标分别绘制出所述透视工具窗口及各个所述透视图形的形状,并计算出画布中按图层顺序显示的各个所述透视图形与所述透视工具窗口有交集的图形对象,具体包括如下步骤:
步骤301、计算按图层顺序显示各个透视图形的顶点坐标,依次按顺序连接起来,首尾相连,形成一个个封闭的几何图形,详细说明如下:
见图3,有三个即将被透视的图形,按图层由后到前依次为:矩形(A)、三角形(B)、梯形(C),类似步骤202的方法可以算出各个图形的轮廓路径:PathA,PathB,PathC;
步骤302、根据所述透视工具窗口的形状,获取各个顶点坐标,依次按顺序连接起来,首尾相连,形成透视工具的外围几何图形;即:步骤202中算出的区域路径FillPath;
步骤303、将步骤301所构建的每个几何图形按顺序依次与步骤302所构建的几何图形求交集,如果交集不为空,则按图层顺序依次记录其对应的图形对象;如果交集为空,则不存在有交集的图形对象;具体说明如下:
由图3和图4可以看出,透视工具是矩形形状,因此FillPath实际是个矩形区域,显然PathA、PathB、PathC与FillPath都有区域交集,按图层从后到前,将有交集的图形对象A、B、C缓存起来;
又例如,图7中,菱形(D)的路径PathD显然跟FillPath无交集,因此图形对D不在有交集的图形对象里。
步骤40、根据设定的透视层数计算出要显示及隐藏的图形对象,具体说明如下:
图4中为透视一层的效果,也就是A、B、C图形对象的图形图层为:3、2、1,值越小,图形就越“前面”显示;透视一层那么就是图层值小于等于“1”的对象(C梯形)都要被隐藏起来,大于1的对象(A矩形、B三角形)都要绘制出来;图5是透视二层的效果,因此图层之小于等于2的对象(C梯形、B三角形)都要被隐藏起来,大于2的对象(A矩形)要绘制出来;即若透视层数为k,则将所述透视图形的图层值小于及等于k的图形对象进行隐藏,并将所述透视图形的图层值大于k的图形对象进行显示。
步骤50、将需要显示的图形对象按图层顺序在所述透视工具窗口绘制出来,并将需要隐藏的图形对象不在所述透视工具窗口绘制出来;具体说明如下:
图4为透视一层的效果,也就是在透视工具窗口绘制时,按图层顺序从大到小依次绘制,图层值小于等于1的对象不会绘制;被绘制的图形就是步骤40所说的“显示”,不绘制的图形就是步骤40所说的“隐藏”;因此图4中按图层从大到小需要绘制的图形对象有A、B,不需要绘制的有C;经过这步处理,就得到图4、图5或者图7的效果。
步骤60、根据设定的透明度值,用带有透明度的维度A(可以透明的颜色一般有四个维度(RGBA))填充所述透视工具窗口,为了达到一些更好的视觉效果,这里加上另一个功能,就是允许使用者,通过透视工具进行“透视观看”的清晰模糊度。例图6较图5、图7就显得“模糊”。这里的处理方式,是在步骤50的基础上,用某一纯色按照既定的透明值填充透视工具窗口,比如说这个颜色值为:
RGB(127,127,127),再加透明维度A(0-255),0完全透明,255完全不透明,即值越大越不透明,越小越透明。
图6是20%的透明度,跟维度A值的含义刚好相反,百分值越小越不透明,越大越透明,由百分数换出出维度A的值如下:
A=(255-255*0.2)=204。
步骤70、加粗所述透视工具窗口的边框,为了比较好的视觉效果,这里绘制上透视工具的窗口边框,也就是本发明附图中那些“透视工具”外边缘那圈“黑色轮廓”。在这些黑色轮廓附近可以支持步骤102所描述的对透视工具窗口进行改变大小的操作。
本发明实现出来的效果:表面上像是把图层靠前的图形对象剥开,然则不是如此;核心思想是:画布上已经绘制好的图形对象都不会去动,换之,另起一“画布”,根据各个图形位置、图层关系把图形对象按照算出的“规矩”在新的“画布”上重新绘制一次,使得看起来像是把图层靠前的图像对象剥开。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (4)

1.一种在交互式电子白板软件中实现图形透视的方法,其特征在于:包括如下步骤:
步骤10、定义透视工具的功能;
步骤20、创建一个窗口作为透视工具窗口,充当所述透视工具的操作体,并实现所述透视工具的形状以及使用所述透视工具进行拉伸操作;
步骤30、将画布中通过所述透视工具进行透视的图形定义为透视图形,根据画布中所述透视工具窗口及各个透视图形的顶点坐标分别绘制出所述透视工具窗口及各个所述透视图形的形状,并计算出画布中按图层顺序显示的各个所述透视图形与所述透视工具窗口有交集的图形对象;具体包括如下步骤:
步骤301、计算按图层顺序显示各个透视图形的顶点坐标,依次按顺序连接起来,首尾相连,形成一个个封闭的几何图形;
步骤302、根据所述透视工具窗口的形状,获取各个顶点坐标,依次按顺序连接起来,首尾相连,形成透视工具的外围几何图形;
步骤303、将步骤301所构建的每个几何图形按顺序依次与步骤302所构建的几何图形求交集,如果交集不为空,则按图层顺序依次记录其对应的图形对象;如果交集为空,则不存在有交集的图形对象;
步骤40、根据设定的透视层数计算出要显示及隐藏的图形对象,若透视层数为k,则将所述透视图形的图层值小于及等于k的图形对象进行隐藏,并将所述透视图形的图层值大于k的图形对象进行显示;
步骤50、将需要显示的图形对象按图层顺序在所述透视工具窗口绘制出来,并将需要隐藏的图形对象不在所述透视工具窗口绘制出来;
步骤60、根据设定的透明度值,用带有透明度的维度A填充所述透视工具窗口。
2.根据权利要求1所述的一种在交互式电子白板软件中实现图形透视的方法,其特征在于:所述步骤10中透视工具的功能具体为:
所述透视工具的形状为几何图形;
所述透视工具用于设置透视层数,根据该透视层数确定透视图形显示或隐藏的方式;
所述透视工具用于设置透明度值,并按设置好的透明度值显示透视效果;
在所述透视工具的形状边缘上进行拉伸来改变所述透视工具的大小。
3.根据权利要求1所述的一种在交互式电子白板软件中实现图形透视的方法,其特征在于:所述步骤20具体包括如下步骤:
步骤201、创建一个窗口作为透视工具窗口,并使用系统API函数SetWindowLong及SetLayeredWindowAttributes设置该透视工具窗口的风格;
步骤202、选定所述透视工具窗口的形状,根据选定的图形类别,计算出所述透视工具窗口的各个顶点坐标,创建对应的透视工具窗口形状;
步骤203、判断操作点是否落在所述透视工具窗口的边缘上,如果操作点落在边缘上,则根据操作产生的dx、dy进行拉伸,即width=width+dx,height=height+dy,从而改变所述透视工具窗口的大小;如果操作点不落在边缘上且位于所述透视工具窗口内部,则将所述透视工具窗口进行整体拉伸;否则不进行拉伸操作。
4.根据权利要求1所述的一种在交互式电子白板软件中实现图形透视的方法,其特征在于:所述步骤60之后还包括:
步骤70、加粗所述透视工具窗口的边框。
CN201610069436.5A 2016-02-01 2016-02-01 一种在交互式电子白板软件中实现图形透视的方法 Expired - Fee Related CN105760073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610069436.5A CN105760073B (zh) 2016-02-01 2016-02-01 一种在交互式电子白板软件中实现图形透视的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610069436.5A CN105760073B (zh) 2016-02-01 2016-02-01 一种在交互式电子白板软件中实现图形透视的方法

Publications (2)

Publication Number Publication Date
CN105760073A CN105760073A (zh) 2016-07-13
CN105760073B true CN105760073B (zh) 2018-11-06

Family

ID=56342883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610069436.5A Expired - Fee Related CN105760073B (zh) 2016-02-01 2016-02-01 一种在交互式电子白板软件中实现图形透视的方法

Country Status (1)

Country Link
CN (1) CN105760073B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502667B (zh) * 2016-10-18 2019-09-03 广州视睿电子科技有限公司 一种渲染方法及装置
CN107038734A (zh) * 2016-11-23 2017-08-11 浙江工业大学 一种用于Windows系统的图像叠加文本的方法
CN107610243A (zh) * 2017-09-29 2018-01-19 广州视睿电子科技有限公司 立体图形的调节控制器生成、调节控制方法及相应装置
CN107678825A (zh) * 2017-10-16 2018-02-09 青岛海信电器股份有限公司 一种应用于电子白板的渲染方法及电子白板
CN107992255B (zh) * 2017-12-01 2020-11-20 珠海格力电器股份有限公司 一种生成图像的方法及服务器
CN113407098B (zh) * 2021-07-30 2021-12-03 广州朗国电子科技股份有限公司 一种基于android白板防闪烁的方法及其装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102483680A (zh) * 2009-09-04 2012-05-30 大众汽车有限公司 用于显示信息的方法和设备
CN102945557A (zh) * 2012-10-12 2013-02-27 北京海鑫科金高科技股份有限公司 基于移动终端的矢量现场图绘制方法
CN103473016A (zh) * 2013-09-25 2013-12-25 东莞宇龙通信科技有限公司 多窗口显示方法及触控终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ439299A0 (en) * 1999-12-01 1999-12-23 Silverbrook Research Pty Ltd Interface system
US20050231767A1 (en) * 2004-04-16 2005-10-20 Brake Gregory A Touch sensitive scan area selection apparatus and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102483680A (zh) * 2009-09-04 2012-05-30 大众汽车有限公司 用于显示信息的方法和设备
CN102945557A (zh) * 2012-10-12 2013-02-27 北京海鑫科金高科技股份有限公司 基于移动终端的矢量现场图绘制方法
CN103473016A (zh) * 2013-09-25 2013-12-25 东莞宇龙通信科技有限公司 多窗口显示方法及触控终端

Also Published As

Publication number Publication date
CN105760073A (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
CN105760073B (zh) 一种在交互式电子白板软件中实现图形透视的方法
CN108876931B (zh) 三维物体颜色调整方法、装置、计算机设备及计算机可读存储介质
EP1371012B1 (en) Antialiasing method and apparatus for video applications
CN103946895B (zh) 基于平铺块的呈现中的镶嵌方法和设备
EP3129977B1 (en) Method for efficient construction of high resolution display buffers
CN104038807B (zh) 一种基于OpenGL的图层混合方法及装置
US20110050685A1 (en) Image processing apparatus, image processing method, and program
US20050134588A1 (en) Method and apparatus for image processing
RU2312404C2 (ru) Аппаратное ускорение графических операций при построении изображений на основе пиксельных подкомпонентов
JPH0620063A (ja) テクスチャマップ透視図を生成する方法及び装置
CN110196746A (zh) 交互界面渲染方法及装置、电子设备、存储介质
TW200842758A (en) Efficient 2-D and 3-D graphics processing
US10445931B1 (en) Directional dilation at a mesh boundary of three-dimensional images
CN105701855B (zh) 基于符号结构的线型地图符号反走样绘制方法
CN109118556B (zh) 一种实现ui界面动画过渡效果的方法、系统及存储介质
JP2023553507A (ja) 特注仕様製品の合成データ表示の高品質レンダリング表示を得るためのシステムおよびその方法
CN112784621A (zh) 图像显示方法及设备
CN111047506A (zh) 环境图生成和孔填充
CN107330957A (zh) 一种具有图层之间映射联动关系的图像处理方法
US8648874B2 (en) Method and system for providing edge antialiasing
US10186073B2 (en) Image processing device, image processing method, and data structure of image file
US9773331B2 (en) Methods and systems for efficient graphics rendering
CN109829962B (zh) 一种利用opengl的物体空间消隐线计算加速方法
US10115181B2 (en) Systems for automatically assembling tile maps and associated techniques
CN106530370A (zh) 镶嵌画模拟方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 350108 6, No. 1 Innovation Park, No. 3 east science and technology road, Minhou street, Minhou, Fuzhou.

Applicant after: RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co.,Ltd.

Address before: 350000 8 tower building, Orange Garden Industrial Park, 618 Jinshan Road, Jianxin Town, Cangshan District, Fuzhou, Fujian.

Applicant before: RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181106

Termination date: 20220201

CF01 Termination of patent right due to non-payment of annual fee