Posted to tcl by emiliano at Thu Dec 25 16:36:55 GMT 2008view raw
- 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]
 - }