Measuring Distances and Angles

pencilcode.net
r = 120
jumpto -0.1 * r, r / 2
label 'fd 100',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
home()
jumpto r / 2, 0
pen blue, 3
fd 100
r = 120
jumpto 0, -r
pen gray
fd r * 2
pen black, 2
for d in [0..r-10] by 10
  jumpto 0, d
  turnto -90
  fd (if (d % 20) then 5 else 35)
  turnto 0
  jumpto (if (d % 20) then -20 else -50), d + 1
  label d
  jumpto 0, -d
  turnto 90
  fd (if (d % 20) then 5 else 35)
  turnto 0
  jumpto (if (d % 20) then 20 else 50), -d + 1
  label d
pen null
jumpto -0.7 * r, r / 2
label 'fd',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
jumpto 0.7 * r, -r / 2
label 'bk',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
home()
r = 120
jumpto 0.1 * r, -r / 2
label 'bk 100',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
jumpto -r / 2, 0
pen blue, 3
bk 100

await loadscript '/lib/angles.cs', defer()
r = 120
jumpto -r/6, -r / 3
label 'lt 30',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
jumpto r/3, -r
pen red, 3
fd r; lt 30; fd r; bk r
r = 120
pen silver
for t in [0..165] by 15
  rt t; jump 0, 0.2*r; fd 0.8 * r; jump 0, -r; lt t
  lt t; jump 0, 0.2*r; fd 0.8 * r; jump 0, -r; rt t
jumpto 0, -r
pen red, 3
fd r
jump 0, r
pen black, 3
deg = 0
for [1..4]
  for len in [10, 5, 8, 5, 8, 5]
    fd len; bk len
    jump 0, 20; label min(deg, 360 - deg); jump 0, -20
    deg += 15
    rt 90; rt 15, r; lt 90
pen null
for turn in [rt, lt]
  jumpto 0, r * 1.35
  turn 90; turn 30, r * 1.35
  pen black; turn 30, r * 1.35
  pen path; fd 2; turn 150
  for [1..3]
    fd r * 0.1
    turn 120
  fill black
  pen null
  home()
jumpto r * 1.1, r * 1.1
label 'rt',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
jumpto -r * 1.1, r * 1.1
label 'lt',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
home()
await loadscript '/lib/angles.cs', defer()
r = 120
jumpto r/6, -r / 3
label 'rt 30',
  fontFamily: 'Source Code Pro'
  fontSize: '200%'
jumpto -r/3, -r
pen red, 3
fd r; rt 30; fd r; bk r


pen gold
fd 100
rt 120
fd 100
rt 120
fd 100
rt 120


pen purple
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
pen green
fd 50
lt 45
fd 50
bk 50
rt 90
fd 50