Pentagram: Difference between revisions

Content added Content deleted
(=={{header|Racket}}== implementation added)
(Tcl implementation added)
Line 123: Line 123:


%%EOF</lang>
%%EOF</lang>

=={{header|Tcl}}==
This implementation draws a simple pentagon on a [http://wiki.tcl.tk/1415 Canvas] widget.
<lang Tcl>
package require Tk
set pi [expr 4*atan(1)]

pack [canvas .c] -expand yes -fill both ;# create the canvas

update ;# draw everything so the dimensions are accurate

set w [winfo width .c] ;# calculate appropriate dimensions
set h [winfo height .c]
set r [expr {min($w,$h) * 0.45}]

set points [lmap n {0 1 2 3 4 5} {
set n [expr {$n * 2}]
set y [expr {sin($pi * 2 * $n / 5) * $r + $h / 2}]
set x [expr {cos($pi * 2 * $n / 5) * $r + $w / 2}]
list $x $y
}]
set points [concat {*}$points] ;# flatten the list

puts [.c create line $points]

;# a fun reader exercise is to make the shape respond to mouse events,
;# or animate it!
</lang>


=={{header|Racket}}==
=={{header|Racket}}==