Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
|
Forum - Polski Portal COLOBOTa |
|
|
Ruch falowy i spiralny |
Autor |
Wiadomość |
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 24-11-2010, 17:59 Ruch falowy i spiralny
|
|
|
Prezentuje efekt nudy i tego co wynioslem z ostatnich lekcji fizyki czyli zmierzanie do celu poruszajac sie do niego "fala" albo zataczajac wokol niego spirale.
Kod: | void object::wave(point c, float A, float len, float p, int sgn, float dist)
{
float dir, alfa = orient(c);
float x, y;
float k;
point dest;
k = 360/len;
x = distance2d(position, c);
while(distance2d(position, c) > dist)
{
dest = c;
dest.x += x*cos(alfa);
dest.y += x*sin(alfa);
y = sgn*A*sin(k*x);
dest.x += y*sin(alfa);
dest.y += y*cos(alfa);
while(distance2d(dest, position) > 2)
{
dir = direction(dest);
motor(1-dir/45, 1+dir/45);
}
x -= p;
produce(position, orientation, TNT, "");
}
}
void object::arch(point center, int n, float p, int sgn, float dist)
{
if(pow(sgn, 2) != 1 || p <= 0)
{
throw(1);
return;
}
float k = 360*n+orient(center);
float gamma = k;
float alfa;
float r = distance2d(center, position);
float a = r/gamma;
point dest;
float dir;
do
{
gamma -= p;
dest = center;
r = gamma*a;
alfa = k-sgn*(k-gamma);
dest.x += r*cos(alfa);
dest.y += r*sin(alfa);
while(distance2d(dest, position) > 2)
{
dir = direction(dest);
motor(1-dir/45, 1+dir/45);
}
produce(position, orientation, TNT, "");
}
while(distance2d(center, position) > dist);
}
float object::orient(point center)
{
float angle;
angle = orientation+direction(center)+180;
while(angle > 360) angle -= 360;
while(angle < 0) angle += 360;
return angle;
}
|
Krotkie objasnienie argumentow
c/center - pozycja docelowa.
n - ilosc okrazen w trybie "mniej wiecej"
p - dokladnosc
A - amplituda fali
l - dlugosc fali
sgn - kierunek (prawo/lewo)
dist - odleglosc od celu wymagana by zakonczyc funkcje
Moze sie komus przyda, ja uzylem tego do robienia programow dla os. |
_________________
|
|
|
|
|
Korniszon
Me Gusta: PPC
Twoja ulubiona misja: Spying...
Pomógł: 1 raz Wiek: 17 Dołączył: 01 Paź 2010 Posty: 108 Skąd: Stamtąd, gdzie ty.
|
Wysłany: 10-12-2010, 17:43
|
|
|
A gdzie funkcja główna? |
_________________ Nazywajcie mnie KL582 (nick w Minecraft) |
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
|
|
|
|
Korniszon
Me Gusta: PPC
Twoja ulubiona misja: Spying...
Pomógł: 1 raz Wiek: 17 Dołączył: 01 Paź 2010 Posty: 108 Skąd: Stamtąd, gdzie ty.
|
Wysłany: 11-12-2010, 08:29
|
|
|
@up: Dzięki |
_________________ Nazywajcie mnie KL582 (nick w Minecraft) |
|
|
|
|
|
Nie możesz pisać nowych tematów Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Wersja do druku
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|