# -- PSEUDOCODE, DOES NOT WORK -- my ($dx, $dy); sub mobile_start { my $ev = $zinc->XEvent; ($dx, $dy) = $zinc->transform(1, $scaled_group, [$ev->x, $ev->y]); } sub mobile_move { my $ev = $zinc->XEvent; my ($tr_evx, $tr_evy) = $zinc->transform(1, $scaled_group, [$ev->x, $ev->y]); $zinc->translate($some_group, $tr_evx-$dx, $tr_evy-$dy); ($dx, $dy) = ($tr_evx, $tr_evy); }