Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Hopalong Fractals

DZone's Guide to

Hopalong Fractals

· Big Data Zone ·
Free Resource

Hortonworks Sandbox for HDP and HDF is your chance to get started on learning, developing, testing and trying out new features. Each download comes preconfigured with interactive tutorials, sample data and developments from the Apache community.

Have you ever wondered what happen if you pick a point (x 0,y 0) and compute hundreds of point using these equations? 


Well, you get a hopalong fractal. 
Let's plot this fractal using Pylab. The following function computes n points using the equations above:
 
from __future__ import division
from numpy import sqrt,power

def hopalong(x0,y0,n,a=-55,b=-1,c=-42):def update(x,y):
  x1 = y-x/abs(x)*sqrt(abs(b*x+c))
  y1 = a-x
  return x1,y1
 xx =[]
 yy =[]for _ in range(n):
  x0,y0 = update(x0,y0) 
  xx.append(x0)
  yy.append(y0)return xx,yy
and this snippet computes 40000 points starting from (-1,10):
 
from pylab import scatter,show, cm, axis
from numpy import array,mean
x =-1
y =10
n =40000
xx,yy = hopalong(x,y,n)
cr = sqrt(power(array(xx)-mean(xx),2)+power(array(yy)-mean(yy),2))
scatter(xx, yy, marker='.', c=cr/max(cr), 
        edgecolor='w', cmap=cm.Dark2, s=50)
axis('equal')
show()
Here we have one of the possible hopalong fractals: 


Varying the starting point and the values of a, b and c we have different fractals. Here are some of them: 

 
(x=-1,y=0,a=.1,b=5,c=1)


(x=-1,y=0,a=5,b=1,c=5)

Hortonworks Community Connection (HCC) is an online collaboration destination for developers, DevOps, customers and partners to get answers to questions, collaborate on technical articles and share code examples from GitHub.  Join the discussion.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}