<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
2 < html xmlns ="http://www.w3.org/1999/xhtml" >
3 < head >
4 < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
5 < title > TEST </ title >
6 < script type ="text/javascript" src ="wz_jsgraphics.js" ></ script >
7 < script type ="text/javascript" src ="line.js" ></ script >
8 </ head >
9 < body >
10 < p > 1.线图 </ p >
11 < div id ="LineDiv" style ="position:relative;height:200px;width:300px;" ></ div >
12 < script language ="javascript" >
13 var y = new Array ();
14 y[ 0 ] = 16000 ;
15 y[ 1 ] = 1000 ;
16 y[ 2 ] = 20000 ;
17 y[ 3 ] = 100 ;
18 y[ 4 ] = - 500 ;
19 y[ 5 ] = 9000 ;
20 var x = new Array ();
21 x[ 0 ] = " a " ;
22 x[ 1 ] = " b " ;
23 x[ 2 ] = " c " ;
24 x[ 3 ] = " aa " ;
25 x[ 4 ] = " bb " ;
26 x[ 5 ] = " dd " ;
27 var myline = new Line( " LineDiv " );
28 myline.drawXYLine(y,x);
29 // myline.clearLine();
30 </ script >
31 </ body >
32 </ html >
================================================================
/**/ /* ************更多技术文章请访问:http://www.blogjava.net/JAVA-HE****************
2 *
3 * 文件名:line.js V 1.01
4 *
5 * 作 者:何昌敏
6 *
7 * 时 间:2007-7
8 *
9 * 描 述:绘制坐标曲线图
10 *
11 * 备 注:
12 * 1.实现了根据所提供数据,自动标刻y轴坐标。
13 * 2.实现了图像清除。
14 * 3.调整startx starty能实现整体位置调整。
15 *
16 * 感 谢:Walter Zorn提供了API ——wz_jsgraphics.js v. 3.01。
17 *
18 *************更多技术文章请访问:http://www.blogjava.net/JAVA-HE*************** */
19
20 function Line(obj)
21 {
22 this .jg = new jsGraphics(obj);
23 var colors = new Array();
24 colors[ 0 ] = " #0066FF " ;
25 colors[ 1 ] = " #FF6633 " ;
26 colors[ 2 ] = " #9900FF " ;
27 colors[ 3 ] = " #FF0066 " ;
28 colors[ 4 ] = " #066600 " ;
29 colors[ 5 ] = " #006633 " ;
30 colors[ 6 ] = " #33FFFF " ;
31 colors[ 7 ] = " #000000 " ;
32 colors[ 8 ] = " #FFFF00 " ;
33 colors[ 9 ] = " #000033 " ;
34 colors[ 10 ] = " #CCFFFF " ;
35 colors[ 11 ] = " #666666 " ;
36 this .start_x = 40 ; // 应大于等于y_str_width
37 this .y_str_width = 40 ; // 坐标系的左边距
38 this .x_str_tom = 10 ; // x轴文字 距离坐标系底部距离。
39 this .start_y = 20 ; // >=this.ArrowLength*2 箭头的高度
40 this .width = 200 ;
41 this .height = 120 ;
42 this .y_line_num = 5 ;
43
44 this .IsDrawArrow = true ;
45 this .ArrowLength = 6 ;
46
47 this .drawXYLine = function (_y,_x)
48 {
49 var y_length = _y.length;
50 var x_length = _x.length;
51 if (y_length != x_length)
52 {
53 alert( " X and Y length of inconsistencies, errors parameters. " );
54 return ;
55 }
56 var y_line_distance = Math.round( this .height / this .y_line_num);
57 var x_line_distance = Math.round( this .width / x_length);
58
59 this .jg.drawLine( this .start_x, this .start_y + this .height, this .start_x + this .width, this .start_y + this .height); // x
60 this .jg.drawLine( this .start_x, this .start_y + this .height, this .start_x, this .start_y); // y
61 this .jg.setStroke(Stroke.DOTTED);
62 var _y_copy = _y.concat();
63 var temp = _y;
64 temp.sort( function AscSort(x, y)
65 {
66 return x == y ? 0 : (x > y ? 1 : - 1 );
67 }
68 );
69 var y_max2y_min = temp[x_length - 1 ] - temp[ 0 ];
70 var y_min = temp[ 0 ];
71 var y_value_distance = y_max2y_min / this .y_line_num;
72 for ( var i = 0 ;i < this .y_line_num;i ++ )
73 {
74 var y_item = this .start_y + this .height - (i + 1 ) * y_line_distance;
75 this .jg.drawLine( this .start_x,y_item, this .start_x + this .width,y_item);
76 var y_v = Math.round(y_value_distance * (i + 1 ) + y_min);
77 this .jg.drawString(y_v, this .start_x - this .y_str_width,y_item);
78 }
79 for (i = 0 ;i < x_length;i ++ )
80 {
81 this .jg.setStroke( - 1 );
82 this .jg.setColor( " #000000 " );
83 var x_item_end = this .start_x + x_line_distance * (i + 1 );
84 this .jg.drawLine(x_item_end, this .start_y + this .height,x_item_end, this .start_y);
85 this .jg.drawString(_x[i],x_item_end, this .start_y + this .height + 10 );
86 }
87 for (i = y_length;i > 1 ;i -- )
88 {
89
90
91 this .jg.setStroke( 2 );
92 this .jg.setColor( " #FF0000 " );
93
94 var x_temp_1 = this .start_x + x_line_distance * (i);
95 var x_temp_2 = this .start_x + x_line_distance * (i - 1 );
96 // alert(_y_copy[i-1]);
97 // alert(y_min);
98 // alert(y_max2y_min);
99 var y_temp_1 = Math.round( this .height - this .height * (_y_copy[i - 1 ] - y_min) / y_max2y_min + this .start_y);
100 var y_temp_2 = Math.round( this .height - this .height * (_y_copy[i - 2 ] - y_min) / y_max2y_min + this .start_y);
101 this .jg.drawLine(x_temp_1,y_temp_1,x_temp_2,y_temp_2);
102 }
103 if ( this .IsDrawArrow)
104 {
105 this .jg.setStroke( 1 );
106 this .jg.setColor( " #000000 " );
107 this .jg.drawLine( this .start_x - this .ArrowLength, this .start_y, this .start_x, this .start_y - 2 * this .ArrowLength);
108 this .jg.drawLine( this .start_x + this .ArrowLength, this .start_y, this .start_x, this .start_y - 2 * this .ArrowLength);
109 this .jg.drawLine( this .start_x, this .start_y, this .start_x, this .start_y - 2 * this .ArrowLength);
110 this .jg.drawLine( this .start_x + this .width, this .start_y + this .height - this .ArrowLength, this .start_x + this .width + 2 * this .ArrowLength, this .start_y + this .height);
111 this .jg.drawLine( this .start_x + this .width, this .start_y + this .height + this .ArrowLength, this .start_x + this .width + 2 * this .ArrowLength, this .start_y + this .height);
112 this .jg.drawLine( this .start_x + this .width, this .start_y + this .height, this .start_x + this .width + 2 * this .ArrowLength, this .start_y + this .height);
113 }
114 this .jg.paint();
115 } ;
116 this .clearLine = function ()
117 {
118 this .jg.clear();
119 } ;
120 }
分享到:
相关推荐
威纶通触摸屏支持多种编程语言和开发环境,例如其专有的MT Designer软件,允许用户创建复杂的用户界面,包括XY曲线图的绘制。这个示例程序可能包括了以下几个关键知识点: 1. **MT Designer软件使用**:MT Designer...
* 参考线:最多可设置 4 条参考线在 XY 曲线图上,并可自行设置参考线的色彩及数值。若勾选“上下限取自寄存器”时,可设置改变参考线的上下限值。 XY 曲线是一种非常有用的工具,可以帮助用户快速了解和分析数据...
在本文中,我们将深入探讨如何使用GDI+(Graphics Device Interface Plus)在Windows Forms应用程序中绘制动态曲线图。GDI+是.NET Framework提供的一种强大的图形处理API,它允许程序员创建和控制各种图形元素,包括...
在这个特定的场景中,我们关注的是如何使用QPainter来绘制实时曲线图。 首先,让我们了解QPainter的基本用法。QPainter对象通常在开始绘画时创建,并在完成绘画后释放。为了绘制曲线,我们需要一个QGraphicsView或...
在JavaScript编程中,绘制曲线图是一项常见的需求,特别是在创建数据可视化应用时。"JS绘制曲线图源码"可能包含了一套用于动态展示数据的代码实现。这篇文章将详细讲解如何使用JavaScript来绘制曲线图,以及涉及的...
在Android开发中,有时我们需要创建动态的、可定制的曲线图来展示数据,这通常涉及到自定义View的绘制。这个“android曲线图的绘制”是一个关于如何在Android平台上实现曲线图表的小型示例项目。该项目可能包含了一...
在“java使用POI插件绘制表格曲线图”这个主题中,我们将深入探讨如何使用POI来在Excel工作表中绘制曲线图表。Apache POI提供了一个API,使得开发者可以方便地创建图表,包括曲线图,而无需依赖其他外部插件。 首先...
实时曲线图在监控系统、数据分析和科学实验中非常有用,因为它能立即反映出数据的变化。这类控件通常需要处理大量的数据更新,并且要确保流畅的刷新速度。开发者可能需要学习如何高效地更新图表,处理内存管理,以及...
3. 使用“绘制XY数据”函数,将时间数组(X值)和每相的正弦值数组(Y值)传入,这将在XY图上绘制一条曲线。 4. 在循环中重复上述步骤,改变相位参数以得到不同相位的正弦波形。 5. 最后,确保设置合适的图表属性,...
本项目“C#的GDI+绘制曲线图”聚焦于利用GDI+来实现动态绘制曲线图表的功能,这对于数据分析、实时监控或其他需要图形化展示数据的应用场景非常有用。下面我们将深入探讨如何使用GDI+来绘制曲线图,并讨论项目中的...
在"VC++绘制曲线图趋势图"这个主题中,开发者可能需要掌握以下关键知识点: 1. **GDI+基础**:理解GDI+的基本概念,包括Graphics、Pen、Brush、Rectangle等对象的使用,以及颜色、线型、填充样式等设置。 2. **...
在本文中,我们将深入探讨如何基于QT框架进行曲线图的绘制。QT是一个强大的跨平台应用程序开发框架,广泛用于创建桌面、移动以及嵌入式设备的应用。在这个特定的项目"基于QT的曲线图绘制"中,开发者没有依赖外部的...
利用贝赛尔曲线函数在arcgis图层中绘制平滑曲线,通过地图上的几个控制点,在客户端绘制平滑曲线,可用于客户端绘制等值线
在本例中,我们将探讨如何使用D3.js来绘制曲线图。 首先,我们需要了解XML文件的作用。XML(可扩展标记语言)是一种用于存储和传输结构化数据的标准格式。在这个场景中,XML文件很可能包含了用来绘制曲线图的数据点...
在C#编程环境中,实时曲线图的绘制是一个常见的需求,特别是在数据分析、监控系统或图形用户界面(GUI)应用中。本教程将详细讲解如何利用C#的Chart控件来实现这个功能,尤其适合初学者入门。 首先,让我们了解C# ...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来绘制曲线图、饼状图和柱状图。MFC 是一个C++类库,它为Windows应用程序开发提供了一种方便的方式,尤其在图形用户界面(GUI)的创建上。 首先...
在C#编程中,创建动态曲线图是一种常见的需求,特别是在数据可视化、数据分析和科学计算等领域。本项目"CreateCurve.rar"提供了一种方法,利用C#来实现动态曲线的绘制,支持多条曲线同时显示,并且能够进行平面与三...
文章地址:http://blog.csdn.net/czyt1988/article/details/20136895 《绘图控件第五讲——绘制动态曲线》 介绍MFC常用绘图控件TeeChart和CChartCtrl绘制动态曲线的方法