Každá z bublin se pohybuje po kružnici, která mění náhodně střed otáčení.
Nový střed otáčení se vypočítá tak, že určím rovnici přímky mezi starým středem otáčení a bodem na kružnici.
Po dosazení 2 násobné vzdálenosti do rovnice dostávám nový střed otáčení.
Následně ještě změním směr pohybu po kružnici.
Toť varianta a)
Uvažoval jsem ještě o varientě b), která by byla ještě více chaotičtějčí, kde by se měnil i poloměr otáčení, ale na realizaci nedošlo.
K samotnému algoritmu.
Mám souřadnice středu otáčení a bod na kružnici.
x1 = RotacniBodX; // bod A
y1 = RotacniBodY;
x2 = PoziceX; // bod B
y2 = PoziceY;
vypočítám rovnici přímky procházející těmito body.
odečtu od sebe jednotlivé body B-A
x3 = x2 - x1;
y3 = y2 - y1;
a dosadím do rovnice přímky
y = b + a * x
vytknu před závorku
a = y3 / x3;
b = y1 - a * x1;
nové souřadnice otáčení. Jednou tak daleko jako je střed staré kružnice a bod na přímce.
y = b + a * ((x2 - x1) * 2 + x1);
--- (((x2 - x1) * 2 + x1) - dvounásobná vzdálenost co je vzálenost středu starého otáčení a bodu na kružnici
x = (y - b) / a; - jen dopočítání nové X souřadnice podle vzorce.
© Bura.cz