-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: " " <f...@N...gazeta.pl>
Newsgroups: pl.comp.programming
Subject: hidden code - na przyklad nanoboty
Date: Sun, 18 Dec 2011 09:42:39 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 123
Message-ID: <jckcif$i54$1@inews.gazeta.pl>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1324201359 18596 172.20.26.239 (18 Dec 2011 09:42:39 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sun, 18 Dec 2011 09:42:39 +0000 (UTC)
X-User: fir
X-Forwarded-For: 91.94.7.14
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:194235
[ ukryj 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
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-06 Jeździ, skręca, hamuje
- 2025-01-06 Białystok => System Architect (Java background) <=
- 2025-01-06 Gliwice => Specjalista ds. public relations <=
- 2025-01-06 Białystok => Solution Architect (Java background) <=
- 2025-01-06 Zielona GĂłra => Konsultant WdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg