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.