total descendants::2 total children::2 4 ❤️ |
matematika tam je velmi jednoducha - pouziva sa stavova fyzika, tj, mam inicialnu poziciu daneho bodu, a smer ktorym ide, nasledne sa na zaklade tohto smeru a rychlosti sirenia iba prepocita nova poloha - s utlmom v materiale neratam - a ak to pride k boundaries tak sa iba flipne smer (zakon dopadu a odrazu). http://chladni.delezu.net/js/liquid.js var h = A[o];//vyberiem aktualny prvok var i = h.x;//ulozim si jeho aktualnu polohu var j = h.y; var a = h.a;//ulozim si jeho smerovy vektor var b = h.b; i += a * v;//vypocitam novu polohu, v=rychlost sirenia j += b * v; i > f ? ( i = f, a *= -1) : 0 > i && ( i = 0, a *= -1);//boundaries, v pripade odrazu otocim smerovy vektor j > p ? ( j = p, b *= -1) : 0 > j && ( j = 0, b *= -1); e.beginPath();//nakreslim bod e.arc(i, j, 2, 0, 2 * Math.PI, false); e.fillStyle = h.color; e.closePath(); e.fill(); h.x = i;//ulozim si aktualne hodnoty pre dalsi cyklus renderovania h.y = j; h.a = a; h.b = b; A[o] = h; |
| |||||||||||||||||||||||