Version 3 of Vanishing Child

Updated 2006-10-14 18:57:50

Keith Vetter : 2006-08-28 : Here's a visual puzzle: count the number of children in the picture then slide the scale to the other side to swap the top halves. Now how many children are there?

AMG: Arrgh, I sprained a ligament in my brain!

HJG Added a checkbutton to show hints.


 ##+##########################################################################
 #
 # Vanishing Child
 # by Keith Vetter, August 28, 2006

 package require Tk

 set S(title) "Vanishing Child"
 set S(step) 0
 set S(help) {
 Count how many children are in the picture.
 Then slide the scale to the other side to swap the top halves.
 Now how many children are in the picture?}

  proc Hint1 {w} {
  #: Hints: number the childs

    if {$::cb == 0} {.c delete "h"; return}

    $w create text -280  -66 -text  "1" -tag "h r"
    $w create text -240  -20 -text  "2" -tag "h"
    $w create text -200   -1 -text  "3" -tag "h"

    $w create text -140  -40 -text  "4" -tag "h"
    $w create text  -90  -10 -text  "5" -tag "h"

    $w create text  -45  -70 -text  "6" -tag "h r"
    $w create text    5  -25 -text  "7" -tag "h"
    $w create text   45  -10 -text  "8" -tag "h"

    $w create text  115  -60 -text  "9" -tag "h"
    $w create text  150  -10 -text "10" -tag "h"

    $w create text  210  -66 -text "11" -tag "h r"
    $w create text  245  -38 -text "12" -tag "h"
    $w create text  290  -10 -text "13" -tag "h"

    $w create text  -25  100 -text "14" -tag "h"
    $w create text  195   95 -text "15" -tag "h"

    .c itemconfig "r" -fill red
  }

 proc DoDisplay {} {
    global P S

    wm title . $S(title)
    canvas .c -width 750 -height 420 -bd 2 -relief ridge -bg green4
    ShadedText .c 0 -120 deepskyblue black \
        -font {Times 42 bold} -anchor s -tag title -text $S(title)
    bind .c <Configure> {ReCenter %W %h %w}
    CreateImages

    .c create image $P(vc,x) $P(vc,y) -image ::img::vc -tag vc -anchor nw
    foreach {x0 y0 x1 y1} [.c bbox vc] break
    .c create rect $x0 $y0 [incr x1 -1] [incr y1 -1] -outline black
    .c create image $P(vc1,x1) $P(vc1,y1) -image ::img::vc1 -tag vc1 -anchor nw
    .c create image $P(vc2,x1) $P(vc2,y1) -image ::img::vc2 -tag vc2 -anchor nw

    frame .bottom
    scale .sc -from 0 -to 100 -orient h -variable S(step) \
        -command WhereTo -showvalue 0
    button .? -text "?" -command About
    .? config -font "[.? cget -font] bold"
    checkbutton .cb -text "!" -command [list Hint1 .c]
    .cb config -font "[.cb cget -font] bold"

    pack .bottom -side bottom -fill x -expand 1
    pack .sc  -in .bottom -side left -expand 1 -pady 10
    place .?  -in .bottom -relx .99 -rely .5 -anchor e
    place .cb -in .bottom -relx .01 -rely .5 -anchor w
    pack .c -fill both -expand 1 -side top

 }
 proc ReCenter {W h w} {                   ;# Called by configure event
    set h2 [expr {$h / 2}] ; set w2 [expr {$w / 2}]
    $W config -scrollregion [list -$w2 -$h2 $w2 $h2]
 }
 proc CreateImages {} {
    global P S

    image create photo ::img::vc1
    image create photo ::img::vc2

    ::img::vc1 copy ::img::vc -from   1 1 240 136
    ::img::vc2 copy ::img::vc -from 240 1 619 136
    ::img::vc put [.c cget -bg] -to   1 1 619 136

    set w  [image width  ::img::vc]
    set h  [image height ::img::vc]
    set w1 [image width  ::img::vc1]
    set w2 [image width  ::img::vc2]

    set P(vc,x)   [expr {-$w/2}]                   ;# Where vc goes
    set P(vc,y)   [expr {-$h/2}] 
    set P(vc1,x0) [expr {$P(vc,x) + 1}]            ;# Where vc1 starts
    set P(vc1,y0) [expr {$P(vc,y) + 1}]
    set P(vc1,x1) [expr {$P(vc,x) + $w - $w1 - 1}] ;# Where vc1 ends
    set P(vc1,y1) $P(vc1,y0)
    set P(vc2,x0) [expr {$P(vc,x) + $w - $w2 - 1}] ;# Where vc2 starts
    set P(vc2,y0) $P(vc1,y0)
    set P(vc2,x1) [expr {$P(vc,x) + 1}]            ;# Where vc2 ends
    set P(vc2,y1) $P(vc1,y0)
 }
 # See http://wiki.tcl.tk/ShadedTextOnCanvas
 proc ShadedText {w x y fg bg args} {
    set cbg [ $w cget -bg ]
    eval [list $w create text $x $y -fill $bg] $args
    eval [list $w create text [incr x -2] [incr y -2] -fill $cbg] $args
    eval [list $w create text [incr x -1] [incr y -1] -fill  $fg] $args
 }
 proc About {} {
    set msg "$::S(title)\nby Keith Vetter, August 2006\n$::S(help)"
    tk_messageBox -message $msg -title "About $::S(title)"
 }

 proc WhereTo {args} {
    global P S
    set xpos $S(step)
    set ypos [expr {$S(step) <= 50 ? $S(step) : 100-$S(step)}]

    set x [expr {$P(vc1,x0) + ($P(vc1,x1) - $P(vc1,x0)) * $xpos / 100.0}]
    set y [expr {$P(vc1,y0) + $ypos}]
    .c coords vc1 $x $y
    set x [expr {$P(vc2,x0) + ($P(vc2,x1) - $P(vc2,x0)) * $xpos / 100.0}]
    set y [expr {$P(vc2,y0) - $ypos}]
    .c coords vc2 $x $y
 }

 image create photo ::img::vc -data {
    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
    4MCCBxMubPgw4sSKF9OMAAA7}

 ################################################################
 DoDisplay

 return

Category Optical Illusion - Category Toys