Posted to tcl by emiliano at Thu Dec 25 16:36:55 GMT 2008view pretty
proc getArcEndpoints {canvas arc} { lassign [$canvas coords $arc] Xi Yi Xf Yf set width [expr {$Xf - $Xi}] set height [expr {$Yf - $Yi}] set centX [expr {($Xf + $Xi)/2}] set centY [expr {($Yf + $Yi)/2}] set startA [$canvas itemcget $arc -start] set endA [expr {$startA + [$canvas itemcget $arc -extent]}] set dtor [expr {4*atan(1)/180.0}] set startX [expr {$centX + cos ($startA * $dtor) * $width / 2}] set startY [expr {$centY - sin ($startA * $dtor) * $height / 2}] set endX [expr {$centX + cos ($endA * $dtor) * $width / 2}] set endY [expr {$centY - sin ($endA * $dtor) * $height / 2}] return [list $startX $startY $endX $endY] }