💡 Generalize polygon systems
This commit is contained in:
		
							parent
							
								
									eb689f452f
								
							
						
					
					
						commit
						96b5475447
					
				|  | @ -12,6 +12,20 @@ const polygonTransforms = (vertices, frac) => vertices.map( | |||
|     ) | ||||
| ); | ||||
| 
 | ||||
| const regularVertices = count => { | ||||
|     var step = 2 * Math.PI / count; | ||||
|     var initial = -Math.atan(Math.sin(step) / (Math.cos(step) - 1)); | ||||
|     var result = []; | ||||
| 
 | ||||
|     for (var i = 0; i < count; i += 1) { | ||||
|         var current = step * i + initial; | ||||
| 
 | ||||
|         result.push([Math.cos(current) * 10, Math.sin(current) * 10]); | ||||
|     } | ||||
| 
 | ||||
|     return result; | ||||
| }; | ||||
| 
 | ||||
| export const barnsley = [[ | ||||
|     linearTransform(0, 0, 0, 0.16, 0, 0), | ||||
|     linearTransform(.85, .04, -.04, .85, 0, 1.6), | ||||
|  | @ -21,8 +35,7 @@ export const barnsley = [[ | |||
|     .01, .85, .07, .07 | ||||
| ]]; | ||||
| 
 | ||||
| export const sierpinski = [polygonTransforms([ | ||||
|     [.866, .5], | ||||
|     [-.866, .5], | ||||
|     [0, -1] | ||||
| ], 1 / 2), [1 / 3, 1 / 3, 1 / 3]]; | ||||
| export const sierpinski = [ | ||||
|     polygonTransforms(regularVertices(3), 1 / 2), | ||||
|     [1 / 3, 1 / 3, 1 / 3] | ||||
| ]; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue