eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programminghidden code - na przyklad nanoboty
Ilość wypowiedzi w tym wątku: 2

  • 1. Data: 2011-12-18 09:42:39
    Temat: hidden code - na przyklad nanoboty
    Od: " " <f...@N...gazeta.pl>

    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/


  • 2. Data: 2011-12-18 09:54:07
    Temat: hidden code - na przyklad nanoboty
    Od: " " <f...@N...gazeta.pl>

    tak wogole to moge dodac ze ja wlasnie z tymi interfejsami
    do 'hidden' kode (czy cache code czy jak to nazwac) mam
    pewien problem, nie wiem jak to ladnie skonstruowac poznazywac
    i wydzielic - np zrobilem obsluge tablicy kolizyjnej
    i wystawilem jakis tam interfejs ale nie podoba mi sie
    to poki co - a taki zgrzyt rzutuje na jakosc dlaszego kodu


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: