sierpensky is fun

If you have a design you're proud of, share the cfdg file here. It's also a good place to ask for feedback and collaborate.

Moderators: MtnViewJohn, chris, mtnviewmark

Post Reply
globalreset
Posts: 4
Joined: Fri May 06, 2005 4:07 pm

sierpensky is fun

Post by globalreset »

Code: Select all

startshape meta_meta_meta_meta_triangle 

include i_polygon.cfdg

rule meta_meta_meta_meta_meta_triangle {
   meta_meta_meta_meta_triangle { y 7.68 } 
   meta_meta_meta_meta_triangle { x 8 y -6.4 }
   meta_meta_meta_meta_triangle { x -8 y -6.4 }
}

rule meta_meta_meta_meta_triangle {
   meta_meta_meta_triangle { y 3.84 } 
   meta_meta_meta_triangle { x 4 y -3.2 }
   meta_meta_meta_triangle { x -4 y -3.2 }
}

rule meta_meta_meta_triangle {
   meta_meta_triangle { y 1.92 } 
   meta_meta_triangle { x 2 y -1.6 }
   meta_meta_triangle { x -2 y -1.6 }
}

rule meta_meta_triangle {
   meta_triangle { y .96 } 
   meta_triangle { x 1 y -.8 }
   meta_triangle { x -1 y -.8 }
}

rule meta_triangle {
   triangle { y .48 } 
   triangle { x .5 y -.4 }
   triangle { x -.5 y -.4 }
}

rule triangle {
   polygon6sided { s .55 y .22 }
   polygon6sided { s .55 y -.22 x -.25}
   polygon6sided { s .55 y -.22 x .25 }
}
Image

User avatar
mtnviewmark
Site Admin
Posts: 81
Joined: Wed May 04, 2005 12:46 pm
Location: Mountain View, CA
Contact:

Post by mtnviewmark »

You might try this construction that is recursive and shows how it fills the triangle:

Code: Select all

startshape Top

rule Top {
	Sierpensky { r -13.5 }
}

rule Sierpensky {
	Shape { }
	Sierpensky { s 0.5
		y -1 x 0  }
	Sierpensky {  s 0.5
		y 0.5 x -0.866025  }
	Sierpensky { s 0.5
		y 0.5 x 0.866025  }
}

# comment out all but one of these rules for Shape:
rule Shape { CIRCLE { } }
#rule Shape { Triangle { s 0.5 } }
#rule Shape { Triangle { } }
	// this last one fills the image

rule Triangle { 
	Arm { r 0 }
	Arm { r 120 }
	Arm { r -120 }
} 

rule Arm {
	CIRCLE { }
	Arm { y 0.1 s 0.9 }
}
I'm the "m" in "mtree.cfdg"

globalreset
Posts: 4
Joined: Fri May 06, 2005 4:07 pm

Post by globalreset »

Wow, very nice. Thanks for the cfdg!

globalreset
Posts: 4
Joined: Fri May 06, 2005 4:07 pm

Post by globalreset »

At first, I tried to do mine recursively but couldn't up with the right formulation. I see from yours how to do it now. I was building the border triangles, in a sense. If you start with 3 trianges, stacked in a triangle fashion, I was trying to figure out how to stack 3 of those recursively in a terminating fashion. But your formulation uses the space between those triangles (the newly formed anti-triangle?)... which converges nicely.

Thanks again!

Post Reply