CN108198233A - 一种k线图的绘制方法、电子设备及存储介质 - Google Patents
一种k线图的绘制方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN108198233A CN108198233A CN201711495044.6A CN201711495044A CN108198233A CN 108198233 A CN108198233 A CN 108198233A CN 201711495044 A CN201711495044 A CN 201711495044A CN 108198233 A CN108198233 A CN 108198233A
- Authority
- CN
- China
- Prior art keywords
- line
- charts
- drafting
- price
- vertex data
- 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
Classifications
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Abstract
本发明公开了一种K线图的绘制方法,具体步骤包括:根据获得的K线数据计算K线顶点坐标;对所述顶点坐标进行纹理映射,得到顶点数据;将所述顶点数据进行光栅化处理;将光栅化后的顶点数据写入缓冲区;读取缓冲区的数据,根据缓冲区的数据绘制K线图。本发明还涉及一种电子设备与计算机可读存储介质。其有益效果在于:本发明对K线数据进行计算,得到K线顶点坐标,使K线图绘制时更加精确;对K线坐标进行纹理映射与光栅化处理,增加了K线图的清晰度;而且还使用了带有双缓冲技术的opengl绘制K线图,能大大加快绘图的速度,实现实时更新。
Description
技术领域
本发明涉及一种绘图方法,尤其涉及一种K线图的绘制方法、电子设备及存储介质。
背景技术
目前,股市上使用K线图表示股票涨跌变化状况,K线图能充分显示股价趋势的强弱、买卖双方力量平衡的变化,预测后市走向较准确,是各类传播媒介、电脑实时分析系统应用较多的技术分析手段。那么怎么画好K线图,让它更及时的显示出它的信息,这也是个至关重要的问题。
在2009年申请的公开号为CN102110301A的发明中公开了一种绘制K线图的方法及一种字幕机,用于在电视上实时更新K线图,该字幕机还能绘制K线图。现在比较常用的是绘图软件有GDI与GDI+,GDI(Graphics Device Interface)是图形设备接口,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。GDI编程方式很麻烦,GDI+是对GDI进行的优化。
但是,公开的发明中字幕机相对于现在绘图技术而言有很多不足,而GDI与GDI+绘制时也存在效率低下、准确度不够和不能实时刷新问题。
实用发明内容
为了克服现有技术的不足,本发明的目的在于提供一种K线图的绘制方法、电子设备及储存介质,以解决现有的K线图的绘制效率低下、准确度不够以及不能实时刷新的问题。
为解决上述技术问题,本发明实施例采用的一技术方案如下:
一种K线图的绘制方法,具体步骤包括:
根据获得的K线数据计算K线顶点坐标;
对所述顶点坐标进行纹理映射,得到顶点数据;
将所述顶点数据进行光栅化处理;
将光栅化后的顶点数据写入缓冲区;
读取缓冲区的数据,根据缓冲区的数据绘制K线图。
进一步地,所述K线数据包括最高价、开盘价、最低价和收盘价,所述K线数据至少一组。
进一步地,在计算所述K线顶点坐标前还包括:确定电子设备屏幕的画布大小;
所述根据获得的K线数据计算K线顶点坐标,具体为:根据电子设备屏幕的画布大小与K线数据计算K线顶点坐标。
进一步地,所述根据所述K线数据与电子设备屏幕的画布大小计算K线顶点坐标,具体为:
把所述K线数据按时间戳在X轴上排序,则根据公式SY=(Y2-Y1)/H1计算Y轴的缩放系数SY,其中,H1为屏幕画布高,Y1为K线数据在Y轴的最低点,Y2为K线数据在Y轴的最高点。
K线宽为W,两条K线间隔为X,K线在数组中的顺序为I,则K线数据的顶点坐标具体计算为:
(x1,y1)=(X*I,(hight-Y1)*SY);
(x2,y2)=(X*I+W*0.5,(open-Y1)*SY);
(x3,y3)=(X*I+W*0.5,(close-Y1)*SY);
(x4,y4)=(X*I,(low-Y1)*SY)。
其中,(x1,y1)为K线数据最高价的顶点坐标,high为最高价;(x2,y2)为K线数据开盘价的顶点坐标,open为开盘价;(x3,y3)为K线数据收盘价的顶点坐标,close为收盘价;(x4,y4)为K线数据最低价的顶点坐标,low为最低价。
进一步地,所述得到顶点数据后,还包括:将所述顶点数据拷贝填充到画布上的顶点坐标中。
进一步地,所述将所述顶点数据进行光栅化处理,将光栅化后的顶点数据写入缓冲区,具体为:将所述顶点数据转换为片元,所述片元写入缓冲区中。
进一步地,所述方法还包括:将所述片元在缓冲区内转换成像素,所述片元中的元素与像素一一对应。
进一步地,所述根据缓冲区的数据绘制K线图,具体为:根据所述像素通过opengl绘制K线图。
为解决上述技术问题,本发明实施例采用的另一技术方案如下:
一种电子设备,包括:处理器;
存储器;以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行上述K线图的绘制方法。
为解决上述技术问题,本发明实施例采用的另一技术方案如下:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述K线图的绘制方法。
相比现有技术,本发明的有益效果在于:
对K线数据进行计算,得到K线顶点坐标,使K线图绘制时更加精确;对K线坐标进行纹理映射与光栅化处理,增加了K线图的清晰度;而且还使用了带有双缓冲技术的opengl绘制K线图,能大大加快绘图的速度,实现实时更新。
附图说明
图1为本发明实施例K线图的绘制方法流程示意图;
图2为本发明实施例电子设备示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本实用发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
如图1所示一种K线图的绘制方法,具体步骤包括:
步骤S101:根据获得的K线数据计算K线顶点坐标。
具体的,获得的K线数据是目标理财产品的K线数据,K线数据包括最高价、开盘价、最低价和收盘价,K线数据至少一组。根据获得的K线数据计算K线顶点坐标,具体计算方法为:
确定电子设备屏幕的画布大小,根据画布大小与K线数据计算K线顶点坐标。
可选的,把K线数据按时间戳在X轴上排序,则根据公式SY=(Y2-Y1)/H1计算Y轴的缩放系数SY,其中,H1为屏幕画布高,Y1为K线数据在Y轴的最低点,Y2为K线数据在Y轴的最高点。
K线宽为W,两条K线间隔为X,K线在数组中的顺序为I,则K线数据的顶点坐标具体计算为:
(x1,y1)=(X*I,(hight-Y1)*SY);
(x2,y2)=(X*I+W*0.5,(open-Y1)*SY);
(x3,y3)=(X*I+W*0.5,(close-Y1)*SY);
(x4,y4)=(X*I,(low-Y1)*SY)。
其中,(x1,y1)为K线数据最高价的顶点坐标,high为最高价;(x2,y2)为K线数据开盘价的顶点坐标,open为开盘价;(x3,y3)为K线数据收盘价的顶点坐标,close为收盘价;(x4,y4)为K线数据最低价的顶点坐标,low为最低价。
本发明实施例对获得的K线数据进行计算,根据画布进行二维坐标计算,使K线数据在图像上能更精确的显示,用户可以从中获取更直观的信息。
步骤S102:对顶点坐标进行纹理映射,得到顶点数据。
具体的,本发明实施例还包括:将顶点数据拷贝填充到画布上的顶点坐标中,纹理映射的操作为:调用glBindTexture函数选择纹理对象(即K线),对K线进行定义;在绘制K线之前调用glBindTexture函数,为K线顶点坐标加载相应的顶点数据。纹理映射是真实感图像制作的一个重要部分,可以方便的制作出极具真实感的图形。
步骤S103:将顶点数据进行光栅化处理。
具体的,本发明实施例还包括:将顶点数据转换为片元,即将K线的顶点坐标转变为二维图像;片元包括二维图像上每个点的基本信息,例如位置、颜色、深度和纹理数据等,光栅化处理增加了K线图的清晰度与真实感。
步骤S104:将光栅化后的顶点数据写入缓冲区。
具体的,本发明实施例中将顶点数据进行光栅化处理,将光栅化后的顶点数据写入缓冲区,具体为:将片元写入缓冲区中,片元中的元素与像素一一对应,缓冲区是一组逻辑缓冲区,包括颜色缓冲区、深度缓冲区、模版缓冲区和累积缓冲区,在缓冲区中调用glReadPixel函数可读取像素。缓冲区是一个临时存储区,起到协调和缓冲作用,能够实现数据同步传送,将数据放入缓冲区中便于读取和调用。
步骤S105:读取缓冲区的数据,根据缓冲区的数据绘制K线图。
具体的,本发明实施例中根据缓冲区的数据绘制K线图,具体为:根据所像素通过opengl绘制K线图。调用opengl里的glutSwapBuffers函数交换屏幕和缓冲区的指针,把绘制好的K线图复制到屏幕上。本实施例中使用的带有双缓冲技术的绘图软件为opengl(OpenGraphics Library),操作简单、运算效率和绘图效果高;还可使用DX与D3D等能达到相同效果的绘图软件。
本发明实施例还提供了一种电子设备200,包括:处理器201;存储器202;以及程序,其中程序被存储在存储器202中,并且被配置成由处理器201执行,该电子设备可以进行K线图的绘制。处理器201执行存储器202里的程序,并在电子设备200做出相应的操作;存储器202用于存储程序代码和数据,在断电时它所存放的信息也不丢失,可以长久保存,且复制和提取都很方便。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序用于执行K线图的绘制方法。计算机可读存储介质是存储数据的载体,例如ROM/RAM、磁碟和光盘等,具有信息存取速度快和工作稳定可靠等优点。
本发明提供的一种K线图的绘制方法、电子设备及存储介质,对K线数据进行计算,得到K线顶点坐标,使K线图绘制时更加精确;对K线坐标进行纹理映射与光栅化处理,增加了K线图的清晰度;而且还使用了带有双缓冲技术的opengl绘制K线图,能大大加快绘图的速度,实现实时更新。用户能随时获取最新信息,并且从中得到真实直观的信息。
上述实施方式仅为本实用发明的优选实施方式,不能以此来限定本实用发明保护的范围,本领域的技术人员在本实用发明的基础上所做的任何非实质性的变化及替换均属于本实用发明所要求保护的范围。
Claims (10)
1.一种K线图的绘制方法,其特征在于,具体步骤包括:
根据获得的K线数据计算K线顶点坐标;
对所述顶点坐标进行纹理映射,得到顶点数据;
将所述顶点数据进行光栅化处理;
将光栅化后的顶点数据写入缓冲区;
读取缓冲区的数据,根据缓冲区的数据绘制K线图。
2.据权利要求1所述K线图的绘制方法,其特征在于,所述K线数据包括最高价、开盘价、最低价和收盘价,所述K线数据至少一组。
3.根据权利要求1所述K线图的绘制方法,其特征在于,在计算所述K线顶点坐标前还包括:确定电子设备屏幕的画布大小;
所述根据获得的K线数据计算K线顶点坐标,具体为:根据电子设备屏幕的画布大小与K线数据计算K线顶点坐标。
4.根据权利要求3所述K线图的绘制方法,其特征在于,所述根据所述K线数据与电子设备屏幕的画布大小计算K线顶点坐标,具体为:
把所述K线数据按时间戳在X轴上排序,则根据公式SY=(Y2-Y1)/H1计算Y轴的缩放系数SY,其中,H1为屏幕画布高,Y1为K线数据在Y轴的最低点,Y2为K线数据在Y轴的最高点。
K线宽为W,两条K线间隔为X,K线在数组中的顺序为I,则K线数据的顶点坐标具体计算为:
(x1,y1)=(X*I,(hight-Y1)*SY);
(x2,y2)=(X*I+W*0.5,(open-Y1)*SY);
(x3,y3)=(X*I+W*0.5,(close-Y1)*SY);
(x4,y4)=(X*I,(low-Y1)*SY)。
其中,(x1,y1)为K线数据最高价的顶点坐标,high为最高价;(x2,y2)为K线数据开盘价的顶点坐标,open为开盘价;(x3,y3)为K线数据收盘价的顶点坐标,close为收盘价;(x4,y4)为K线数据最低价的顶点坐标,low为最低价。
5.根据权利要求1所述K线图的绘制方法,其特征在于,所述得到顶点数据后,还包括:将所述顶点数据拷贝填充到画布上的顶点坐标中。
6.根据权利要求1所述K线图的绘制方法,其特征在于,所述将所述顶点数据进行光栅化处理,将光栅化后的顶点数据写入缓冲区,具体为:将所述顶点数据转换为片元,所述片元写入缓冲区中。
7.据权利要求6所述K线图的绘制方法,其特征在于,所述方法还包括:将所述片元在缓冲区内转换成像素,所述片元中的元素与像素一一对应。
8.据权利要求7所述K线图的绘制方法,其特征在于,所述根据缓冲区的数据绘制K线图,具体为:根据所述像素通过opengl绘制K线图。
9.一种电子设备,其特征在于,包括:处理器;
存储器;以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行权利要求1-8任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行如权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711495044.6A CN108198233A (zh) | 2017-12-31 | 2017-12-31 | 一种k线图的绘制方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711495044.6A CN108198233A (zh) | 2017-12-31 | 2017-12-31 | 一种k线图的绘制方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108198233A true CN108198233A (zh) | 2018-06-22 |
Family
ID=62587472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711495044.6A Pending CN108198233A (zh) | 2017-12-31 | 2017-12-31 | 一种k线图的绘制方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108198233A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785417A (zh) * | 2018-11-29 | 2019-05-21 | 中国船舶重工集团公司第七0九研究所 | 一种实现OpenGL累积操作的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450502A (en) * | 1993-10-07 | 1995-09-12 | Xerox Corporation | Image-dependent luminance enhancement |
CN103268626A (zh) * | 2013-04-11 | 2013-08-28 | 江苏省在这里数字科技有限公司 | 基于gpu的地图线形符号绘制方法及系统 |
CN106157347A (zh) * | 2016-07-07 | 2016-11-23 | 腾讯科技(北京)有限公司 | 资源交换数据处理方法、装置和系统 |
CN106447743A (zh) * | 2016-11-21 | 2017-02-22 | 中国农业银行股份有限公司 | 一种趋势分析图构建方法及装置 |
US9741089B2 (en) * | 2013-05-02 | 2017-08-22 | Arm Limited | Graphics processing systems |
-
2017
- 2017-12-31 CN CN201711495044.6A patent/CN108198233A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450502A (en) * | 1993-10-07 | 1995-09-12 | Xerox Corporation | Image-dependent luminance enhancement |
CN103268626A (zh) * | 2013-04-11 | 2013-08-28 | 江苏省在这里数字科技有限公司 | 基于gpu的地图线形符号绘制方法及系统 |
US9741089B2 (en) * | 2013-05-02 | 2017-08-22 | Arm Limited | Graphics processing systems |
CN106157347A (zh) * | 2016-07-07 | 2016-11-23 | 腾讯科技(北京)有限公司 | 资源交换数据处理方法、装置和系统 |
CN106447743A (zh) * | 2016-11-21 | 2017-02-22 | 中国农业银行股份有限公司 | 一种趋势分析图构建方法及装置 |
Non-Patent Citations (4)
Title |
---|
LIPING NI 等: "An Improved K-Line Fractal Dimension and Its Application on Stock Time Series Segmentation", 《2010 THIRD INTERNATIONAL CONFERENCE ON BUSINESS INTELLIGENCE AND FINANCIAL ENGINEERING》 * |
张帆 主编: "《Unity5.X游戏开发基础》", 30 September 2017, 杭州:浙江工商大学出版社 * |
曹莎莎 等: "用Delphi反映证券价格波动", 《山西电子技术》 * |
苏天天: "如何从零绘制K线图—原生js canvas图表绘制", 《URL:HTTPS://WWW.CNBLOGS.COM/CHENGDUXIAOC/P/7749711》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785417A (zh) * | 2018-11-29 | 2019-05-21 | 中国船舶重工集团公司第七0九研究所 | 一种实现OpenGL累积操作的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424621B (zh) | 基于图块的图形处理流水线和操作图形处理流水线的方法 | |
US5592597A (en) | Real-time image generation system for simulating physical paint, drawing media, and feature modeling with 3-D graphics | |
CN100481890C (zh) | 图像特效设备、图形处理器和记录方法 | |
CN101911123B (zh) | 图形描绘装置以及图形描绘方法 | |
CN110383337A (zh) | 可变速率着色 | |
CN100573592C (zh) | 一种在图形处理器上拾取三维几何图元的方法 | |
CN105678683A (zh) | 一种三维模型的二维存储方法 | |
US7483035B2 (en) | Texture cache control using a data dependent slot selection scheme | |
US20110141112A1 (en) | Image processing techniques | |
CN110503718B (zh) | 三维工程模型轻量化显示方法 | |
CN102819820A (zh) | 基于分块渲染的gpu中多管线渲染的实现方法 | |
CN109859109B (zh) | 一种系列比例尺pdf地图无缝组织与显示方法 | |
CN101373541B (zh) | 医学图像体绘制方法及装置 | |
CN108198231A (zh) | 电力gis矢量图形实时绘制方法、存储介质 | |
CN109636885B (zh) | 一种用于h5页面的序列帧动画制作方法和系统 | |
CN102915563A (zh) | 三维网格模型透明绘制的方法及其系统 | |
US6731300B2 (en) | Efficient anti-aliased dot rasterization | |
CN109544668A (zh) | 纹理坐标处理方法、终端设备及计算机可读存储介质 | |
CN101593357A (zh) | 一种基于三维平面控件的交互式体切割方法 | |
US8553041B1 (en) | System and method for structuring an A-buffer to support multi-sample anti-aliasing | |
CN108198233A (zh) | 一种k线图的绘制方法、电子设备及存储介质 | |
CN107038729A (zh) | 一种基于OpenGL‑ES的数字仪表盘绘制方法 | |
CN102842145A (zh) | 拼块式图形结构 | |
KR20100068603A (ko) | 밉맵 생성 장치 및 방법 | |
CN113393555B (zh) | 一种基于着色器的屏幕填充率统计方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20180622 |