Temat: Processing i prośba o wyjaśnienie matematyczne
Mam program: http://haker.b7.pl/0pobieranie/processing/sketch_2017_01_14_popsute_kuleczki.zip
Kuleczka kuleczka[]; int ileKuleczek; void setup() { size(800, 600); ileKuleczek = 3; kuleczka = new Kuleczka[ileKuleczek]; //0-9 for (int i = 0; i<ileKuleczek; i++) { kuleczka[i] = new Kuleczka(i, (int)random( width ), 500, (int)random( 100 ) ); } } void keyPressed() { } void draw() { background( 0 ); for (int i = 0; i<ileKuleczek; i++) { kuleczka[i].narysuj(); kuleczka[i].up(); } }
oraz
class Kuleczka { // właściwości int x, y; int r; int nazwa; // Konstruktor Kuleczka( int nazwas, int xs, int ys, int rs ) { this.nazwa = nazwas; this.x = xs; this.y = ys; this.r = rs; } // metody void narysuj() { ellipse( this.x, this.y, r, r ); } void up() { if ( this.y > 0 - this.r/2 ) this.y--; else { print(nazwa, ": " , this.y, " -> "); this.y = height + int(this.r/2.0); println(this.y); } } } //koniec klasy Kuleczka
I zachowuje się tak: https://www.youtube.com/watch?v=8AXZPMht5Ts
choć kuleczki zawsze dostają te same położenie. Ja wiem, że gdzieś mi matematycznie brakuje wytłumaczenia, ale może jakaś matematyczna głowa mi wyjaśni czemu się rozjeżdżają oraz jak zrobić, żeby nie.
To znaczy – pierwszy przebieg rozumiem, muszą się rozjechać, ale potem nie rozumiem.