obj method canvaseditor align how {
set minX Inf
set minY Inf
set maxX -Inf
set maxY -Inf
foreach bb [$self selected bbox] {
foreach {x0 y0 x1 y1} $bb {
set minX [min $minX $x0]
set minY [min $minY $y0]
set maxX [max $maxX $x1]
set maxY [max $maxY $y1]
}
}
#
set centerX [/ [+ $minX $maxX] 2.0]
set centerY [/ [+ $minY $maxY] 2.0]
#
foreach obj [$self selected] {
lassign [$obj bbox] x0 y0 x1 y1
set cx [/ [+ $x1 $x0] 2.0]
set cy [/ [+ $y1 $y0] 2.0]
#
set dx 0
set dy 0
switch -exact -- $how {
left {
set dx [- $minX $x0]
}
center {
set dx [- $centerX $cx]
}
right {
set dx [- $maxX $x1]
}
top {
set dy [- $minY $y0]
}
middle {
set dy [- $centerY $cy]
}
bottom {
set dy [- $maxY $y1]
}
}
$obj dots storeXY
$obj dots transform\
moveHorizontal [/ $dx [my zoom]]\
moveVertical [/ $dy [my zoom]]
$obj draw coords
}
}
© Wolf-Dieter Busch | Home | Sitemap | Urheber | A-Z