CN105760073A - 一种在交互式电子白板软件中实现图形透视的方法 - Google Patents
一种在交互式电子白板软件中实现图形透视的方法 Download PDFInfo
- Publication number
- CN105760073A CN105760073A CN201610069436.5A CN201610069436A CN105760073A CN 105760073 A CN105760073 A CN 105760073A CN 201610069436 A CN201610069436 A CN 201610069436A CN 105760073 A CN105760073 A CN 105760073A
- Authority
- CN
- China
- Prior art keywords
- perspective
- tool
- window
- pts
- described tool
- 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.)
- Granted
Links
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/0484—Interaction 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/04845—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04804—Transparency, e.g. transparent or translucent windows
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
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(ApplicationProgrammingInterface,应用程序编程接口)函数SetWindowLong(用来改变指定窗口的属性)及SetLayeredWindowAttributes(用于设置分层窗口透明度)设置该透视工具窗口的风格;具体如下:
定义一个比较偏的颜色值:
FormColor=RGB(1,0,1);
令窗口的背景颜色为:
Color=FormColor;
设置窗口的风格,标题栏窗口:
FormStyle=GetWindowLong(Handle,GWL_EXSTYLE);
SetWindowLong(Handle,GWL_EXSTYLE,FormStyleorWS_EX_LAYERED);
设置窗口的透明模式,即窗口上只要是颜色是RGB(1,0,1)的位置都完全透明,其他颜色不透明;
SetLayeredWindowAttributes(Handle,FormColor,255,LWA_ALPHAorLWA_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 (5)
1.一种在交互式电子白板软件中实现图形透视的方法,其特征在于:包括如下步骤:
步骤10、定义透视工具的功能;
步骤20、创建一个窗口作为透视工具窗口,充当所述透视工具的操作体,并实现所述透视工具的形状以及使用所述透视工具进行拉伸操作;
步骤30、将画布中通过所述透视工具进行透视的图形定义为透视图形,根据画布中所述透视工具窗口及各个透视图形的顶点坐标分别绘制出所述透视工具窗口及各个所述透视图形的形状,并计算出画布中按图层顺序显示的各个所述透视图形与所述透视工具窗口有交集的图形对象;
步骤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所述的一种在交互式电子白板软件中实现图形透视的方法,其特征在于:所述步骤30具体包括如下步骤:
步骤301、计算按图层顺序显示各个透视图形的顶点坐标,依次按顺序连接起来,首尾相连,形成一个个封闭的几何图形;
步骤302、根据所述透视工具窗口的形状,获取各个顶点坐标,依次按顺序连接起来,首尾相连,形成透视工具的外围几何图形;
步骤303、将步骤301所构建的每个几何图形按顺序依次与步骤302所构建的几何图形求交集,如果交集不为空,则按图层顺序依次记录其对应的图形对象;如果交集为空,则不存在有交集的图形对象。
5.根据权利要求1所述的一种在交互式电子白板软件中实现图形透视的方法,其特征在于:所述步骤60之后还包括:
步骤70、加粗所述透视工具窗口的边框。
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 true CN105760073A (zh) | 2016-07-13 |
CN105760073B 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) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502667A (zh) * | 2016-10-18 | 2017-03-15 | 广州视睿电子科技有限公司 | 一种渲染方法及装置 |
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 | 青岛海信电器股份有限公司 | 一种应用于电子白板的渲染方法及电子白板 |
CN107992255A (zh) * | 2017-12-01 | 2018-05-04 | 珠海格力电器股份有限公司 | 一种生成图像的方法及服务器 |
CN113407098A (zh) * | 2021-07-30 | 2021-09-17 | 广州朗国电子科技股份有限公司 | 一种基于android白板防闪烁的方法及其装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050231767A1 (en) * | 2004-04-16 | 2005-10-20 | Brake Gregory A | Touch sensitive scan area selection apparatus and method |
US20120044185A1 (en) * | 1999-12-01 | 2012-02-23 | Silverbrook Research Pty Ltd | Handheld display device having processor for rendering display output with real-time virtual transparency and video playback option |
CN102483680A (zh) * | 2009-09-04 | 2012-05-30 | 大众汽车有限公司 | 用于显示信息的方法和设备 |
CN102945557A (zh) * | 2012-10-12 | 2013-02-27 | 北京海鑫科金高科技股份有限公司 | 基于移动终端的矢量现场图绘制方法 |
CN103473016A (zh) * | 2013-09-25 | 2013-12-25 | 东莞宇龙通信科技有限公司 | 多窗口显示方法及触控终端 |
-
2016
- 2016-02-01 CN CN201610069436.5A patent/CN105760073B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120044185A1 (en) * | 1999-12-01 | 2012-02-23 | Silverbrook Research Pty Ltd | Handheld display device having processor for rendering display output with real-time virtual transparency and video playback option |
US20050231767A1 (en) * | 2004-04-16 | 2005-10-20 | Brake Gregory A | Touch sensitive scan area selection apparatus and method |
CN102483680A (zh) * | 2009-09-04 | 2012-05-30 | 大众汽车有限公司 | 用于显示信息的方法和设备 |
CN102945557A (zh) * | 2012-10-12 | 2013-02-27 | 北京海鑫科金高科技股份有限公司 | 基于移动终端的矢量现场图绘制方法 |
CN103473016A (zh) * | 2013-09-25 | 2013-12-25 | 东莞宇龙通信科技有限公司 | 多窗口显示方法及触控终端 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502667A (zh) * | 2016-10-18 | 2017-03-15 | 广州视睿电子科技有限公司 | 一种渲染方法及装置 |
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 | 青岛海信电器股份有限公司 | 一种应用于电子白板的渲染方法及电子白板 |
CN107992255A (zh) * | 2017-12-01 | 2018-05-04 | 珠海格力电器股份有限公司 | 一种生成图像的方法及服务器 |
CN107992255B (zh) * | 2017-12-01 | 2020-11-20 | 珠海格力电器股份有限公司 | 一种生成图像的方法及服务器 |
CN113407098A (zh) * | 2021-07-30 | 2021-09-17 | 广州朗国电子科技股份有限公司 | 一种基于android白板防闪烁的方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105760073B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105760073A (zh) | 一种在交互式电子白板软件中实现图形透视的方法 | |
CN104463948B (zh) | 三维虚拟现实系统与地理信息系统的无缝可视化方法 | |
CN101989178B (zh) | 多叉树数据结构的立体环状可视化方法 | |
US8917281B2 (en) | Image rendering method and system | |
CN103218846B (zh) | 三维树木模型的水墨画模拟方法 | |
CN104063888B (zh) | 一种基于非真实感的波谱艺术风格绘制方法 | |
CN104778736B (zh) | 单视频内容驱动的服装三维动画生成方法 | |
CN104822059B (zh) | 一种基于gpu加速的虚拟视点合成方法 | |
CN109118556B (zh) | 一种实现ui界面动画过渡效果的方法、系统及存储介质 | |
CN102819855B (zh) | 二维图像的生成方法及装置 | |
CN104700446B (zh) | 一种粒子系统中粒子顶点数据的更新方法 | |
CN112784621A (zh) | 图像显示方法及设备 | |
Bruckner et al. | Hybrid visibility compositing and masking for illustrative rendering | |
CN108460835A (zh) | 一种将几何对象融入体绘制结果的方法 | |
CN107886574B (zh) | 一种基于粒子系统的全局雨效仿真方法 | |
CN104517313B (zh) | 基于屏幕空间的环境光遮蔽的方法 | |
CN105096370A (zh) | 光线追踪的等价划分反锯齿方法 | |
EP2728551B1 (en) | Image rendering method and system | |
CN109829962B (zh) | 一种利用opengl的物体空间消隐线计算加速方法 | |
US9773331B2 (en) | Methods and systems for efficient graphics rendering | |
CN106157313A (zh) | 一种线条粉笔画艺术风格模拟方法 | |
CN104933746A (zh) | 一种为平面图片设置动态阴影的方法及装置 | |
JP3258286B2 (ja) | 半透明物体と不透明物体とが混在する複数の物体についての画像データをコンピュータ表示画面に表示する描画方法および描画装置 | |
CN110853147B (zh) | 一种三维人脸变换的方法 | |
JPH03271877A (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 | ||
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 |