Vanishing Child

Summary

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?

uniquename 2013aug17

Here is a sequence of 3 images showing why ligaments in brains are being sprained.

The first image shows the picture of children as they appear when the GUI first comes up.

You can switch the top-left portion of the picture with the top-right by sliding the 'scale' button from left to right --- as indicated by the second image.

The completed switch is shown in the 3rd image.

vetter_VanishingChild_wiki16345_left_screenshot_670x327.jpg

vetter_VanishingChild_wiki16345_mid_screenshot_672x328.jpg

vetter_VanishingChild_wiki16345_right_screenshot_670x326.jpg

For those interested in the programming to move these images around, note that the 'WhereTo' proc, in the code below, is being used to move images 'vc1' and 'vc2'.


Code

 ##+##########################################################################
 #
 # 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

    #causes 'expected integer but got "bold"' error on *nix systems.
    #.? config -font "[.? cget -font] bold"

    checkbutton .cb -text "!" -command [list Hint1 .c]

    #causes 'expected integer but got "bold"' error on *nix systems.
    #.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 https://wiki.tcl-lang.org/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

Comments

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

HJG Added a checkbutton to show hints.

AMG: Even with the hints turned on, I still don't understand how this can be possible!

Stu 2008-11-11 Commented-out code that causes expected integer but got "bold" error on *nix systems.

HJG 2016-01-31: I found some links about the origin of this kind of puzzle (as well as other nice puzzles), with history, and more amazing 'vanishing' pictures:

  • johnrausch.com
    • Vanishing Leprechaun, Vanishing Egg, Doggie Doo
  • archimedes-lab.org - Vanish Puzzles
    • Japanese Birds, Banker nightmare, Steam train, Disappearing Egg
  • theguardian.com - Vanishing Leprechaun
    • Vanishing Leprechaun, Magic Egg Puzzle (1880), La Mystérieuse (1907),
    • pin-up girls, Color-changing satellites, Swedish gnomes / apes, blue&red pens,
    • The Chinese vanish, Vanishing magician
  • How to draw such puzzles - Alex Bellos' blogpost