začal som pracovať s neuronovymi sietami a vyskytol sa problem:
Moja app je okno, v ktorom behajú tanky, kt. zbierajú miny.
Neuronová sieť je veľmi jednoduchá vstupujú do nej 4 inputy: x a y najbližšej míny a tam kde sa tank pozerá to dostanem takto:
Kód: Vybrať všetko
double lookAtX =((-sin(currentRotation ) * (- speed)));
double lookAtY =((cos(currentRotation) * (-speed)));Kód: Vybrať všetko
double cRotation = output[0] - output[1];a potom k aktuálnej rotácii pripočítam tu novú.
A novú pozíciu dostanem takto:
Kód: Vybrať všetko
mItem->setX(mItem->x()+(-sin(currentRotation / 60 ) * (-speed)));
mItem->setY(mItem->y()+(cos(currentRotation / 60) * (-speed)));Program funguje ale tank stálle chodí do kruhu aj pri 100 generácii netočí sa na mieste ale robí veľke alebo mnesšie kruhy.
Ako vidim debug tak žiadny tank nemení znamienko rotácie buď ide stále do + až po 360 alebo ide stále do minusu až do -360 keď sa dostanú na +/- 360 tak ich hodím späť na 0.
Pls help