java根据数据生成曲线图mysql怎么写

java根据数据生成曲线图mysql怎么写,第1张

如果要使用Java根据数据生成曲线图,首先需要使用MySQL查询语句来获取所需的曲线图数据。MySQL中有一个查询语句叫做SELECT,它可以根据指定条件从表中检索数据。其格式如下:SELECT [字段名] FROM [表名] WHERE [条件],其中[条件]可以是具体的值,也可以是表中的字段。例如:SELECT x,y FROM table WHERE x>100,其中x,y表示要查询的字段,table表示要查询的表,x>100表示要查询的条件。

生成java代码

首先选择你要生成代码的类图,然后单击菜单栏的Language菜单,选择Generate java code选项。

会出现上图所示的对话框,选择文件输出目录,单击确定就可以了。

2. 生成MySQL语句

首先要在物理数据模型视图下(physical data model)选择菜单栏的Database菜单下的Generate Database,会出现如下对话框:

选择输出目录,你如果只是生成sql脚本,在Generation type选择Script generation就可以了。如果你想直接连接数据库,就选择Direct generation。当然你要用mysql数据库,就必须在创建或者用逻辑或者概念模型生成physical data model时就要把dbms选项选为mysql数据库。

<?

//

参数以

a

为参数名传入,

a

的文本形态应该是用“

,

”分割的若干数字连接的字符串

//

这里首先判断

a

是否存在

if($_GET["a"]=="") die("0")

//

将得到的数据分解,存入数组

$shuju

$shuju=split(",",$_GET["a"])

//

再次判断数据的合法性,返回错误代码

if(count($shuju)==0) die("2")

//

定义整个图形的宽度和高度

//

读者可以根据需要修改这两个变量的值

$tukuan=300

$tugao=150

//

定义一个数组,用来存放每一个色块的角度范围

$jiaodu = array()

//

定义存贮数据和的变量

$total=0

//

遍历数组求和

for ($i = 0$i <count($shuju)$i++) {

if(!is_numeric($shuju[$i])) die("1")

$total+=$shuju[$i]

}

//

再次遍历,计算色块角度并存入数组

for ($i = 0$i <count($shuju)$i++) {

array_push ($jiaodu, round(360*$shuju[$i]/$total))

}

//

创建图像

$image = imagecreate($tukuan, $tugao)

//

定义一个灰色背景色

,

这个颜色其实就是大家很熟悉的页面色系

16

进制数字表示的

#EEEEEE

$white = imagecolorallocate($image, 0xEE, 0xEE, 0xEE)

//

再定义

10

对深浅对应的彩色,存入二维数组

$yanse = array(

array(

imagecolorallocate($image, 0x97, 0xbd, 0x00),

imagecolorallocate($image, 0x00, 0x99, 0x00),

imagecolorallocate($image, 0xcc, 0x33, 0x00),

imagecolorallocate($image, 0xff, 0xcc, 0x00),

imagecolorallocate($image, 0x33, 0x66, 0xcc),

imagecolorallocate($image, 0x33, 0xcc, 0x33),

imagecolorallocate($image, 0xff, 0x99, 0x33),

imagecolorallocate($image, 0xcc, 0xcc, 0x99),

imagecolorallocate($image, 0x99, 0xcc, 0x66),

imagecolorallocate($image, 0x66, 0xff, 0x99)

),

array(

imagecolorallocate($image, 0x4f, 0x66, 0x00),

imagecolorallocate($image, 0x00, 0x33, 0x00),

imagecolorallocate($image, 0x48, 0x10, 0x00),

imagecolorallocate($image, 0x7d, 0x64, 0x00),

imagecolorallocate($image, 0x17, 0x30, 0x64),

imagecolorallocate($image, 0x1a, 0x6a, 0x1a),

imagecolorallocate($image, 0x97, 0x4b, 0x00),

imagecolorallocate($image, 0x78, 0x79, 0x3c),

imagecolorallocate($image, 0x55, 0x7e, 0x27),

imagecolorallocate($image, 0x00, 0x93, 0x37)

)

)

//

由下至上画

10

个像素高的深色饼图,作为阴影

$yuanxin_x=$tukuan/

2

for ($h = $tugao/

2+5$h >$tugao/

2-5$h--) {

$kaishi=0

$jieshu=0

for ($i = 0$i <count($shuju)$i++) {

$kaishi=$kaishi+0

$jieshu=$kaishi+$jiaodu[$i]

$yanse_i=fmod($i,10)

imagefilledarc($image,$yuanxin_x,$h,$tukuan,$tugao-20,$kaishi,$jieshu,$yanse[1][$yanse_i],IM

G_ARC_PIE)

$kaishi+=$jiaodu[$i]

$jieshu+=$jiaodu[$i]

}

}

//

在最高处

(

也就是

$h

最小时

)

画一个浅色饼图,

这个浅色图跟先画上的深色饼图就能产生立

体效果了

for ($i = 0$i <count($shuju)$i++) {

$kaishi=$kaishi+0

$jieshu=$kaishi+$jiaodu[$i]

$yanse_i=fmod($i,10)

imagefilledarc($image,

$yuanxin_x,

$h,

$tukuan,

$tugao-20,

$kaishi,

$jieshu,

$yanse[0][$yanse_i], IMG_ARC_PIE)

$kaishi+=$jiaodu[$i]

$jieshu+=$jiaodu[$i]

}

//

设定文件头

header('Content-type: image/png')

//

输出图像

imagepng($image)

//

释放资源

imagedestroy($image)

?>

使用方法

在需要显示图像的位置插入如下代码

<img src="bing_img.php?a=3,2,3,4"/>

a

的文本格式是由“

,

”连接的若干个数据的字符串,

get

方式传入。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7458950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存