Rule Design – Circular Paths

Because of high rate of occurrence of the circular structures in the park, it is reasonable to introduce an operator that breaks the region of the park along the circle.

A simple example is where a circle is placed somewhere randomly within the park with the minimal radius between the circle and the park boundary. Rays are then cast towards the boundary of the Park.

Rays can be cast towards the corners of the park, as can be seen in the last (4th) picture.

Termination condition for the rays are when the region boundary are met.

The center can be extruded into a custom shape – which can be in turn another region as can be seen in the first picture.

Example rules:

  • CentreRegionSize = 5
  • Region -> CastRays(CentrePoint [CentreRegionSize], CastToList) { CentreRegion } { CutRegion }
  • CentrePoint -> ScatterCircles(1 {15})
  • CastToList -> Corners(Region)
  • CentreRegion -> Fountain
  • CutRegion -> Grass