Zum Inhalt springen

# Kurs:KTurtle/Code-Rubrik/Strichlinien

Dieser Code zeichnet 2 Sterne mit gestrichelten Linien

## Gestrichelte Linien (en)

```# distance:
# - draws nothing
# - returns distance from current position to point (\$x, \$y)
learn distance \$x, \$y {
\$dx = \$x - getx
\$dy = \$y - gety
return sqrt (\$dx * \$dx + \$dy * \$dy)
}

# degreeto:
# - draws nothing
# - returns degree between direction zero and the line through current position and point (\$x, \$y)
learn degreeto \$x, \$y {
\$dx = \$x - getx
\$dy = \$y - gety
if (\$dx == 0) and (\$dy == 0){
return
}
\$deg = (arccos ((0 - \$dy) / (distance \$x, \$y)))
if \$x < getx {
\$deg = 0 - \$deg
}

return \$deg
}

# face:
# - turns the turtle towards point (\$x, \$y)
# - returns nothing
learn face \$x, \$y {
direction degreeto \$x, \$y
}

# dasehdlineto:
# - turns the turtle towards point (\$x, \$y) and then moves towards that point, drawing a dashed line
# - returns nothing
learn dashedlineto \$x, \$y, \$l {
face \$x, \$y
\$dist = distance \$x, \$y
while \$dist > 2 * \$l {
pendown
forward \$l
penup
forward \$l
\$dist = (\$dist - (2 * \$l))
}
pendown
forward \$l
\$dist = \$dist - \$l
if \$dist > 0 {
penup
forward \$dist
pendown
}
}

# star:
# - draws a \$n-edged star with outer/inner radius of \$r1/\$r2 respectively, around the current position. Inner edges are offset to outer edges by \$o degrees. Pen is down afterwards.
# - returns nothing
learn dashedstar \$n, \$r1, \$r2, \$o, \$l {
penup
\$step = 360 / \$n
\$x0 = getx
\$y0 = gety
backward 10
\$angle = degreeto \$x0, \$y0
forward 10
forward \$r1
pendown

repeat \$n {
\$angle = \$angle + (\$step / 2)
dashedlineto (\$r2 * (sin (\$angle + \$o)) + \$x0), (\$r2 * (0 - cos (\$angle + \$o)) + \$y0), \$l
\$angle = \$angle + (\$step / 2)
dashedlineto (\$r1 * (sin \$angle) + \$x0), (\$r1 * (0 - cos \$angle) + \$y0) , \$l
}

direction \$angle
go \$x0, \$y0
}

#########

# example picture:
reset
canvascolor 250, 250, 250
pencolor 128, 0, 0
penwidth 4
dashedstar 5, 150, 75, 0, 10
turnright 36
penwidth 2
dashedstar 5, 70, 40, 0, 5
turnright 144
```