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]
- }