
Fedora では Tcl/Tk 8.5 で BLT パッケージ(2.4z にパッチをあてたもの)が利用できますが、nightly-cvs の Tcl/Tk8.6 を自分でコンパイルして使用している環境では、同サイトで入手できる blt (3.0) をどうしてもうまくビルドできません。なんとかならないかとインターネット上で情報をあさっていたところ、古い記事ですが BLT 2.4z を リファクタリングした RBC についての議論を見つけました[1]。どうやら Mayo SPPDG - Mayo Clinic and Foundation の Robert W Techentin 氏が、院生のチームと一緒になって取り組んだ成果のようです。SourceForge.net にサイト[2] が開設されているので、早速ダウンロードしてビルドしてみました。試行錯誤の後、結局、以下のようにしてビルドしました。ビルドした環境は Fedora 14 (beta) x86_64 です。
$ tar zxvf rbc0.1.src.tar.gz $ cd rbc $ CFLAGS="-DUSE_INTERP_RESULT" \ > ./configure --prefix=$HOME --with-tcl=../tcl/unix --with-tk=../tk/unix $ make $ make installコンパイルフラグ USE_INTERP_RESULT は、Tcl 8.6 ではレガシーな (Tcl_Interp) interp->result にアクセスする際に必要になります[3]。
テスト用に BLT 用の以前用意したサンプルを RBC 用に書き換えて実行してみました。
#!/bin/sh
# the next line restarts using wish \
exec wish8.6 "$0" "$@"
package require rbc
proc init_x {} {
set xList {}
for {set i 0} {$i <= 200} {incr i} {
lappend xList [expr $i / 5.]
}
return $xList
}
proc init_y {xList} {
set yList {}
foreach x $xList {
lappend yList [expr sqrt($x) * sin($x)]
}
return $yList
}
# ----------------------------------------------------------------------------
# メイン
# ----------------------------------------------------------------------------
wm title . "rbc::graph"
set grp ".grp"
rbc::graph $grp \
-title "Sample Graph" \
-font "helvetica 16" \
-rightmargin 15 \
-plotbackground "light cyan" \
-plotpadx 0 \
-plotpady 0 \
-plotborderwidth 0
pack .grp
# ズームスタックを有効にする
#Blt_ZoomStack $grp
# X と Y 軸
$grp axis configure x \
-subdivisions 10 \
-tickfont "courier 8" \
-title "X Axis" \
-titlefont "helvetica 12"
$grp axis configure y \
-subdivisions 10 \
-tickfont "courier 8" \
-title "Y Axis" \
-titlefont "helvetica 12"
# グリッド
$grp grid configure \
-color "turquoise" \
-mapx x \
-mapy y
$grp grid on
# 凡例
$grp legend configure \
-font "helvetica 10" \
-ipadx 10 \
-position bottom \
-relief ridge
# データ
set xList [init_x]
set yList [init_y $xList]
$grp element create func \
-label "sqrt(x) * sin(x)" \
-xdata $xList \
-ydata $yList \
-smooth quadratic \
-linewidth 1 \
-color blue \
-symbol circle \
-pixels 0.0625i \
-scalesymbols yes \
-outline red \
-fill green
# ---
# sample_graph.tcl
実行例を以下に示しました。日本語フォントが表示できないし、 BLT のすべての機能が使えるわけでもなく制限はありますが、Tcl/Tk 8.6 の環境で手軽に(そこそこの)グラフを作成できそうです。参考サイト
[1] RBC - Refactored BLT Components - Initial Release - Rhinocerus[2] The RBC Toolkit | Download The RBC Toolkit software for free at SourceForge.net
[3] DIRECT ACCESS TO INTERP->RESULT - Tcl_SetResult manual page

0 件のコメント:
コメントを投稿