Skip to content.
Skip to navigation
Site Map
Accessibility
Lightweight Language Ring
Sections
Home
Event
Blog
Download
You are here:
Home
→
Blog
→
Comments
→
Tcl(/Tk) でグラフ
Personal tools
«
August
2009
»
Su
Mo
Tu
We
Th
Fr
Sa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Recent entries
じゃんけん2.0で優勝したJavaScriptのソースを公開しました
yasuyuki 2006-10-02
第16回GaucheFestを開催します
yasuyuki 2006-10-02
LL Ringの動画配信開始
kahei 2006-09-06
英語BlogにLLRingの記事掲載
kahei 2006-09-05
発表資料を公開しました
yasuyuki 2006-09-02
Recent comments
Re:じゃんけん2.0で優勝したJavaScriptのソースを公開しました
Anonymous User 2009-06-05
Re:じゃんけん2.0で優勝したJavaScriptのソースを公開しました
Anonymous User 2007-07-17
Tシャツサイズアンケート
Anonymous User 2007-01-23
Re:Tシャツサイズアンケート
Tシャツ 2006-12-13
Re:Flickrへイベントの写真を(tag:LLRing)
ats 2006-09-02
Recent trackbacks
[参加者募集/ Python]君ならどう書く? -marge sort-
Fomalhaut of Piscis Australis
2006-09-16
キミならどう書く 2.0 - ROUND 3 -
Haskell はスケるよ
2006-09-08
[プログラミング][言語]LLRing
Onion開発日記
2006-09-04
LLR2006 - Language Update - Perl
404 Blog Not Found
2006-08-31
人生史上最も有意義なカンファレンス
dsler no weblog
2006-08-31
Categories
LL関連書籍・雑誌
(1)
告知
(20)
キミならどう書く2.0
(6)
その他
(5)
ニュース
(13)
Ruby
(3)
Perl
(0)
Tcl(/Tk) でグラフ
Posted by
Rainy Day Codings
at
2006-08-27 22:52
Lightweight Language のサイトの「キミならどう書く 2.0 - ROUND 3 -」というトラックバック企画 [1] で今回のお題が「いくつかのデータを与えたときにグラフを出力するプログラム」(細かい仕様無し)ということだった。 今までこの企画で Tcl や Tcl/Tk で参加している人は意外にもいないっぽいので書いてみることにしました(それにこのお題はいかにも Tcl/Tk 向き)。 まずちょっと仕様を制限したもの。キャンバスの幅をはみ出すようなデータは考慮しない。 # graph.tcl pack [canvas .canvas -width 200 -height [expr 20*[llength $argv]] -bg white] set ypos 10 foreach num $argv { .canvas create line 0 $ypos [expr $num*10] $ypos -width 18 -fill blue .canvas create text 2 $ypos -text $num -anchor w -fill white incr ypos 20 } 実行するには wish graph.tcl 2 5 9 18 15 などとする。実行結果はこうなる。 次はちゃんとキャンバスの大きさに合わせて伸縮するようにしたもの。 # graph2.tcl set height 150; set width 200; # キャンバスの大きさ set max [lindex [lsort -integer $argv] end]; # 要素の最大値 set lwidth [expr $height/[llength $argv]]; # 線の取れる太さ pack [canvas .canvas -width $width -height $height -bg white] set ypos [expr $lwidth/2] foreach num $argv { set xpos [expr $width*$num/$max] .canvas create line 0 $ypos $xpos $ypos -width [expr $lwidth-2] -fill blue .canvas cre...
Parent entry
キミならどう書く 2.0 - ROUND 3 -
Powered by Plone, the Open Source Content Management System
Tcl(/Tk) でグラフ