Algoritm

Två olika algoritmer används här:

Svansens huvud rör sig rakt mot flugan, alltid lika långt.
Riktningen fås med liksidiga trianglar:
    dx = fluga.x - huvud.x
    dy = fluga.y - huvud.y
    len= avstånd mellan fluga och huvud

    huvud.x ökas med dx/len
    huvud.y ökas med dy/len
        
Efterföljande svansdelar rör sig på samma sätt mot den tidigare svansdelen.

Flugan styrs av gravitation, där en stark gravitationskälla placerats mitt i skärmen och fyra svagare källor en bit ut mot hörnen.

Flugan har inte bara en position (x,y) utan också en hastighet (vx,vy).

Nu räknas avstånd mellan flugan och gravitationskällan och (dx/len,dy/len) ger riktningen in mot källan. Storleken på accelerationen är beroende av avståndet och källans gravitationskonstant:

    dx = fluga.x - källa.x
    dy = fluga.y - källa.y
    len= avstånd mellan fluga och källa

    fluga.vx ökas med k* (dx/len) / len
    fluga.vy ökas med k* (dy/len) / len
        

(Verklig gravitation avtar med kvadraten på avståndet, men ett linjärt avtagande som används här ger betydligt lugnare rörelser).