sierpinski_hexagon_maze: sierpinski_hexagon_maze .

View source: R/sierpinski_hexagon_maze.r

sierpinski_hexagon_mazeR Documentation

sierpinski_hexagon_maze .

Description

Draws a Sierpinski hexagon maze.

Usage

sierpinski_hexagon_maze(depth, unit_len, clockwise = TRUE,
  start_from = c("midpoint", "corner"), style = c("sierpinski",
  "four_triangles", "hexaflake", "reverse_flake", "outer_flake", "dragon_left",
  "dragon_right", "dragon_leftright", "dragon_rightleft"), color1 = "black",
  color2 = "gray40", draw_boundary = FALSE, num_boundary_holes = 2,
  boundary_lines = TRUE, boundary_holes = NULL,
  boundary_hole_color = NULL, boundary_hole_locations = NULL,
  boundary_hole_arrows = FALSE, end_side = 1)

Arguments

depth

the depth of recursion. This controls the side length. Should be an integer.

unit_len

the unit length in graph coordinates. This controls the width of the ‘holes’ in the boundary lines and generally controls the spacing of mazes.

clockwise

whether to draw clockwise.

start_from

whether to start from the midpoint of the first side of a maze, or from the corner facing the first side.

style

controls the style of Sierpinski triangle. The following are recognized:

sierpinski

The traditional Sierpinski Triangle of four triangles with the center in the minor color, color2.

hexaflake

Looks more like a hexaflake in a triangle.

reverse_flake

Like a hexaflake, but the colors reverse in recursive calls.

outer_flake

Like a hexaflake, but only for the outermost ring.

dragon_left

Looks like a dragon fractal.

dragon_right

Looks like a dragon fractal.

dragon_leftright

Looks like a dragon fractal.

dragon_rightleft

Looks like a dragon fractal.

color1

The dominant color of the maze.

color2

The negative color of the maze.

draw_boundary

a boolean indicating whether a final boundary shall be drawn around the maze.

num_boundary_holes

the number of boundary sides which should be randomly selected to have holes. Note that the boundary_holes parameter takes precedence.

boundary_lines

indicates which of the sides of the maze shall have drawn boundary lines. Can be a logical array indicating which sides shall have lines, or a numeric array, giving the index of sides that shall have lines.

boundary_holes

an array indicating which of the boundary lines have holes. If NULL, then boundary holes are randomly selected by the num_boundary_holes parameter. If numeric, indicates which sides of the maze shall have holes. If a boolean array, indicates which of the sides shall have holes. These forms are recycled if needed. See holey_path. Note that if no line is drawn, no hole can be drawn either.

boundary_hole_color

the color of boundary holes. A value of NULL indicates no colored holes. See holey_path for more details. Can be an array of colors, or colors and the value 'clear', which stands in for NULL to indicate no filled hole to be drawn.

boundary_hole_locations

the ‘locations’ of the boundary holes within each boundary segment. A value of NULL indicates the code may randomly choose, as is the default. May be a numeric array. A positive value up to the side length is interpreted as the location to place the boundary hole. A negative value is interpreted as counting down from the side length plus 1. A value of zero corresponds to allowing the code to pick the location within a segment. A value of NA may cause an error.

boundary_hole_arrows

a boolean or boolean array indicating whether to draw perpendicular double arrows at the boundary holes, as a visual guide. These can be useful for locating the entry and exit points of a maze.

end_side

the number of the side to end on. A value of 1 corresponds to the starting side, while higher numbers correspond to the drawn side of the figure in the canonical order (that is, the order induced by the clockwise parameter).

Details

Recursively draw a Sierpinski hexagon maze. The sides of the hexagon consist of 2^{depth} pieces of length unit_len. The hexagon is drawn as a ring of six Sierpinski trapezoids in a ring around a Sierpinski hexagon of a smaller size. The ‘inner’ and ‘outer’ pieces of mazes drawn in different colors. The

Value

nothing; the function is called for side effects only, though in the future this might return information about the drawn boundary of the shape.

Author(s)

Steven E. Pav shabbychef@gmail.com

See Also

eq_triangle_maze, hexaflake_maze, sierpinski_carpet_maze, sierpinski_trapezoid_maze.

Examples

library(TurtleGraphics)
turtle_init(800,800,mode='clip')
turtle_up()
turtle_hide()
turtle_do({
	turtle_setpos(50,400)
	turtle_setangle(30)
	sierpinski_hexagon_maze(depth=4,unit_len=20,boundary_lines=TRUE,
													draw_boundary=TRUE,boundary_holes=c(1,3),
													start_from='corner',
													color1='black',color2='green',
													style='sierpinski')
})


shabbychef/mazealls documentation built on Oct. 18, 2023, 8:27 p.m.