obj method canvaseditor rotateMode {{scaling no}} { set canvas [my canvas] $self selected dots storeXY $self selected calcCenter $self selected blink off $self snapMode on # set min [min {*}[$self dots -selected -gravity cget -x]] set max [max {*}[$self dots -selected -gravity cget -x]] set xC [* 0.5 [+ $min $max]] # set min [min {*}[$self dots -selected -gravity cget -y]] set max [max {*}[$self dots -selected -gravity cget -y]] set yC [* 0.5 [+ $min $max]] set nDot [$self nearestDot -selected -end] # $self pointerToDot $nDot $self memory currentDot $nDot $self memory transformation "rotate $scaling" # set dx [- $xC [$nDot cget -x]] set dy [- $yC [$nDot cget -y]] set distance [hypot $dx $dy] set dPhi [atan2 $dx $dy] # $self memory before [$self undoRedoCode] # $self basicBindings no after idle [list bind $canvas <Motion> [subst -nocommand { $self rotateSelection\ [$self canvasx %x] [$self canvasy %y]\ $xC $yC $distance $dPhi $scaling }]] bind $canvas <<Click>> " $self canvas delete center $self finishTransform " }
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z