| Line | |
|---|
| 1 | package require Tk
|
|---|
| 2 | package require BLT
|
|---|
| 3 | namespace import blt::*
|
|---|
| 4 |
|
|---|
| 5 | # vector and stripchart are blt components.
|
|---|
| 6 | # if you have a vector v, you can update it in realtime with
|
|---|
| 7 | # v set $list
|
|---|
| 8 |
|
|---|
| 9 | # init the vectors to a fixed size.
|
|---|
| 10 |
|
|---|
| 11 | set Hz 200
|
|---|
| 12 |
|
|---|
| 13 | vector xvec($Hz) y1vec($Hz) y2vec($Hz) sx1($Hz) sy1($Hz)
|
|---|
| 14 |
|
|---|
| 15 | # fill xvec with 0 .. $Hz-1
|
|---|
| 16 |
|
|---|
| 17 | xvec seq 0 [expr {$Hz - 1}]
|
|---|
| 18 | #xvec populate sx1 $Hz
|
|---|
| 19 | sx1 seq 0 [expr {$Hz - 1}]
|
|---|
| 20 |
|
|---|
| 21 | stripchart .s1 -height 2i -width 8i -bufferelements no
|
|---|
| 22 | stripchart .s2 -height 2i -width 8i -bufferelements no
|
|---|
| 23 |
|
|---|
| 24 | pack .s1 .s2
|
|---|
| 25 |
|
|---|
| 26 | .s1 element create line1 -xdata xvec -ydata y1vec -symbol none
|
|---|
| 27 | .s2 element create spline -x sx1 -y sy1 -symbol none -color red
|
|---|
| 28 |
|
|---|
| 29 | #.s2 element create line2 -xdata xvec -ydata y2vec -symbol none -color red
|
|---|
| 30 |
|
|---|
| 31 | # update $Hz values with random data once per second
|
|---|
| 32 |
|
|---|
| 33 | proc proc1sec {} {
|
|---|
| 34 |
|
|---|
| 35 | # this can be done more concisely with vector random,
|
|---|
| 36 | # but if you need to fill a vector from scalar calculations,
|
|---|
| 37 | # do it this way:
|
|---|
| 38 |
|
|---|
| 39 | for {set i 0} {$i < $::Hz} {incr i} {
|
|---|
| 40 | lappend y1list [expr {rand()}]
|
|---|
| 41 | lappend y2list [expr {rand()}]
|
|---|
| 42 | }
|
|---|
| 43 | y1vec set $y1list
|
|---|
| 44 | y2vec set $y2list
|
|---|
| 45 |
|
|---|
| 46 | spline natural xvec y1vec sx1 sy1
|
|---|
| 47 |
|
|---|
| 48 | after 200 proc1sec
|
|---|
| 49 | }
|
|---|
| 50 |
|
|---|
| 51 | proc1sec
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.