🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#12
Author: "Kowal"
Date: Tue, 15 Dec 1998 00:00
25 lines
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
#14
Author: Maciej Sinilo
Date: Tue, 15 Dec 1998 00:00
28 lines
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
#29
Author: "Kowal"
Date: Wed, 16 Dec 1998 00:00
30 lines
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
#38
Author: Maciej Sinilo
Date: Wed, 16 Dec 1998 00:00
35 lines
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
#39
Author: Konrad 'kaspy' P
Date: Thu, 17 Dec 1998 00:00
27 lines
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
#42
Author: "A.'SoTe' B."
Date: Thu, 17 Dec 1998 00:00
13 lines
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
#48
Author: "Kowal"
Date: Fri, 18 Dec 1998 00:00
28 lines
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
#52
Author: "Pawe� Ziemian
Date: Fri, 18 Dec 1998 00:00
20 lines
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
#53
Author: Marcin 'Qrczak'
Date: Fri, 18 Dec 1998 00:00
17 lines
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
#54
Author: "Kowal"
Date: Fri, 18 Dec 1998 00:00
17 lines
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
#55
Author: Maciej Sinilo
Date: Fri, 18 Dec 1998 00:00
22 lines
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
#61
Author: Maciej Malycha
Date: Sat, 19 Dec 1998 00:00
23 lines
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
#70
Author: "Kowal"
Date: Sun, 20 Dec 1998 00:00
15 lines
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
#74
Author: "Marcin Rutkowsk
Date: Mon, 21 Dec 1998 00:00
27 lines
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
#93
Author: "Kowal"
Date: Tue, 22 Dec 1998 00:00
16 lines
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