-
Data: 2011-12-18 09:42:39
Temat: hidden code - na przyklad nanoboty
Od: " " <f...@N...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]natknalem sie na pewna kwestie powiedzmy wlasnie z tematow
architekturyzacyjnych (choc nie wiem czy to najbardziej
adekwatne slowo)
powiedzmy ze mam kawalek kodu realizujacy dzialania
1-pikselowych nanobotow w 2d: ogolnie zaczyna sie to
(w sensie sledzenia toku wykonania) od dolu i leci w
gore -> w zwiazku z tym prosze skoczyc na sam dol i
czytac akapitami od dolu do gory, bedzie wygodniej:
/////
(fir kenobi)
W sumie to jest pointa tych rozwazan bo mz dochodzi
sie tutaj do pojecia 'hidden code' (lub czegos takiego
bo wymaga to przemyslenia), okazuje sie kod ze sekcja
pierwszej zaczyn anabierac sklonnosci do nabierania
nowej postaci kodu - ktory rozni sie od normalnego
'jawnego' i fizykalnego kodu sekcji drugiej i trzeciej
:)
Podobnie tylko w sposob bardziej skomplikowany sprawa
ma sie z kwestia 'internalnegj' planszety kolizyjnej
'internalizowania' pol x i y i wystawienia wylacznego
interfejsu do przesuwania nano w przestrzeni
to normalizujKat to przyciecie kata do zakresu 0.0-360.0
void nanoSetAngle(int i, float angle)
{
normalizujKat(&angle);
nano[i].angle = angle;
nano[i].dirx = cos(nano[i].angle*degree360);
nano[i].diry = sin(nano[i].angle*degree360);
}
Konkretnie u mnie jest to cacheowanie skladowych
predkosci nanobota, normalnie nanobot ma wspolrzedne
x y i angle (oraz v itd) - gdzie angle (moglem znalezc
lepsza nazwe moze a po praostu) jest katem kierunku ruchu
nanobota, przy liczeniu kazdego kroku ruchu trzeba
policzyc skladowa vx i vy przy pomocy sinusa i cosinusa,
z praktycznych powodow wyraznie wydajniej jest
liczyc to nie co krok a tylko przy zmianie kata,
innymi slowy scacheowac dwa 'internalne' floaty dirx i diry
w strukturze Nano i uzywac dirx i diry natomiast
wystawic Nano wylaczny interfejs do zmiany kata, cos
w stylu
Normalnie jak mowie sa to raczej same struktury ale
w zwiazku z istatna potrzeba wprowadzenia struktury
informacji kolizyjnych sekcja ta nieco sie rozbudowala.
Jest zreszta jeszcze jeden przyczynek tego samoego
rodzaju jak rozbudowa przez obsluge tablicy/planszy
kolizyjnej
Jeszcze uwaga czemu taki podzial gora i dol - wiaze on
sie jak juz zreszta napisalem z kolejnoscia poziomow
wywolan, np srednia sekcja jest 'zasilana' z dolnej
natomiast,sama wywoluje i uzywa, operuje, na 'fragmentach',
'koncowkach' z sekcji gornej
Zasadniczo to o czym chcialem glownie napisac wiaze sie
z pierwszą sekcja tj najwyzsza w pliku, normalnie nie
ma tam chyba za bardzo nic poza samym typem Nano (strukturą)
i kontenerem na nano (czyli tablica nano[]), niestety
w zwiazku m.in. z kwestiami opisywanymi w watku "Wada
spacjali kolizyjnej" pojawilo sie cos nowego
W metodzie move() i sredniej sekcji kodu bylaby zawarta
glowna funkconalnosc gry czy symulacji - nad tym trzebaby
sie najbardziej nabiedzic - ale tez powtarzam byc moze
wygodniej byloby ta posrednia sekcje odkreskowac
komentarzem od eskcji nizszej i wyzszej, co ew ulatwiloby
skupienie sie na robocie
Sam ten kod ponizej (niejako 'root' czyli rozdzielnik
dzialan mialbym chec nazwac 'niską sekcją' albo coś
takiego, chodzi o to ze np kod powyzej czyli opisywana
metoda move() nalezy juz do innej sekcji - sredniej,
a opisywane jeszce wyzej 'koncowki' do ew wyzszej
sekcji- taki podzial pozwala sie w pewnym sensie
lepiej poorientowac
void updateNanoboty()
{
initNano();
for(int i=0; i<3;i++) //przemnoznik dla fizyki
moveNano();
drawNano();
}
ogolnie zaczyna sie to od metody update() spod ktorej
wywolywane sa init() (na fladze tylko raz) draw() i move(),
galezie draw() i init sa bardzo proste i szybko sie koncza,
to co ciekawe zawarte jest ew w metodzie move()
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-26 Re: Recykling akumulatorów
- 2025-06-26 Re: Recykling akumulatorów
- 2025-06-26 Inwentaryzacja budynku
- 2025-06-26 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-06-26 Warszawa => Strategic Account Manager <=
- 2025-06-26 Warszawa => Specjalista rekrutacji IT <=
- 2025-06-26 Re: Zatonął kolejny statek wiozący 800 palnych elektryków
- 2025-06-26 Warszawa => C Programmer <=
- 2025-06-26 Karty mBąka.
- 2025-06-26 Traktorek do trawy na prund
- 2025-06-26 Warszawa => Specjalista/tka ds. Administracji <=
- 2025-06-25 klawiatura podświetlana zasilana z sieci
- 2025-06-25 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-06-25 Warszawa => Konsultant Wiodący SAP PP <=
- 2025-06-25 Warszawa => Leading SAP PP Consultant <=