Thread View: pl.comp.lang.pascal
15 messages
15 total messages
Started by "Kowal"
Tue, 15 Dec 1998 00:00
Wypelnianie przestrzeni i obracanie bitmap
Author: "Kowal"
Date: Tue, 15 Dec 1998 00:00
Date: Tue, 15 Dec 1998 00:00
25 lines
1088 bytes
1088 bytes
Mam maly problem. Pisze gre (cos podobnego do Critikal Mass) i potrzebuje pomocy. Kazdy statek moze tam leciec pod dowolnym katem. Nie mam najmniejszej ochoty bawienia sie 360 bitmapami (statkami pod katem), ale nie mam dobrej medoty na obrocenie obrazka. Probowalem uzycwzoru x := r * (cos(alfa)) i y := r * (sin(alfa)); ale po obroceniu obrazka o 360 stopni nie wygladal on juz tak jak powinien. Moze wiec ktos z was zna lepszy sposob na obrocenie obrazka. Do glowy przyszedl mi tez inny pomysl. Moglbym tak jak w Crtical Mass rysowac statki z trojkatow, kolek, kwadratow i jeszcze czegos tam, ale zapomnialem czego :-). Ale znowu jest problem. Do tego musialbym miec sposob na wypelnienie zamknietej powierzchni (z gory mowie, ze nie uzywam pascalowego modulu Graph, bo jest on strasznie wolny; uzywam bezposredno pamieci ekrnu). Wiem, ze musi byc na to jakis sposob, bo przeciez sa procedury ktore to robia. Najlepiej by bylo gdyby algorytm wypelniania nie wymagal rogow obszaru (bo jak zapelnic kolo?), ale kazdy sie przyda. Blagam pomozcie... Kowal ( kowal2@friko6.onet.pl )
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: Maciej Sinilo
Date: Tue, 15 Dec 1998 00:00
Date: Tue, 15 Dec 1998 00:00
28 lines
1304 bytes
1304 bytes
Kowal wrote: > > Mam maly problem. Pisze gre (cos podobnego do Critikal Mass) i potrzebuje > pomocy. Kazdy statek moze tam leciec pod dowolnym katem. Nie mam > najmniejszej ochoty bawienia sie 360 bitmapami (statkami pod katem), ale nie > mam dobrej medoty na obrocenie obrazka. Probowalem uzycwzoru x := r * > (cos(alfa)) i y := r * (sin(alfa)); ale po obroceniu obrazka o 360 stopni > nie wygladal on juz tak jak powinien. Moze wiec ktos z was zna lepszy sposob > na obrocenie obrazka. Jedna z metod to np. naniesienie textury ze statkiem na kwadrat (moze byc nawet w przestrzeni 2d) i wywalanie tego na ekran (z teksturowaniem i uwzglednianiem przezroczystosci). Wowczas obracanie statku sprowadzi sie do obracania wierzcholkow kwadratu. Inna metoda to skorzystanie z efektu zwanego na scenie zoom-rotatorem. Polega to na tym (jak zreszta mowi nazwa), ze obracamy i skalujemy bitmape. Jezeli chcesz moge ci podeslac moje stare assemblerowe zrodlo do takiego efektu (bitmapa 256x256). Ale IMHO pierwszy sposob jest lepszy -- bardziej elastyczny. W ogole na twoim miejscu zastanowilbym sie nad zrobieniem statkow w 3d. Dobry facet od 3dstudio potrafi z niewielkiej ilosci face'ow calkiem fajne modele tworzyc. -- --------------------------------------------------- Maciej Sinilo Yarpen/Substance
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Kowal"
Date: Wed, 16 Dec 1998 00:00
Date: Wed, 16 Dec 1998 00:00
30 lines
913 bytes
913 bytes
>Jedna z metod to np. naniesienie textury ze statkiem na kwadrat (moze >byc nawet w przestrzeni 2d) i wywalanie tego na ekran (z teksturowaniem >i uwzglednianiem przezroczystosci). Wowczas obracanie statku sprowadzi >sie do obracania wierzcholkow kwadratu. No dobrze, ale to jest czysta (zbyt czysta) teoria. moze jakis wzor, albo metoda? > W ogole na twoim miejscu zastanowilbym >sie nad zrobieniem statkow w 3d. Dobry facet od 3dstudio potrafi z >niewielkiej ilosci face'ow calkiem fajne modele tworzyc. Bez zartow. Nie jestem taki dobry (czyt. nie chce mi sie) bawic sie z formatem 3d studio. Bardzej interesuje mnie pierwsza wymieniona metoda. Teksturowanie, to po prostu wypelnianie ustalonego obszaru. Gdybym umial to zrobic, moglbym dac sobie spokoj z bitmapami i statki rysowac recznie, tak jak zrobiono to w Critical Mass. Napisz cos wiecej o teksturowaniu. Kowal ( kowal2@friko6.onet.pl )
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: Maciej Sinilo
Date: Wed, 16 Dec 1998 00:00
Date: Wed, 16 Dec 1998 00:00
35 lines
1226 bytes
1226 bytes
Kowal wrote: > > >Jedna z metod to np. naniesienie textury ze statkiem na kwadrat (moze > >byc nawet w przestrzeni 2d) i wywalanie tego na ekran (z teksturowaniem > >i uwzglednianiem przezroczystosci). Wowczas obracanie statku sprowadzi > >sie do obracania wierzcholkow kwadratu. > > No dobrze, ale to jest czysta (zbyt czysta) teoria. moze jakis wzor, albo > metoda? wzor na obrot punktu w 2d to pewnie cos w stylu: rotated_x = (original_x*cos(theta)) - (original_y*sin(theta)) rotated_y = (original_y*cos(theta)) + (original_x*sin(theta)) kazdy punkt kwadratu podstawiasz do tego rownania i voila. texturowanie to temat na dluzszy artykul, poszukaj po sieci, jest masa dokumentow o tym. jezeli chcesz, to moge ci jeden podrzucic na priva (po angielsku). > > > W ogole na twoim miejscu zastanowilbym > >sie nad zrobieniem statkow w 3d. Dobry facet od 3dstudio potrafi z > >niewielkiej ilosci face'ow calkiem fajne modele tworzyc. > > Bez zartow. Nie jestem taki dobry (czyt. nie chce mi sie) bawic sie z > formatem 3d studio. nie chce ci sie? no to szkoda... wiesz, gierki w 2d to juz troszke przezytek w dzisiejszych czasach. -- --------------------------------------------------- Maciej Sinilo Yarpen/Substance
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: Konrad 'kaspy' P
Date: Thu, 17 Dec 1998 00:00
Date: Thu, 17 Dec 1998 00:00
27 lines
1273 bytes
1273 bytes
Kowal wrote: > > Mam maly problem. Pisze gre (cos podobnego do Critikal Mass) i potrzebuje > pomocy. Kazdy statek moze tam leciec pod dowolnym katem. Nie mam > najmniejszej ochoty bawienia sie 360 bitmapami (statkami pod katem), ale nie > mam dobrej medoty na obrocenie obrazka. Probowalem uzycwzoru x := r * > (cos(alfa)) i y := r * (sin(alfa)); ale po obroceniu obrazka o 360 stopni > nie wygladal on juz tak jak powinien. Moze wiec ktos z was zna lepszy sposob > na obrocenie obrazka. dobrze robisz, ale nie do konca, po pierwsze, przy obliczniu kolejnych polozen uzywaj kata bezwzglednego i zawsze pierwotnej bitmapy, wtedy po obroceniu o 360 stopni statek bedzie wygladal tak samo, po drugie, obliczaj wspolzendna piksel na tekstorze, z wspolrzednej ekranowej, wtedy latwo tez mozesz caly interes przeskalowac, jesli na przyklad korzystasz z 320x200, poza tym wtedy da sie to latwo zrobic w asemblerze, bo bedziesz operowal caly czas na liczbach calkowitych, no i rzaden piksel ci sie nie zgubi, no i wogole, dzisiaj mam egzamin o godzinie 20, pora dla murzynow k.... mac -- -- Konrad "Kaspy" Palczynski ----------- -- http://www.kaspy.z.pl --------------- <- x-mas version !!! -- mailto:3941260@pager.mirabilis.com -- -- AGH - EAIiE - robotics --------------
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "A.'SoTe' B."
Date: Thu, 17 Dec 1998 00:00
Date: Thu, 17 Dec 1998 00:00
13 lines
509 bytes
509 bytes
Maciej Sinilo wrote: > > > Bez zartow. Nie jestem taki dobry (czyt. nie chce mi sie) bawic sie z > > formatem 3d studio. > nie chce ci sie? no to szkoda... wiesz, gierki w 2d to juz troszke > przezytek w dzisiejszych czasach. :) No eeeejjj :) Jezeli mam wybierac pomiedzy graniem np. w przygodowke w 3D, ktora musi zmiescic wiekszosc grafiki np. w 2MB na VooDoo, a gra w przygodowke w 2D ktora moze miec doczytywana grafike na tyle ile ma pamieci komputer (32, 64 MB ?) to wybor jest dla mnie oczywisty.
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Kowal"
Date: Fri, 18 Dec 1998 00:00
Date: Fri, 18 Dec 1998 00:00
28 lines
1081 bytes
1081 bytes
>rotated_x = (original_x*cos(theta)) - (original_y*sin(theta)) >rotated_y = (original_y*cos(theta)) + (original_x*sin(theta)) Probowalem wykorzystac, te wzory do obrocenia kazdego punktu bitmapy i UDALO SIE. Niestety nie do konca. Tak jak mowilem :-) (wlasciwie uzsmiech przez lzy, bo nie ma sie z czego cieszyc) sa straty. W obroconym obrazku skladajacym sie z kolorow: bialy i czerwony zostaje czarne piksele. MOge wyslac tu mizerne efekty mojej pracy, jesli kogos to interesuje, ostrzegam tylko, ze bede musial wyslac tez swoja bibliteke do VGA, bo inaczej ani rusz. Jak zrobic, zeby nie bylo tych "czarnych dziur"? To juz jest prawie to czego oczekiwalem i brakuje juz tak malo! TO MUSI SIE UDAC! >kazdy punkt kwadratu podstawiasz do tego rownania i voila. texturowanie >to temat na dluzszy artykul, poszukaj po sieci, jest masa dokumentow o >tym. jezeli chcesz, to moge ci jeden podrzucic na priva (po angielsku). Tak bylbym zainteresowany, szkoda, ze po angielsku, ale ucze sie juz go pewien czas. Moze jednak obedzie sie bez tego. Kowal ( kowal2@friko6.onet.pl )
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Pawe� Ziemian
Date: Fri, 18 Dec 1998 00:00
Date: Fri, 18 Dec 1998 00:00
20 lines
668 bytes
668 bytes
Kowal napisa�(a) w wiadomo�ci: <367a1558.0@news.vogel.pl>... >kolorow: bialy i czerwony zostaje czarne piksele. MOge wyslac tu mizerne >efekty mojej pracy, jesli kogos to interesuje, ostrzegam tylko, ze bede >musial wyslac tez swoja bibliteke do VGA, bo inaczej ani rusz. > >Jak zrobic, zeby nie bylo tych "czarnych dziur"? To juz jest prawie to czego >oczekiwalem i brakuje juz tak malo! TO MUSI SIE UDAC! > A mo�e robi� odwrotnie. Bra� wsp�rz�dne z bitmapy docelowej, obraca� w drug� stron� i bra� kolor punktu na jaki pokazuj� wyliczone wsp�rz�dne. A je�li punkt le�y po za bitmap� to ustawi� jaki� umowny kolor t�a.
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: Marcin 'Qrczak'
Date: Fri, 18 Dec 1998 00:00
Date: Fri, 18 Dec 1998 00:00
17 lines
607 bytes
607 bytes
On Fri, 18 Dec 1998, Kowal wrote: > W obroconym obrazku skladajacym sie z kolorow: bialy i czerwony > zostaje czarne piksele. Czy�by� bra� ka�dy piksel i pr�bowa� go obr�ci�? :-) Odwrotne - dla ka�dego piksela _wyniku_ sprawd�, gdzie on by� przed obrotem! Wystarczy pomy�le�... -- __("< Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/ \__/ GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++ ^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Kowal"
Date: Fri, 18 Dec 1998 00:00
Date: Fri, 18 Dec 1998 00:00
17 lines
565 bytes
565 bytes
To niemozliwe udalo sie!! Ale to nie koniec problemow. Ten jest naszczescie latwy (tak mi sie wydaje) do "zwalczenia". Powiedzmy, ze statek mam na srodku bitmapy... Po obrocie o 45 stopni widze juz tylko kawelek statku. Skurczybyk odlecial!! Niestety gra wymaga, zeby statek CALY CZASZ byl na srodku bitmapy (dlaczego? nie musze chyba wyjasniac...) Moge oczywiscie sprobawac metody prob i bledow (moja ulubiona :-), ale trudno bedzie sie dopatrzyc tak malych przesuniec. Czy jest moze jakis wzorna obliczenie tych przesuniec? Kowal ( kowal2@friko6.onet.pl )
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: Maciej Sinilo
Date: Fri, 18 Dec 1998 00:00
Date: Fri, 18 Dec 1998 00:00
22 lines
824 bytes
824 bytes
A.'SoTe' B. wrote: > > Maciej Sinilo wrote: > > nie chce ci sie? no to szkoda... wiesz, gierki w 2d to juz troszke > > przezytek w dzisiejszych czasach. > > :) No eeeejjj :) Jezeli mam wybierac pomiedzy graniem np. w przygodowke > w 3D, ktora musi zmiescic wiekszosc grafiki np. w 2MB na VooDoo, a gra > w przygodowke w 2D ktora moze miec doczytywana grafike na tyle ile > ma pamieci komputer (32, 64 MB ?) to wybor jest dla mnie oczywisty. No fakt... Przygodowki sie jeszcze trzymaja, bo juz nawet do strategii uzywa sie 3d coraz czesciej. Ale akurat zadajacemy to poczatkowe pytanie o obracanie bitmap chodzi o strzelanke. Nawet jezeli nie robimy pelnego 3d, to modele mozna w 3ds zrobic... Tak jest np. w Katharsis/Metropolis. -- --------------------------------------------------- Maciej Sinilo Yarpen/Substance
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: Maciej Malycha
Date: Sat, 19 Dec 1998 00:00
Date: Sat, 19 Dec 1998 00:00
23 lines
742 bytes
742 bytes
In pl.comp.lang.pascal Kowal <kowal2@friko6.onet.pl.nospam> wrote: > To niemozliwe udalo sie!! > > Ale to nie koniec problemow. Ten jest naszczescie latwy (tak mi sie wydaje) > do "zwalczenia". > > Powiedzmy, ze statek mam na srodku bitmapy... Po obrocie o 45 stopni widze > juz tylko kawelek statku. Skurczybyk odlecial!! Niestety gra wymaga, zeby > statek CALY CZASZ byl na srodku bitmapy (dlaczego? nie musze chyba > wyjasniac...) Moge oczywiscie sprobawac metody prob i bledow (moja ulubiona > :-), ale trudno bedzie sie dopatrzyc tak malych przesuniec. Czy jest moze > jakis wzorna obliczenie tych przesuniec? > > Kowal ( kowal2@friko6.onet.pl ) > > Nie rozumiem. Gdzie masz os obrotu? -- Maciej Ma�ycha <mmac@ncac.torun.pl>
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Kowal"
Date: Sun, 20 Dec 1998 00:00
Date: Sun, 20 Dec 1998 00:00
15 lines
245 bytes
245 bytes
>Nie rozumiem. Gdzie masz os obrotu? Jesli chodzi Ci o punkt, wokol ktorego to wszystko sie obraca, to jest to punkt (0, 0) Najwygodniej byloby "przesunac" ten punkt na srodek obrazka, ale jak to zrobic? Kowal ( kowal2@friko6.onet.pl )
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Marcin Rutkowsk
Date: Mon, 21 Dec 1998 00:00
Date: Mon, 21 Dec 1998 00:00
27 lines
735 bytes
735 bytes
>Najwygodniej byloby "przesunac" ten punkt na srodek obrazka, ale jak to >zrobic? Jak "TO" zrobi� ????? Takie rzeczy s� opisane w ka�dej ksi��ce do geometrii (materia� na poziomie szko�y podstawowej) !!! Wzor na obrot punktu w 2d (patrz wcze�niejsze posty): r_x = (o_x*cos(theta)) - (o_y*sin(theta)) r_y = (o_y*cos(theta)) + (o_x*sin(theta)) Gdzie r_x, r_y, o_x, o_y s� podane wzgl�dem �rodka obrazka, czyli: r_x = rotated_x - (size_x div 2) r_y = rotated_y - (size_y div 2) o_x = original_x - (size_x div 2) o_y = original_y - (size_y div 2) Jak sobie to wszystko poprzekszta�casz to pewnie Ci si� uda !!!? -- Marcin Rutkowski MAIL: marcinru@vc.pl WWW: http://friko.onet.pl/el/marcinru/
Re: Wypelnianie przestrzeni i obracanie bitmap
Author: "Kowal"
Date: Tue, 22 Dec 1998 00:00
Date: Tue, 22 Dec 1998 00:00
16 lines
374 bytes
374 bytes
>Jak "TO" zrobi� ????? >Takie rzeczy s� opisane w ka�dej ksi��ce do geometrii (materia� na poziomie >szko�y podstawowej) !!! O rany!! Uzywalem wzoru, a nawe go nie rozumialem :-( Sorry za taka ... hmm... jak to nazwac? Material jest na poziomie podstawowki, ale moze ja jeszcze tego nie mialem (7 klasa) Dzieki za pomoc. Kowal ( kowal2@friko6.onet.pl )
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads