CN101719057A - 绘制几何图形的方法及装置 - Google Patents
绘制几何图形的方法及装置 Download PDFInfo
- Publication number
- CN101719057A CN101719057A CN200910194248A CN200910194248A CN101719057A CN 101719057 A CN101719057 A CN 101719057A CN 200910194248 A CN200910194248 A CN 200910194248A CN 200910194248 A CN200910194248 A CN 200910194248A CN 101719057 A CN101719057 A CN 101719057A
- Authority
- CN
- China
- Prior art keywords
- triangle
- point
- starting point
- end point
- graph style
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
一种绘制几何图形的方法及装置,是以一条线段由两个三角形组成为基础,将要绘制的预设图形类型用三角形来进行表示,在识别鼠标点击的开始点、结束点后,根据所述预设图形类型、线宽、开始点位置坐标、结束点位置坐标,计算确定出组成所述预设图形类型的各三角形,然后采用DirectX中的绘制三角形的函数接口对各三角形进行绘制,而DirectX对Windows的支持性强、使用简单、支持硬件加速功能,尤其是能够充分利用显卡的功能,在将各几何图形转换为用三角形来表示之后,可以有效利用DirectX的诸多优点,因此,本发明方案可以有效提高绘制二维几何图形的效率。
Description
技术领域
本发明涉及计算机绘图技术领域,特别涉及一种绘制几何图形的方法以及绘制几何图形的装置。
背景技术
在当前的绘制图形的技术中,主要包括有GDI、OpenGL以及DirectX三类,其中GDI是图形设备接口,是MS开发的通用的Windows系统图形编程接口,功能强涉及面广,在一般的编程中都会使用到它,但GDI不支持硬件加速,对显卡的性能的使用率差,因此在用GDI绘制大量的几何图形时变得很低效,无法满足多媒体软件的演示效果,将其用来做多媒体开发时其显示性能就会很差,尤其是在绘制大量的图形时更为明显;OpenGL是SGI开发的一套三维图形软件包,出现很早,功能超强,且接口简洁,运算效率、绘图效果极高,虽然功能强大,也支持硬件加速,但是由于使用复杂难于维护,Windows对其支持有限,因此可编程性较差,开发起来比较耗时,而且Windows对他的支持性仅在1.1的版本;而DirectX是微软开发的基于Windows系统下的一套三维图形软件包,由于是微软开发的,因此对Windows下的编程的支持性特别好,开发简单,且易于使用和维护,又支持硬件加速功能,尤其是能够充分利用显卡的功能,能够得到很高的绘图效果(通常为GDI的5到10倍以上),因此,就这三款绘图开发包的优缺点而言,使用DirectX来进行多媒体软件开发是最好的一个选择,能够得到最简单的使用维护和最高绘图性能的效果。但对DirectX来说,由于其是三维图形软件包,对三维图形的支持性很好,可是对二维几何图形接口方面的支持性却很弱,对二维的几何图形支持有限,目前已经出现的最新版本DirectX10还只能支持画直线和三角形的功能,从而使得在绘制二维的几何图形时的效率不高,影响用户的使用体验。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于提供一种绘制几何图形的方法及装置,其可以在DierctX环境下高效绘制各种二维几何图形。
为达到上述目的,本发明采用以下技术方案:
一种绘制几何图形的方法,包括步骤:
预先设定预设图形类型、线宽;
识别鼠标点击的开始点、结束点;
根据所述预设图形类型、线宽、开始点位置坐标、结束点位置坐标,以一条线段由两个三角形组成为基础,计算确定出组成所述预设图形类型的各三角形;
采用DirectX中的绘制三角形的函数接口对所述各三角形进行绘制。
一种绘制几何图形的装置,包括:
参数预设模块,用于预先设定预设图形类型、线宽;
几何图形创建模块,用于识别鼠标点击的开始点、结束点,并根据所述预设图形类型、线宽,以一条线段由两个三角形组成为基础,确定计算出组成所述预设图形类型的各三角形;
图形绘制模块,用于采用DirectX中的绘制三角形的函数接口对所述预设图形类型的各三角形进行绘制。
根据本发明的绘制几何图形的方法及装置,其是以一条线段由两个三角形组成为基础,将要绘制的预设图形类型用三角形来进行表示,并使用DirectX中的绘制三角形的函数接口来实现对这些三角形的绘制,而DirectX对Windows的支持性强、使用简单、支持硬件加速功能,尤其是能够充分利用显卡的功能,在将各几何图形转换为用三角形来表示之后,可以有效利用DirectX的诸多优点,因此,本发明方案通过将几何图形转换为用三角形表示并使用DirectX的三角形函数接口来实现绘制,可以有效提高绘制二维几何图形的效率,提高用户的使用体验。
附图说明
图1是本发明的绘制几何图形的方法的流程示意图;
图2是依据本发明方法绘制直线时的流程示意图;
图3是依据本发明方法绘制直线时一个具体示例的图形示例图;
图4是依据本发明方法绘制折线时的流程示意图;
图5是依据本发明方法绘制折线时一个具体示例的图形示例图;
图6是依据本发明方法绘制双水平直线时的流程示意图;
图7是依据本发明方法绘制双水平直线时一个具体示例的图形示例图;
图8是依据本发明方法对双水平直线进行旋转时的图形示例图;
图9是依据本发明方法绘制双垂直直线时的流程示意图;
图10是依据本发明方法绘制双垂直直线时一个具体示例的图形示例图;
图11是依据本发明方法绘制矩形时的流程示意图;
图12是依据本发明方法绘制矩形时一个具体示例的图形示例图;
图13是依据本发明方法绘制菱形时的流程示意图;
图14是依据本发明方法绘制菱形时一个具体示例的图形示例图;
图15是依据本发明方法绘制圆形时的流程示意图;
图16是依据本发明方法绘制圆形时一个具体示例的图形示例图;
图17是依据本发明方法绘制等腰三角形时的流程示意图;
图18是依据本发明方法绘制等腰三角形时一个具体示例的图形示例图;
图19是依据本发明方法绘制直角三角形时的流程示意图;
图20是依据本发明方法绘制直角三角形时一个具体示例的图形示例图;
图21是依据本发明方法绘制五角形时的流程示意图;
图22是依据本发明方法绘制五角形时一个具体示例的图形示例图;
图23是本发明的绘制几何图形装置的结构示意图。
具体实施方式
以下以具体实施例的方式对本发明方案进行详细阐述。需要说明的是,在下述各个针对绘制时的具体示例的说明中,是以计算机中使用的坐标系为例进行说明,且x值随着X轴的箭头延伸方向逐渐增大,y值随着Y轴的箭头延伸方向逐渐减小。
本发明的绘制几何图形的方法,主要是利用DirectX中绘制三角形的函数接口来实现对几何图形的绘制。参见图1所示,是本发明的绘制几何图形的方法的流程示意图,如图所示,本发明的绘制几何图形的方法包括步骤:
步骤S101:预先设定预设图形类型、线宽;
步骤S102:识别鼠标点击的开始点、结束点;
步骤S103:根据所述预设图形类型、线宽、开始点位置坐标、结束点位置坐标,以一条线段由两个三角形组成为基础,即将一条线段由共用同一条边的两个三角形组成的矩形来进行表示,两个三角形的其中一边的长度与线宽等长,计算确定出组成所述预设图形类型的各三角形;
步骤S104:采用DirectX中的绘制三角形的函数接口对各三角形进行绘制。
根据本发明的绘制几何图形的方法,其是以一条线段由两个三角形组成为基础,将要绘制的预设图形类型用三角形来进行表示,并使用DirectX中的绘制三角形的函数接口对这些三角形进行绘制,而DirectX对Windows的支持性强、使用简单、支持硬件加速功能,尤其是能够充分利用显卡的功能,因此,通过将几何图形转换为用三角形表示并使用DirectX的三角形函数接口来实现绘制,可以有效提高绘制二维几何图形的效率,提高用户的使用体验。
根据如上所述,在采用本发明方法绘制二维几何图形时,需要将该几何图形转换为用三角形来表示,以下就其中几种二维几何图形为例,对实现该二维几何图形的绘制过程进行详细阐述。
参见图2所示,是二维几何图形为直线时,依据本发明的绘制几何图形的方法绘制直线时的流程示意图,如图所示,其具体包括步骤:
步骤S201:预先设定线宽、设定预设图形类型为直线;
步骤S202:识别鼠标点击的开始点、结束点;
步骤S203:确定由开始点、结束点确定的连线,并将开始点、结束点各沿与该连线相垂直的两个方向各延伸1/2线宽的距离,从而得到四个坐标点;
步骤S204:根据上述四个坐标点确定出两个三角形;
步骤S205:采用DirectX中的绘制三角形的函数接口绘制这两个三角形。
依据上述本发明的对直线进行绘制的方法,将一个直线由两个三角形来表示,且这两个三角形的其中一边的长度与线宽等长,因此,既能满足线宽设定的要求,同时划分出来的三角形可以采用DirectX中的绘制三角形的函数接口进行绘制,提高绘制直线的效率。
如图3所示,是依据上述绘制直线的方法绘制直线时一个具体示例的图形示例图。记录鼠标在屏幕上点击的开始点sp(x,y)、结束点ep(x,y),确定直线的中心线,也就是开始点sp与点ep的连线,然后将sp、ep各沿与该连线相垂直的方向各延长1/2线宽的距离,得到四个新的坐标点p1、p2、p3、p4,坐标点p1、p2、p3、p4的位置坐标可以通过下述方式进行计算:
如果sp.x=ep.x,sp.y≠ep.y,则说明点sp与点ep位于同一条竖直直线上,因此,则有:p1(x,y)=(sp.x-线宽/2,sp,y)、p2(x,y)=(sp.x+线宽/2,sp.y)、p3(x,y)=(ep.x-线宽/2,ep.y)、p4(x,y)=(ep.x+线宽/2,ep.y)
如果sp.x≠ep.x,sp.y=ep.y,则说明点sp与点ep位于同一条水平直线上,因此有:p1(x,y)=(sp.x,sp,y-线宽/2)、p2(x,y)=(sp.x,sp.y+线宽/2)、p3(x,y)=(ep.x,ep.y-线宽/2)、p4(x,y)=(ep.x,ep.y+线宽/2)。
如果sp.x≠ep.x,且sp.y≠ep.y,则说明点sp与点ep不在任何一条与坐标轴相平行的直线上,此时可采用下述的方式进行计算:
参见图3所示,可以得到p6的坐标为p6(x,y)=(ep.x,sp.y),因此根据点sp、ep、p6可以得到线段spp6、p6ep的长度,同时根据点sp、ep的坐标得到线段spep的长度,从而可以求得角p6spep的角度,即sin∠p6spep=p6ep/spep,从而得到角p2spp7为∠p2spp7=90°-∠p6spep,因此有spp7=cos∠p2spp7*p2sp,spp7=cos∠p2spp7*p2sp,从而得到p2(x,y)=p2(sp.x+spp7,sp.y-p2p7);
同理可以求得坐标点p1、p3、p4的位置坐标;
依据这四个坐标点,可以得到两个三角形p1p2p4、以及p2p4p3,由于这两个三角形的各顶点的位置坐标已知,因此可以调用DirectX中的绘制三角形的函数接口对这两个三角形进行图形绘制。
在直线绘制成功后,在某些应用条件下,可能需要对直线进行移动,对直线的移动就是改变构成直线的这两个三角形的顶点坐标的值,对直线的移动过程具体可以是:
接收到移动指令后,识别鼠标点击的移动开始点、移动结束点,并根据移动开始点、移动结束点确定横向移动距离、纵向移动距离,然后根据横向移动距离、移动距离计算上述坐标点p1、p2、p3、p4移动之后的位置坐标,从而确定出上述两个三角形移动之后的位置坐标,并采用DirectX中的绘制三角形的函数接口对该些移动之后的各三角形重新绘制。
此外,在某些应用条件下,还可能需要对直线进行旋转操作,对直线的旋转操作也是改变构成直线的这两个三角形的顶点坐标的值,进行旋转时,在接收到旋转指令之后,对于直线来说,可以是选用直线的其中一个端点作为旋转中心点,当然也可以是自由选择其他的旋转中心点,然后接收鼠标点击的旋转开始点、旋转结束点,然后结合旋转中心点、旋转开始点、旋转结束点计算出各三角形的各坐标点旋转之后的位置坐标,并对旋转之后得到的两个三角形重新进行绘制。或者也可以是,在接收到旋转指令后,是结合旋转中心点、旋转开始点、旋转结束点计算出上述开始点sp、结束点ep旋转之后的位置坐标,然后依据旋转之后的位置坐标采用上述确定直线的方式重新进行计算,并对重新得到的直线的两个三角形重新进行绘制。
参见图4所示,是根据本发明的绘制几何图形的方法绘制折线时的流程示意图,其具体包括步骤:
步骤S301:预先设定线宽、设定预设图形类型为折线;
步骤S302:识别鼠标点击过程中的各点击点;
步骤S303:确定各相邻的两个点击点确定的连线,并将各点击点沿与其所在连线相垂直的两个方向各延伸1/2线宽的距离,从而分别得到各连线对应的四个坐标点;
步骤S304:根据各连线对应的四个坐标点分别确定出各连线对应的两个三角形;
步骤S305:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
在实现折线的绘制时,如果任意相邻的三个点击点不位于同一条直线上,由于每一段连线都是由两个三角形来进行表示,在两段连线相接的地方可能出现缺口,从而导致绘图线条的不平滑,有鉴于此,在上述步骤S304中,在确定出各连线分别对应的两个三角形的同时,还可以确定出各连线相互连接处由于缺口而出现的接口三角形,并在步骤S305中同时实现对该接口三角形的绘制,从而保证绘图线条的平滑性。
参见图5所示,是依据上述绘制折线的方法绘制折线时一个具体示例的图形示例图,折线是由一段段的直线线段组成,组成折线的各线段的实现方式可与上述直线的实现方式相同,以下以三个相邻的三个点击点进行说明。
记录鼠标点击的各点击点,如图5所示,假设其中三个相近的点击点记为sp1、sp2、ep,根据上述求直线的各三角形的方法可以求出图中连线sp1sp2对应的四个坐标点的坐标点p1、p2、p3、p4以及连线sp2ep对应的四个坐标点p5、p6、p7、p8的位置坐标,从而确定出四个三角形△p1p4p3、△p1p4p2、△p5p7p8、△p5p8p6,确定出折线的两个连接线段。
观察图5可以得知,在得到上述四个三角形之后,由于三个点击点不在同一条直线上,而是有一定的夹角,因此,在确定出这两个线段的各自的三角形之后,会出现一个缺口,导致绘制出来的线条会有缺口、不平滑,因此,在确定上述四个三角形时,还可以同时确定出该接口三角形△sp2p3p6,由于sp2、p3、p6均已得知,因此,该接口三角形△sp2p3p6很容易确定。
在确定出这些三角形之后,就可以采用DirectX中的绘制三角形的图形接口对上述五个三角形进行绘制,从而实现折线sp1sp2ep的绘制。在有多个点击点构成折线的情况下,具体实现方式可与上述相同,在此不予赘述
参见图6所示,是依据本发明的绘制几何图形的方法绘制双水平直线时的流程示意图,其包括步骤:
步骤S401:预先设定线宽、设定预设图形类型为双水平直线;
步骤S402:识别鼠标点击的开始点、结束点;
步骤S403:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框;
步骤S404:将矩形框的上边线向下延伸1个线宽的距离、下边线向上延伸1个线宽的距离,获得上水平直线的四个坐标点、下水平直线的四个坐标点;
步骤S405:根据上水平直线的四个坐标点、下水平直线的四个坐标点分别确定出上水平直线的两个三角形、下水平直线的两个三角形;
步骤S406:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
在上述步骤S405中,确定出上水平直线的两个三角形、下水平直线的两个三角形的方式与上述确定直线的方式相同,在此不予赘述。
参见图7所示,是依据上述本发明的绘制双水平直线的方法绘制双水平直线时一个具体示例的图形示例图。
记录鼠标点击的开始点、结束点之后,如图7所示,将开始点记为sp,将结束点记为ep,根据点sp、ep可以得到如图7中所示的矩形框spp2epp6,由于sp、ep的位置坐标已知,因此有p2(x,y)=p2(ep.x,sp.y),p6(x,y)=p6(sp.x,ep.y),将矩形框的上边线向下延伸一个线宽的距离,得到p1(x,y)=p1(sp.x,sp.y+线宽),p3(x,y)=p3(ep.x,sp.y+线宽),将矩形框的下边线向上延伸一个线宽的距离,得到p4(x,y)=p4(sp.x,ep.y-线宽),p5(x,y)=p5(ep.x,ep.y-线宽),从而可以确定出上水平直线的四个点sp、p2、p3、p1以及下水平直线的四个点p4、p5、ep、p6,并根据这些点确定出相应的三角形△p1spp2、△p1p2p3、△p6p4p5、△p6epp5,然后就可以采用DirectX中的绘制三角形的接口函数实现对这些三角形的绘制。
在实际的应用过程中,很可能还需要实现对该双水平直线的移动过程,对双水平直线的移动过程可以与对直线的移动过程相同,在此不予赘述。
此外,在实际应用过程中,还可能需要实现对双水平直线的旋转,对双水平直线的旋转也可以是采用与对直线的旋转相同的方式,参见图8所示,是对双水平直线进行旋转时的图形示例图。在接收到旋转指令后,根据已知的开始点sp、结束点ep的坐标求出矩形框的中心点O的位置坐标,即sp与ep的中点O,从而有O(x,y)=O((sp.x+ep.x)/2,(sp.y+ep.y)/2)。
识别鼠标点击的旋转开始点、旋转结束点,并将其分别记为A、A′,根据点O、A和A′可以求得∠AOA′,从而旋转后的各点的新坐标可以根据∠AOA′求得,记每个点旋转之前的坐标为(x,y),旋转之后的新坐标(X′,Y′),则有:
如果是逆时针旋转,则有:X′=x*cos(∠AOA′)+y*sin(∠AOA′)),Y′=y*cos(∠AOA′)-x*sin(∠AOA′));如果是顺时针旋转,则有X′=x*cos(∠AOA′)-y*sin(∠AOA′)),Y′=y*cos(∠AOA)+x*sin(∠AOA′)),
具体的变换计算方式在此不予多加叙述,在计算得出旋转后的各三角形的新的坐标值之后,根据该新计算出来的各三角形的坐标值重新进行绘制。
参见图9所示,是依据本发明的绘制几何图形的方法绘制双垂直直线时的流程示意图,其包括步骤:
步骤S501:预先设定线宽、设定预设图形类型为双垂直直线;
步骤S502:识别鼠标点击的开始点、结束点;
步骤S503:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框;
步骤S504:将矩形框的左边线向右延伸1个线宽的距离、右边线向左延伸1个线宽的距离,获得左垂直直线的四个坐标点、右垂直直线的四个坐标点;
步骤S505:根据左垂直直线的四个坐标点、右垂直直线的四个坐标点分别确定出左垂直直线的两个三角形、右垂直直线的两个三角形;
步骤S506:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
在上述步骤S505中,确定出左垂直直线的两个三角形、右垂直直线的两个三角形的方式与上述确定直线的方式相同,在此不予赘述。
参见图10所示,是依据上述本发明的绘制双垂直直线的方法绘制双垂直直线时一个具体示例的图形示例图。
将鼠标点击的开始点记为sp、结束点记为ep,根据点sp、ep可以得到如图10中所示的矩形框spp2epp5,由于sp、ep的位置坐标已知,从而可以得到p2(x,y)=p2(sp.x,ep.y),p5(x,y)=p5(ep.x,sp.y),将矩形框的左边线向右延伸一个线宽的距离,得到p1(x,y)=p1(sp.x+线宽,sp.y),p3(x,y)=p3(sp.x+线宽,ep.y),将矩形框的右边线向左延伸一个线宽的距离,得到p4(x,y)=p4(ep.x-线宽,sp.y),p6(x,y)=p6(ep.x-线宽,ep.y),从而可以确定出左垂直直线的四个点sp、p2、p3、p1以及右垂直直线的四个点p4、p5、ep、p6,并根据这些点确定出相应的三角形△p1spp3、△spp2p3、△epp4p5、△p6epp4,然后就可以采用DirectX中的绘制三角形的接口函数实现对这些三角形的绘制。
在实际的应用过程中,很可能还需要实现对该双垂直直线的移动、旋转过程,对双垂直直线的移动、旋转过程可以参见上述对双水平直线的移动、旋转过程,在此不予赘述。
参见图11所示,是依据本发明的绘制几何图形的方法绘制矩形时的流程示意图,其包括步骤:
步骤S601:预先设定线宽、设定预设图形类型为矩形;
步骤S602:识别鼠标点击的开始点、结束点;
步骤S603:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框;
步骤S604:根据上述矩形框以及线宽确定矩形的四条边线的各坐标点;
步骤S605:根据各边线的各坐标点分别确定出各边线的两个三角形;
步骤S606:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
在上述步骤S605中,确定出边线的两个三角形的方式与上述确定直线的方式相同,在此不予赘述。
依据上述本发明的绘制矩形的方法,图12所示是依据本发明方法绘制矩形时一个具体示例的图形示例图。记鼠标点击的开始点为sp、结束点为ep,从而可以得到矩形框spp4epp7,根据该矩形框的最上边线以及线宽可以确定出直线1,即spp2p3p4,同理可以得到直线p2p4p6p5、epp6p9p8、p7p8p10p1,需要注意的是,本示例中是以在构建上边线时,线宽长度的位置在最上边线的右边进行说明,根据实际需要,也可以是在最上边线的左边,在此不予多加叙述。由于sp、ep的位置坐标已知,从而可以计算得到:p1(x,y)=p1(sp.x,sp.y+线宽)、p2(x,y)=p2(ep.x-线宽,sp.y)、p3(x,y)=p3(ep.x-线宽,sp.y+线宽)、p4(x,y)=p4(ep.x,sp.y)、p5(x,y)=p5(ep.x-线宽,ep.y-线宽)、p6(x,y)=p6(ep.x,sp.y-线宽)、p7(x,y)=p7(sp.x,ep.y)、p8(x,y)=p8(sp.x+线宽,ep.y)、p9(x,y)=p9(sp.x+线宽,ep.y-线宽)、p10(x,y)=p10(sp.x+线宽,sp.y+线宽),并据此可以得到各三角形,即:△spp1p3、△spp2p3、△p2p4p6、△p2p5p6、△epp6p9、△epp8p9、△p8p10p1、△p8p7p1,然后即可以采用DirectX中的绘制三角形的接口实现对这些三角形的绘制。
参见图13所示,是依据本发明的绘制几何图形的方法绘制菱形时的流程示意图,其包括步骤:
步骤S701:预先设定线宽、设定预设图形类型为菱形;
步骤S702:识别鼠标点击的开始点、结束点;
步骤S703:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框;
步骤S704:计算确定该矩形框的各边线的中点坐标点;
步骤S705:对各相邻的中点坐标点确定的连线,将该中点坐标点沿与该连线相垂直的方向各延长1/2线宽的距离,分别得到各连线的四个坐标点;
步骤S706:分别确定出由各连线的四个坐标点确定的两个三角形;
步骤S707:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
在上述步骤S706中,确定出各连线的两个三角形的方式与上述确定直线的方式相同,在此不予赘述。
其中,在实现菱形的绘制时,由于每一段连线都是由两个三角形来进行表示,因此,在两段连线相接的地方,就可能出现缺口,从而导致绘图线条的不平滑,有鉴于此,在上述步骤S706中,在确定出各连线分别对应的两个三角形的同时,还可以确定出各连线相互连接处由于缺口而出现的接口三角形,并在步骤S707中同时实现对该接口三角形的绘制,以保证绘图线条的平滑性。
如图14所示,是依据本发明的绘制菱形的方法绘制菱形时一个具体示例的图形示例图。如图14所示,记鼠标点击的开始点为sp、结束点为ep,根据点sp、ep可以确定一个矩形框,取矩形的各边线的中点坐标点,记为p1、p2、p3、p4,分别对连线p1p2、p2p3、p3p4、p4p1采用与上述绘制直线相同的方法进行绘制,从而最终可以得出各三角形,并实现对菱形的绘制。
对菱形的移动、旋转的方式可以与上述对直线或者双水平直线的移动、旋转方式相同,在此不予赘述。
参见图15所示,是依据本发明的绘制几何图形的方法绘制圆形时的流程示意图,其具体包括步骤:
步骤S801:预先设定线宽、设定预设图形类型为圆形;
步骤S802:识别鼠标点击的开始点、结束点;
步骤S803:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框,并将该矩形框调整为正方形框,且正方形框的边长与矩形框的较长一边的长度等长;
步骤S804:计算确定该正方形框的各边线的中点坐标点、以及该正方形框的中心点;
步骤S805:以中心点为圆心、任意一个中点坐标点为起点、与该中点坐标点相邻的另一中点坐标点为终点,以“1/2边长-线宽”为半径做第一段弧,以1/2边长为半径做第二段弧;
步骤S806:根据预设等份数,计算确定出填充在上述第一段弧、第二段弧之间的各三角形;
步骤S807:对第一段弧、第二段弧之间的各三角形以中心点为基准点做横向映像、纵向映像、对角映像;
步骤S808:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
其中,上述预设等份数,可以根据具体应用需要自由设定,一般情况下,对于1/4圆来说,这里的预设等份数可以是20至60,即将1/4个圆划分为20~60等份。当然,在具体设定时,也可以是设定为将整个圆划分为多少等份,在应用时,如果是针对1/4圆进行计算,可以将该等份除以4即可。
图16是依据本发明方法绘制圆形时一个具体示例的图形示例图,记鼠标点击的开始点为sp、结束点为ep,根据点sp、ep可以确定一个矩形框,并将该矩形框调整为正方形框,调整时,是将正方形框的边长调整至与矩形框的较长的一边等长,在具体实现时,也可以是直接根据点sp、ep确定出正方形框,因此,在下述说明中,仍以将正方形框的其中两个对角顶点记为sp、ep进行说明。
如图16所示,取正方形框的各边的中点坐标点,分别记为p1、p2、p3、p4,根据点sp、ep可以确定出点p1、p2、p3、p4,同时可以确定出正方形的中心点O1。
然后以O1为圆心、p4为起点、p1为终点、(p4p2)/2-线宽为半径作第一段弧L1,并以O1为圆心、p4为起点、p1为终点、(p4p2)/2为半径作第二段弧L2,随后的构建三角形的顶点坐标的过程在弧L1与L2之间进行,因此所构造的各三角形的顶点也不会超过L1与L2之间的范围。
假设设定的预设等份数是将1/4分为30等份,则可知每相邻两个等分线之间所构成的角的度数为90°/30=3°,可以采用数学计算方式求得各三角形的顶点坐标,具体的求取方式在此不予多加叙述。
参见图17所示,是依据本发明的绘制几何图形的方法绘制等腰三角形时的流程示意图,其包括步骤:
步骤S901:预先设定线宽、设定预设图形类型为等腰三角形;
步骤S902:识别鼠标点击的开始点、结束点;
步骤S903:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框;
步骤S904:计算确定该矩形框的上边线的中点坐标点;
步骤S905:以上述中点坐标点、矩形框的左下角点、矩形框的右下角点为三角形的三个顶点,确定出组成该等边三角形的各边的四个坐标点;
步骤S906:分别确定出由各连线的四个坐标点确定的两个三角形;
步骤S907:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
其中,在实现等腰三角形的绘制时,在三角形的两条边相互连接的地方,由于每一条边都是由两个三角形来表示,因而可能出现缺口,导致绘图线条的不平滑,有鉴于此,在上述步骤S906中,在确定出各连线分别对应的两个三角形的同时,还可以确定出各连线相互连接处由于缺口而出现的接口三角形,并在步骤S907中同时实现对该接口三角形的绘制,以保证绘图线条的平滑性。
图18是依据本发明的绘制等腰三角形的方法绘制等腰三角形时一个具体示例的图形示例图。如图18所示,记鼠标点击的开始点为sp、结束点为ep,根据点sp、ep可以确定一个矩形框,取矩形的上边线的中点坐标点,记为p1,并记矩形框的左下角坐标点为p3,如图中所示,矩形框的右下角的即为ep,分别对连线p1p3、epp3、epp1采用与上述绘制直线相同的方法进行绘制,从而最终可以得出各三角形,同时得出各接口三角形,实现对等腰三角形的绘制。
对等腰三角形的移动、旋转的方式可以与上述对直线或者双水平直线的移动、旋转方式相同,在此不予赘述。
参见图19所示,是依据本发明的绘制几何图形的方法绘制直角三角形时的流程示意图,其包括步骤:
步骤S1001:预先设定线宽、设定预设图形类型为直角三角形;
步骤S1002:识别鼠标点击的开始点、结束点;
步骤S1003:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框;
步骤S1004:以该矩形框的左上角点、左下角点、右下角点为三角形的三个顶点,确定出组成直角三角形的各边的四个坐标点;
步骤S1005:分别确定出由各连线的四个坐标点确定的两个三角形;
步骤S1006:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
其中,在实现直角三角形的绘制时,在三角形的两条边相互连接的地方,由于每一条边都是由两个三角形来表示,因而可能出现缺口,导致绘图线条的不平滑,有鉴于此,在上述步骤S 1005中,在确定出各连线分别对应的两个三角形的同时,还可以确定出各连线相互连接处由于缺口而出现的接口三角形,并在步骤S1006中同时实现对该接口三角形的绘制,以保证绘图线条的平滑性。
图20是依据本发明的绘制直角三角形的方法绘制直角三角形时一个具体示例的图形示例图。如图20所示,记鼠标点击的开始点为sp、结束点为ep,根据点sp、ep可以确定一个矩形框,记矩形框的左上角点为sp、左下角点为p5、右下角点为ep,分别对连线spp5、spep、p5ep采用与上述绘制直线相同的方法进行绘制,从而最终可以得出各三角形,同时得出各接口三角形,实现对直角三角形的绘制。
对直角三角形的移动、旋转的方式可以与上述对直线或者双水平直线的移动、旋转方式相同,在此不予赘述。
参见图21所示,是依据本发明的绘制几何图形的方法绘制五角形的流程示意图,其包括步骤:
步骤S1101:预先设定线宽、设定预设图形类型为五角形;
步骤S1102:识别鼠标点击的开始点、结束点;
步骤S1103:根据开始点、结束点确定出以开始点、结束点为对角顶点的矩形框,并将该矩形框的各边调整至与较长一边的长度等长,即将矩形框调整为一个正方形框;
步骤S1104:计算确定该矩形框的中心点以及内接圆,并以中心点为圆心将该内接圆平均分成为五等份,得到五个等份顶点;
步骤S1105:确定任意两个不相邻的两个等份顶点之间的连线,各连线相交确定出五个相交点;
步骤S1106:分别以各等份顶点与其相邻的相交点之间的连接线为边线,计算确定出组成各边线的四个坐标点;
步骤S1107:分别确定出由各边线的四个坐标点确定的各边的两个三角形;
步骤S1108:采用DirectX中的绘制三角形的函数接口绘制这些三角形。
其中,在实现五角形的绘制时,在两条边线相互连接的地方,由于每一条边线都是由两个三角形来进行表示,因而可能出现缺口,从而导致绘图线条的不平滑,有鉴于此,在上述步骤S1107中,在确定出各连线分别对应的两个三角形的同时,还可以确定出各连线相互连接处由于缺口而出现的接口三角形,并在步骤S1108中同时实现对该接口三角形的绘制,以保证绘图线条的平滑性。
如图22所示,是依据本发明的绘制五角形的方法绘制五角形时一个具体示例的图形示例图。如图22所示,记鼠标点击的开始点为sp、结束点为ep,根据点sp、ep可以确定一个矩形框,并将该矩形框调整为正方形框,调整时,是将正方形框的边长调整至与矩形框的较长的一边等长,在具体实现时,也可以是直接根据点sp、ep确定出正方形框,因此,在下述说明中,仍然以将正方形框的其中两个对角顶点记为sp、ep进行说明。
根据点sp、ep可以确定一个矩形框,记矩形框的左上角点为sp、右下角点为ep,根据该正方形框,可以得到内接于该正方形框内的一个内接圆,以正方形框的中心点O为圆心将该内接圆平均分成为五等份,得到五个等份顶点,记为p1、p2、p3、p4、p5,然后确定这五个等份顶点中任意两个不相邻的两个等份顶点之间的连线,各连线相交从而可以得到五个相交点,分别记为p6、p7、p8、p9、p10,各等份顶点、相交点的位置坐标的具体确定方式可以采用数学方式进行确定,在此不予多加叙述,然后对各等份顶点与其相邻的相交点所形成的连线采用与上述绘制直线相同的方法进行绘制,包括连线p1p6、p6p2、p2p7、p7p3、p3p8、p8p4、p4p9、p9p5、p5p10、p10p1,从而最终可以得出各三角形,同时得出各接口三角形,并实现对五角形的绘制。
对五角形的移动、旋转的方式可以与上述对双水平直线的移动、旋转方式相同,在此不予赘述。
在上述各实施例的说明中,在实现连线或者直线的绘制时,均是以将各点击点沿与连线相垂直的方向延伸进行说明,这是由于沿垂直方向延伸时与连线之间的角度为90°,计算时最为简便,根据应用需要,也可以是沿与连线呈某个特定角度的方向进行延伸,只是这会使计算量变得更为复杂,不仅延伸距离需要根据线宽以及设定的特定角度进行计算,同时使直线呈现某个斜角,使绘制线条不平滑,影响绘制效果,当然,也可以是对直线出现的斜角进行相关的处理,例如将斜角的三角行也进行绘制等等,在此不予赘述。
此外,在上述各说明中,以其中几种几何图形为例对本发明的绘制几何图形的方法进行了详细说明,在采用其他类型的几何图形的情况下,可以参考上述的方式进行,将几何图形的各边均由以线宽为其中一边的两个三角形来进行表示,在此不予多加赘述。
根据上述本发明的绘制几何图形的方法,本发明还提供一种绘制几何图形的装置,其包括有:
参数预设模块1201,用于预先设定预设图形类型、线宽;
几何图形创建模块1202,用于识别鼠标点击的开始点、结束点,并根据所述预设图形类型、线宽,以一条线段由两个三角形组成为基础,确定计算出组成所述预设图形类型的各三角形;
图形绘制模块1203,用于采用DirectX中的绘制三角形的函数接口对所述预设图形类型的各三角形进行绘制。
其中,由于所设定的预设图形类型的不同,上述几何图形创建模块可能包括有不同的不同处理单元,包括但不限于下述的一种以上:
直线创建单元,用于在所述预设图形类型为直线时,识别鼠标点击的开始点、结束点,并线宽、开始点、结束点,确定计算出组成直线的各三角形;
折线创建单元,用于在所述预设图形类型为折线时,识别鼠标点击的各点击点,并根据线宽、各点击点,确定计算出组成折线的各三角形;
双水平直线创建单元,用于在所述预设图形类型为双水平直线时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成双水平直线的各三角形;
双垂直直线创建单元,用于在所述预设图形类型为双垂直直线时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成双垂直直线的各三角形;
矩形创建单元,用于在所述预设图形类型为矩形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成矩形的各三角形;
菱形创建单元,用于在所述预设图形类型为菱形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成菱形的各三角形;
平行四边形创建单元,用于在所述预设图形类型为平行四边形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成平行四边形的各三角形;
圆形创建单元,用于在所述预设图形类型为圆形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成圆形的各三角形;
等腰三角形创建单元,用于在所述预设图形类型为等腰三角形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成等腰三角形的各三角形;
直角三角形创建单元,用于在所述预设图形类型为直角三角形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成直角三角形的各三角形;
五角形创建单元,用于在所述预设图形类型为五角形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成五角形的各三角形。
上述直线、折线、双水平直线、双垂直直线、矩形、菱形、平行四边形、圆形、等腰三角形、直角三角形、五角形等的具体创建方式可以与上述本发明的绘制几何图形的方法中所述的相同,在此不予多加赘述。
该绘制几何图形的装置,还可以包括有:图形移动模块1204,用于在接收到移动指令时,识别鼠标点击的移动开始点、移动结束点,并根据移动开始点、移动结束点确定横向移动距离、纵向移动距离,然后根据横向移动距离、移动距离计算确定所述几何图形创建模块创建的各三角形移动之后的位置坐标。所确定的移动之后的各三角形然后通过图形绘制模块采用DirectX中的绘制三角形的函数接口重新绘制。
此外,该绘制几何图形的装置,还可以包括有:图形旋转模块1205,用于在接收到旋转指令时,识别鼠标点击的旋转开始点、旋转结束点,并根据旋转开始点、旋转结束点以及预设旋转中心点计算确定所述几何图形创建模块创建的各三角形旋转之后的位置坐标。所确定的旋转之后的各三角形然后通过图形绘制模块采用DirectX中的绘制三角形的函数接口重新进行绘制。
其中,经过图形移动模块1204移动之后各三角形,也可以在接收到旋转指令后,通过图形旋转模块1205进行旋转操作。经过图形旋转模块1205旋转之后的各三角形,也可以在接收到移动指令之后,通过图形移动模块1204进行移动操作,具体的各操作过程在此不予赘述。
其中,上述本发明对各几何图形的绘制,在具体实现时,可以是针对每一个几何图形创建一个图形基类,并给这个基类设计一些公共属性和函数接口,例如线宽等等,同时还可以是同时设置颜色、透明度等属性,应用时可以进行不同的选择,在具体绘制时,直接调用相应的几何图形对应的基类来实现即可,具体方式在此不予多加赘述。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (9)
1.一种绘制几何图形的方法,其特征在于,包括步骤:
预先设定预设图形类型、线宽;
识别鼠标点击的开始点、结束点;
根据所述预设图形类型、线宽、开始点位置坐标、结束点位置坐标,以一条线段由两个三角形组成为基础,计算确定出组成所述预设图形类型的各三角形;
采用DirectX中的绘制三角形的函数接口对所述各三角形进行绘制。
2.根据权利要求1所述的绘制几何图形的方法,其特征在于:
当所述预设图形类型为直线时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定由所述开始点、所述结束点组成的连线,并将所述开始点、所述结束点沿与所述连线相垂直的两个方向各延伸1/2线宽的距离,得到四个坐标点;根据所述四个坐标点确定出两个三角形;
当所述预设图形类型为折线时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定各相邻的两个鼠标点击点组成的连线,并将各点击点沿与该点击点所在连线相垂直的两个方向各延伸1/2线宽的距离,得到各连线的对应的四个坐标点;根据各连线对应的四个坐标点确定出各连线的两个三角形;
当所述预设图形类型为双水平直线时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框;将所述矩形框的上边线向下延伸1个线宽的距离、下边线向上延伸1个线宽的距离,获得上水平直线的四个坐标点、下水平直线的四个坐标点;根据所述上水平直线的四个坐标点确定出上水平直线的两个三角形,根据所述下水平直线的四个坐标点确定出下水平直线的两个三角形;
当所述预设图形类型为双垂直直线时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框;将所述矩形框的左边线向右延伸1个线宽的距离、右边线向左延伸1个线宽的距离,获得左水平直线的四个坐标点、右水平直线的四个坐标点;根据所述左水平直线的四个坐标点确定出左水平直线的两个三角形,根据所述左水平直线的四个坐标点确定出右水平直线的两个三角形;
当所述预设图形类型为矩形时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框;根据所述矩形框、所述线宽确定出矩形的四条边线的各自的四个坐标点;分别确定出该四条边线的各自的两个三角形;
当所述预设图形类型为菱形时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框;计算确定出该矩形框的各边线的中点坐标点;对各相连的中点坐标点之间的连线,将各中点坐标点沿与该中点坐标点所在连线相垂直的两个方向各延长1/2线宽的距离,分别得到各连线的各自的四个坐标点;根据各连线的各自的四个坐标点,分别确定出各连线对应的两个三角形;
当所述预设图形类型为等腰三角形时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框;计算确定该矩形框的上边线的中点坐标点;以所述中点坐标点、矩形框的左下角点、矩形框的右下角点为等腰三角形的三个顶点,确定出组成该等腰三角形的各边的四个顶点;分别确定出由各边的四个坐标点确定的两个三角形;
当所述预设图形类型为直角三角形时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定以所述开始点、所述结束点为对角顶点的矩形框;以该矩形框的左上角点、左下角点、右下角点为直角三角形的三个顶点,确定出组成该直角三角形的各边的四个顶点;分别确定出由各边的四个坐标点确定的两个三角形;
当所述预设图形类型为五角形时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框,并将该矩形框调整为各边与较长的一边等长的正方形框;计算确定该矩形框的中心点以及内接圆,并以该中心点为圆心将该内接圆平均分为五等份,得到五个等份顶点;根据任意两个等份顶点之间的连线确定出五个相交点;分别以各等份顶点与其相邻的相交点的连线为边线,计算确定出组成各边线对应的四个坐标点;分别根据各边线对应的四个坐标点确定的该边线对应的两个三角形;
当所述预设图形类型为圆形时,所述计算确定出组成所述预设图形类型的各三角形的过程具体包括:确定出以所述开始点、所述结束点为对角顶点的矩形框,并将该矩形框调整为各边与较长的一边等长的正方形框;计算确定该矩形框的各边线的中点坐标点、该矩形框的中心点;以该中心点为圆心、任意一个中点坐标点为起点、与该中点坐标点相邻的中点坐标点为中点做第一段弧和第二段弧,第一段弧的半径为1/2边长减去线宽后的值,第二段弧的半径为1/2边长;根据预设等份数确定出填充在第一段弧与第二段弧之间的各三角形;对所述填充在第一段弧与第二段弧之间的各三角形以所述中心点为基准点做横向映像、纵向映像、对角映像。
3.根据权利要求2所述的绘制几何图形的方法,其特征在于,所述预设等份数为20~60。
4.根据权利要求2所述的绘制几何图形的方法,其特征在于,当所述预设图形类型为折线、菱形、平行四边形、等腰三角形、直角三角形、或者五角形时,在分别确定出上述各三角形的同时,还确定出各连线或边或边线相连接处的接口三角形,并采用DirectX中的绘制三角形的函数接口对所述接口三角形进行绘制。
5.根据权利要求1至4任意一项所述的绘制几何图形的方法,其特征在于,当接收到移动指令时,还包括步骤:
识别移动开始点、移动结束点,并根据所述移动开始点、所述移动结束点确定横向移动距离、纵向移动距离;
根据所述横向移动距离、纵向移动距离计算确定出各所述三角形移动之后的各三角形;
采用DirectX中的绘制三角形的函数接口对所述移动之后的各三角形进行绘制。
6.根据权利要求1至4任意一项所述的绘制几何图形的方法,其特征在于,当接收到旋转指令时,还包括步骤:
根据所述预设图形类型确定旋转中心点;
识别旋转开始点、旋转结束点,并根据所述旋转中心点、所述旋转开始点、所述旋转结束点确定旋转角度;
根据所述旋转角度计算确定出各所述三角形旋转之后的各三角形;
采用DirectX中的绘制三角形的函数接口对所述旋转之后的各三角形进行绘制。
7.一种绘制几何图形的装置,其特征在于,包括:
参数预设模块,用于预先设定预设图形类型、线宽;
几何图形创建模块,用于识别鼠标点击的开始点、结束点,并根据所述预设图形类型、线宽,以一条线段由两个三角形组成为基础,确定计算出组成所述预设图形类型的各三角形;
图形绘制模块,用于采用DirectX中的绘制三角形的函数接口对所述预设图形类型的各三角形进行绘制。
8.根据权利要求7所述的绘制几何图形的装置,其特征在于:
还包括:图形移动模块,用于在接收到移动指令时,识别鼠标点击的移动开始点、移动结束点,并根据移动开始点、移动结束点确定横向移动距离、纵向移动距离,然后根据横向移动距离、移动距离计算确定所述几何图形创建模块或者图形旋转模块创建的各三角形移动之后的位置坐标;所述图形绘制模块,还用于采用DirectX中的绘制三角形的函数接口对所述图形移动模块确定的移动之后的各三角形进行绘制。
和/或
还包括:图形旋转模块,用于在接收到旋转指令时,识别鼠标点击的旋转开始点、旋转结束点,并根据旋转开始点、旋转结束点以及预设旋转中心计算确定所述几何图形创建模块或者所述图形移动模块创建的各三角形旋转之后的位置坐标;所述图形绘制模块,还用于采用DirectX中的绘制三角形的函数接口对所述图形旋转单元确定的旋转之后的各三角形进行绘制。
9.根据权利要求7或8所述的绘制几何图形的装置,其特征在于,所述几何图形创建单元包括一种以上的下述单元:
直线创建单元,用于在所述预设图形类型为直线时,识别鼠标点击的开始点、结束点,并线宽、开始点、结束点,确定计算出组成直线的各三角形;
折线创建单元,用于在所述预设图形类型为折线时,识别鼠标点击的各点击点,并根据线宽、各点击点,确定计算出组成折线的各三角形;
双水平直线创建单元,用于在所述预设图形类型为双水平直线时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成双水平直线的各三角形;
双垂直直线创建单元,用于在所述预设图形类型为双垂直直线时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成双垂直直线的各三角形;
矩形创建单元,用于在所述预设图形类型为矩形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成矩形的各三角形;
菱形创建单元,用于在所述预设图形类型为菱形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成菱形的各三角形;
平行四边形创建单元,用于在所述预设图形类型为平行四边形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成平行四边形的各三角形;
圆形创建单元,用于在所述预设图形类型为圆形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成圆形的各三角形;
等腰三角形创建单元,用于在所述预设图形类型为等腰三角形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成等腰三角形的各三角形;
直角三角形创建单元,用于在所述预设图形类型为直角三角形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成直角三角形的各三角形;
五角形创建单元,用于在所述预设图形类型为五角形时,识别鼠标点击的开始点、结束点,并根据线宽、开始点、结束点,确定计算出组成五角形的各三角形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910194248A CN101719057A (zh) | 2009-11-27 | 2009-11-27 | 绘制几何图形的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910194248A CN101719057A (zh) | 2009-11-27 | 2009-11-27 | 绘制几何图形的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101719057A true CN101719057A (zh) | 2010-06-02 |
Family
ID=42433636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910194248A Pending CN101719057A (zh) | 2009-11-27 | 2009-11-27 | 绘制几何图形的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101719057A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034254A (zh) * | 2010-09-29 | 2011-04-27 | 广东威创视讯科技股份有限公司 | 一种识别几何图形的方法 |
CN102411790A (zh) * | 2011-07-21 | 2012-04-11 | 福州锐达数码科技有限公司 | 一种鼠标轨迹识别并自动生成图形的方法 |
CN102486768A (zh) * | 2010-12-02 | 2012-06-06 | 北大方正集团有限公司 | 用于调整化学键图形的角度的方法和装置 |
CN103544720A (zh) * | 2013-10-29 | 2014-01-29 | 无锡北邮感知技术产业研究院有限公司 | 在平面房间图上快速绘制门窗的方法 |
CN104391681A (zh) * | 2014-03-21 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 基于移动终端的图片擦除实现方法及装置 |
CN104715452A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN105335444A (zh) * | 2014-08-13 | 2016-02-17 | 北京大学 | 一种图形的构建方法及匹配方法以及系统 |
CN105718233A (zh) * | 2016-01-15 | 2016-06-29 | 南京航空航天大学 | 一种平显多线宽三角形无失真的绘制方法 |
CN106033409A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106033352A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106384370A (zh) * | 2015-07-31 | 2017-02-08 | 高德软件有限公司 | 一种折线绘制方法及装置 |
CN103955965B (zh) * | 2014-04-30 | 2017-02-15 | 广东威创视讯科技股份有限公司 | 基于OpenGL ES非固定管线矢量点显示方法和装置 |
CN107239187A (zh) * | 2017-05-04 | 2017-10-10 | 广州视源电子科技股份有限公司 | 一种立体图形显示的方法、装置及设备 |
CN108648109A (zh) * | 2018-04-11 | 2018-10-12 | 泛东教育科技(大连)有限公司 | 一种实现多种功能的教学技术数学工具系统与方法 |
CN109146997A (zh) * | 2018-08-15 | 2019-01-04 | 广州盖特软件有限公司 | 基于web的电脑出格设计三点弧绘制方法 |
CN109388464A (zh) * | 2018-09-28 | 2019-02-26 | 广州视源电子科技股份有限公司 | 元素控制方法及装置 |
CN111583361A (zh) * | 2020-06-04 | 2020-08-25 | 长沙景嘉微电子股份有限公司 | 圆环图形的生成方法、装置及计算机存储介质、电子设备 |
CN111583360A (zh) * | 2020-06-04 | 2020-08-25 | 长沙景嘉微电子股份有限公司 | 扇形图形的生成方法、装置及计算机存储介质、电子设备 |
CN112102435A (zh) * | 2020-09-24 | 2020-12-18 | 北京文香信息技术有限公司 | 一种几何图形绘制的方法、装置、设备及存储介质 |
CN112233202A (zh) * | 2019-07-15 | 2021-01-15 | 珠海金山办公软件有限公司 | 一种正多边形绘制方法、装置、电子设备及可读存储介质 |
CN112419453A (zh) * | 2020-11-19 | 2021-02-26 | 山东亚华电子股份有限公司 | 一种基于Android系统的手写方法及装置 |
CN112562036A (zh) * | 2020-12-10 | 2021-03-26 | 卡斯柯信号(成都)有限公司 | 一种直线多边形绘制组态系统道岔图符的方法 |
CN113449485A (zh) * | 2021-06-24 | 2021-09-28 | 深圳砺芯半导体有限责任公司 | 引线生成方法、装置、设备及存储介质 |
WO2024066949A1 (zh) * | 2022-09-29 | 2024-04-04 | 华为技术有限公司 | 一种绘制图形的方法和装置 |
-
2009
- 2009-11-27 CN CN200910194248A patent/CN101719057A/zh active Pending
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034254B (zh) * | 2010-09-29 | 2012-07-04 | 广东威创视讯科技股份有限公司 | 一种识别几何图形的方法 |
CN102034254A (zh) * | 2010-09-29 | 2011-04-27 | 广东威创视讯科技股份有限公司 | 一种识别几何图形的方法 |
CN102486768A (zh) * | 2010-12-02 | 2012-06-06 | 北大方正集团有限公司 | 用于调整化学键图形的角度的方法和装置 |
CN102486768B (zh) * | 2010-12-02 | 2014-10-29 | 北大方正集团有限公司 | 用于调整化学键图形的角度的方法和装置 |
CN102411790A (zh) * | 2011-07-21 | 2012-04-11 | 福州锐达数码科技有限公司 | 一种鼠标轨迹识别并自动生成图形的方法 |
CN103544720A (zh) * | 2013-10-29 | 2014-01-29 | 无锡北邮感知技术产业研究院有限公司 | 在平面房间图上快速绘制门窗的方法 |
CN103544720B (zh) * | 2013-10-29 | 2016-06-01 | 无锡北邮感知技术产业研究院有限公司 | 在平面房间图上快速绘制门窗的方法 |
CN104715452A (zh) * | 2013-12-12 | 2015-06-17 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN104715452B (zh) * | 2013-12-12 | 2017-12-15 | 鸿合科技有限公司 | 正棱柱平面显示方法及装置 |
CN104391681A (zh) * | 2014-03-21 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 基于移动终端的图片擦除实现方法及装置 |
CN104391681B (zh) * | 2014-03-21 | 2017-11-17 | 贵阳朗玛信息技术股份有限公司 | 基于移动终端的图片擦除实现方法及装置 |
CN103955965B (zh) * | 2014-04-30 | 2017-02-15 | 广东威创视讯科技股份有限公司 | 基于OpenGL ES非固定管线矢量点显示方法和装置 |
CN105335444A (zh) * | 2014-08-13 | 2016-02-17 | 北京大学 | 一种图形的构建方法及匹配方法以及系统 |
CN106033352A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106033409A (zh) * | 2015-03-20 | 2016-10-19 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106033409B (zh) * | 2015-03-20 | 2019-07-26 | 广州金山移动科技有限公司 | 一种顶点编辑方法及装置 |
CN106384370A (zh) * | 2015-07-31 | 2017-02-08 | 高德软件有限公司 | 一种折线绘制方法及装置 |
CN105718233A (zh) * | 2016-01-15 | 2016-06-29 | 南京航空航天大学 | 一种平显多线宽三角形无失真的绘制方法 |
CN105718233B (zh) * | 2016-01-15 | 2019-08-20 | 南京航空航天大学 | 一种平显多线宽三角形无失真的绘制方法 |
CN107239187A (zh) * | 2017-05-04 | 2017-10-10 | 广州视源电子科技股份有限公司 | 一种立体图形显示的方法、装置及设备 |
WO2018201664A1 (zh) * | 2017-05-04 | 2018-11-08 | 广州视源电子科技股份有限公司 | 一种立体图形显示的方法、装置及设备 |
CN107239187B (zh) * | 2017-05-04 | 2020-02-21 | 广州视源电子科技股份有限公司 | 一种立体图形显示的方法、装置及设备 |
CN108648109A (zh) * | 2018-04-11 | 2018-10-12 | 泛东教育科技(大连)有限公司 | 一种实现多种功能的教学技术数学工具系统与方法 |
CN108648109B (zh) * | 2018-04-11 | 2021-07-13 | 泛东教育科技(大连)有限公司 | 一种实现多种功能的教学技术数学工具系统与方法 |
CN109146997A (zh) * | 2018-08-15 | 2019-01-04 | 广州盖特软件有限公司 | 基于web的电脑出格设计三点弧绘制方法 |
CN109388464B (zh) * | 2018-09-28 | 2022-03-08 | 广州视源电子科技股份有限公司 | 元素控制方法及装置 |
CN109388464A (zh) * | 2018-09-28 | 2019-02-26 | 广州视源电子科技股份有限公司 | 元素控制方法及装置 |
CN112233202A (zh) * | 2019-07-15 | 2021-01-15 | 珠海金山办公软件有限公司 | 一种正多边形绘制方法、装置、电子设备及可读存储介质 |
CN112233202B (zh) * | 2019-07-15 | 2023-09-19 | 珠海金山办公软件有限公司 | 一种正多边形绘制方法、装置、电子设备及可读存储介质 |
CN111583361A (zh) * | 2020-06-04 | 2020-08-25 | 长沙景嘉微电子股份有限公司 | 圆环图形的生成方法、装置及计算机存储介质、电子设备 |
CN111583360A (zh) * | 2020-06-04 | 2020-08-25 | 长沙景嘉微电子股份有限公司 | 扇形图形的生成方法、装置及计算机存储介质、电子设备 |
CN112102435A (zh) * | 2020-09-24 | 2020-12-18 | 北京文香信息技术有限公司 | 一种几何图形绘制的方法、装置、设备及存储介质 |
CN112419453A (zh) * | 2020-11-19 | 2021-02-26 | 山东亚华电子股份有限公司 | 一种基于Android系统的手写方法及装置 |
CN112562036A (zh) * | 2020-12-10 | 2021-03-26 | 卡斯柯信号(成都)有限公司 | 一种直线多边形绘制组态系统道岔图符的方法 |
CN113449485A (zh) * | 2021-06-24 | 2021-09-28 | 深圳砺芯半导体有限责任公司 | 引线生成方法、装置、设备及存储介质 |
WO2024066949A1 (zh) * | 2022-09-29 | 2024-04-04 | 华为技术有限公司 | 一种绘制图形的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101719057A (zh) | 绘制几何图形的方法及装置 | |
Ammeraal et al. | Computer graphics for Java programmers | |
JP4883791B2 (ja) | 情報処理装置及び表示方法 | |
EP0780799A2 (en) | Cursor positioning method | |
US8872848B1 (en) | Rendering vector data as tiles | |
US9721363B2 (en) | Encoding polygon data for fast retrieval and rendering | |
CN103984720A (zh) | 基于OpenGL的瓦片地图创建方法及装置 | |
CN101789132A (zh) | 一种单视图多OpenGL视口的显示方法 | |
JP6472171B2 (ja) | 画像処理装置およびその方法 | |
KR102242138B1 (ko) | 디지털 트윈 기반의 배관 설계 모델링 장치 및 방법 | |
CN116484487B (zh) | 墙板配筋方法、装置、设备及存储介质 | |
CN103092892A (zh) | 一种矢量数据的处理方法及装置 | |
CN111431953B (zh) | 一种数据处理方法、终端、服务器及存储介质 | |
JP6297169B2 (ja) | 描画装置、および描画方法 | |
CN111226095B (zh) | 数字地图的动态重新样式化 | |
US20160328491A1 (en) | Precise object manipulation system and method | |
CN111951348A (zh) | 确定框选区域的方法、装置及电子设备 | |
KR101162703B1 (ko) | 3차원 가상 공간을 기반으로 원격 제어를 수행하기 위한 방법, 단말 장치 및 컴퓨터 판독 가능한 기록 매체 | |
EP3295291B1 (en) | Drawing object inferring system and method | |
JP2013020008A (ja) | 地図表示装置、地図表示方法、プログラム、およびデータ構造 | |
CN115131813B (zh) | 一种编号位置的确认方法、装置、电子设备及存储介质 | |
CN117078797B (zh) | 道路标识的渲染方法、装置、电子设备、存储介质及产品 | |
JP6684776B2 (ja) | 地図情報システム、端末装置、及びサーバ装置 | |
JP5418310B2 (ja) | 図形描画装置および方法 | |
Bezerianos et al. | Perceptual affordances of wall-sized displays for visualization applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100602 |