BLT 패키지는 다양한 graph, plot 등을 그릴 수 있는 위젯들을 제공합니다. 그중 barchart라는 위젯이 있는데, barchart는 line, polygon, bitmap, text 등을 지원하고 있습니다. 하지만 차트에 circle을 그려야 하는 상황이 오고 말았는데요. 어차피 circle은 연속된 라인들로 이루어진 것에 불과하니 line으로 구현해 보았습니다. 아래는 주어진 위치와 반지름의 길이를 기본으로 연속된 라인을 만들어 circle을 구현해 줍니다.
proc GetCircleCoords { x y radius } {
# 100정다각형
set coords [list]
for {set i 0} {$i < 100} {incr i} {
set angle [expr (3.141592*2)/100*$i]
set px [expr $x+(cos($angle)*$radius)]
set py [expr $y+(sin($angle)*$radius)]
lappend coords $px $py
}
lappend coords [lindex $coords 0] [lindex $coords 1]
return $coords
}
....
$graph marker create line \
-coords [GetCircleCoords 10.0 10.0 1.0] \
-linewidth 1 -outline red]
....
'Tcl & Tk > 팁 (Tip)' 카테고리의 다른 글
NORMDIST, TRUNC, ROUND 함수 구현 (0) | 2025.03.26 |
---|---|
gets vs read 대용량 파일 테스트 (0) | 2025.03.26 |
반복문 별 소요 시간 테스트 (0) | 2025.03.26 |
그라디언트 구현하기 (0) | 2025.03.26 |
Tcl로 구현한 텔넷 서버 (0) | 2025.03.26 |