Skip to content

Instantly share code, notes, and snippets.

@moigagoo
Created December 5, 2023 12:06
Show Gist options
  • Save moigagoo/d40a76beee5a62d2fec7679ebc033730 to your computer and use it in GitHub Desktop.
Save moigagoo/d40a76beee5a62d2fec7679ebc033730 to your computer and use it in GitHub Desktop.
- layer(diameter = 10):
for circleDiameter in 1..diameter:
let stepCount = circleDiameter * 3
left circleDiameter / 2
stepCount.times:
forward 1
turn 360 / stepCount
right circleDiameter / 2
- tree(height = 5, width = 3):
let
defaultColor = color
trunkHeight = height div 2
crownHeight = height - trunkHeight
up height - 1
height.times(stepNum):
if stepNum < crownHeight:
color = green
layer 1..width
if stepNum == crownHeight - 1:
color = black
down 1
color = defaultColor
- hill(diameter = 10, treeDensity = 3, treeMinHeight = 2, treeMaxHeight = 10, treeMinWidth = 2, treeMaxWidth = 10):
var
layerDiameter = diameter
layerNum = 1
down 1
while layerDiameter > 0:
up 1
layer(layerDiameter)
(layerDiameter div 5).times:
if treeDensity in 10:
turn(-180..180)
forward layerDiameter / 2
up 1
tree(treeMinHeight..treeMaxHeight, treeMinWidth..treeMaxWidth)
back layerDiameter / 2
layerDiameter -= layerNum
inc layerNum
down(layerNum-2)
- randomTerrain(hillCount = 10, minHillDiameter = 5, maxHillDiameter = 60, minDistance = 30, maxDistance = 60, treeDensity = 5, treeMinHeight = 2, treeMaxHeight = 30, treeMinWidth = 5, treeMaxWidth = 10):
hillCount.times(hillNum):
down 1
forward(minDistance..maxDistance)
up 1
hill(minHillDiameter..maxHillDiameter, treeDensity, treeMinHeight, treeMaxHeight, treeMinWidth, treeMaxWidth)
turn(-180..180)
speed = 100
randomTerrain(30)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment