2012年7月24日火曜日

グラフ描画モジュール

自費出版の書籍には色々とグラフを載せたいと思ってまして
そうなると誰がグラフを書くのかよくわからなく
編集の人に頼むと費用がかさむことが予想され
なので自分でグラフを書いてしまえwと
まずはx軸y軸と目盛を書いてみました
ちなみにグラフは目盛の意味する数値をグラフごとに用意するのがめんどうなので
単位は%です
1とか10とか100とかじゃなく
1%とか10%とか100%として読んでください

ちなみに使用言語は描画なので楽なHSPです。知らない方、ごめんなさい

// FILE_draw_graph_sub.hsp
/*
 graph_init
 
 color $ff,0,0
 graph_line 300,300,-300,-300
 color 0,$ff,0
 graph_line -300,300,300,-300

 draw_zahyoujiku
 stop
//*/
#module m_draw_graph
#deffunc graph_init
 screen 0,600,600
 return
#deffunc graph_line int p_x_A,int p_y_A,int p_x_B,int p_y_B
 tmp_x_A=p_x_A+300
 tmp_x_B=p_x_B+300
 tmp_y_A=600-p_y_A-300
 tmp_y_B=600-p_y_B-300
 line tmp_x_A,tmp_y_A,tmp_x_B,tmp_y_B
; line  tmp_x_A,0,0,600
 return
#deffunc draw_zahyoujiku
 color 0,0,0
// x軸の座標軸描画
 line 299,0,299,600
 line 300,0,300,600
// y軸の座標軸描画
 line 0,299,600,299
 line 0,300,600,300
// x軸の+の目盛描画
 repeat 10,1
 x1=300-5
 x2=300+4
 line x1,(300-(30*cnt)),x2,(300-(30*cnt))
 loop
// x軸の-の目盛描画
 repeat 10,1
 x1=300-5
 x2=300+4
 line x1,(300+(30*cnt)-1),x2,(300+(30*cnt)-1)
 loop
// y軸の+の目盛描画
 repeat 10,1
 y1=300-5
 y2=300+4
 line (300-(30*cnt)),y1,(300-(30*cnt)),y2
 loop
// y軸の-の目盛描画
 repeat 10,1
 y1=300-5
 y2=300+4
 line (300+(30*cnt)-1),y1,(300+(30*cnt)-1),y2
 loop
 font "",10
// y軸の+の目盛(数値)描画
; pos 0,0
; mes "100"
; logmes ""+ginfo_mesx//15
; logmes ""+ginfo_mesy//10
 _4mes_n=100
 repeat 10,0
 pos (300-5-15),(cnt*30)
 mes _4mes_n
 _4mes_n-=10
 loop
// y軸の-の目盛(数値)描画
; pos 0,0
; mes "-100"
; logmes ""+ginfo_mesx//20
; logmes ""+ginfo_mesy//10
 _4mes_n=-100
 repeat 10,0
 pos (300-5-20),(600-cnt*30-10)
 mes _4mes_n
 _4mes_n+=10
 loop
// x軸の-の目盛(数値)描画
; pos 0,0
; mes "-100"
; logmes ""+ginfo_mesx//20
; logmes ""+ginfo_mesy//10 
 _4mes_n=-100
 repeat 10,0
 pos (0+cnt*30),(300-5-10)
 mes _4mes_n
 _4mes_n+=10
 loop
 
// x軸の+の目盛(数値)描画
; pos 0,0
; mes "100"
; logmes ""+ginfo_mesx//15
; logmes ""+ginfo_mesy//10
 _4mes_n=10
 repeat 10,0
 pos (300+(cnt+1)*30-15-1),(300-5-10)
 mes _4mes_n
 _4mes_n+=10
 loop
 return
#global

0 件のコメント:

コメントを投稿