# Fractals/Hopalong

< Fractals

Hopalong orbit-fractals.

# Name edit

- the Martin-Attractors: were discovered by Barry Martin
^{[1]} - Hopalong: an image is built of points hopping along on an elliptical path starting from one point in the center.

# History edit

- Hopalong orbits were discovered by Barry Martin from the Aston University, Birmingham.
- A.K. Dewdney presented the Hopalongs in the magazine "Scientific American" (1986)

# Algorithm edit

An image is calculated using three parameters: a, b and c.

Where

- a, b and c are constants which, by default are initialised to -55, -1 and -42 respectively
^{[2]} - ABS is the absolute value function
- SIGN(x) is the same as x/ABS(x). If x>0 then SIGN(x) = 1, if x<0 then SIGN(x) = −1 and if x = 0 then the result of SIGN(x) is zero, too.
- The color is changed every 2000 dots, until the 10 predefined colors are used, then the colors are repeated.

Devaney's program

INPUT num INPUT a, b, c x = 0 y = 0 PLOT(x, y) FOR i = 1 TO num xx = y - SIGN(x) * [ABS(b*x - c)]^0.5 yy = a - x x = xx y = yy

# Implementations edit

From Barry Martin, here with code for two variants from François Pacull:

```
@jit(nopython=True)
def Hopalong1(x, y, a, b, c, *o):
return y - sqrt(fabs(b * x - c)) * np.sign(x), \
a - x
@jit(nopython=True)
def Hopalong2(x, y, a, b, c, *o):
return y - 1.0 - sqrt(fabs(b * x - 1.0 - c)) * np.sign(x - 1.0), \
a - x - 1.0
plot(Hopalong1)
```

OpenProcessing code by Naoki Tsutae:

```
x=0
a=2,b=1,c=0
t=0
setup=_=>{
createCanvas(800,800)
background(0)
noStroke()
}
draw=_=>{
t+=1
translate(width*.45,height*.45)
y=sin(t/60)
for(i=3e3;i--;){
newx=y-1-sqrt(abs(b*x-1-c))*Math.sign(x-1)
newy=a-x-1
x=newx
y=newy
fill(map(sin(x+t),-1,1,0,256),map(sin(y+t),-1,1,0,256),map(sin(x+y+t),-1,1,0,256))
rect(x*100,y*100,2,2)
}
}
```