Computer Games Forum
 

Go Back   Computer Games Forum > Tech > The Workshop > Game Design

Notices

Căutare produse PC Garage: Şterge căutarea

Reply
 
LinkBack Thread Tools
Old 17-10-2004, 12:30   #1 (permalink)
Registered User
 
Join Date: Sep 2003
Location: Bucuresti
Question colorare poligoane

Buna.
Mi-a venit o idee dar nu prea stiu cum s-o pun in practica.
Sa zicem ca avem mai multe poligoane care sa intersecteaza. Cum fac ca prin click in interiorul unei suprafete inchise aceasta sa se coloreze cu o anumita culoare? Fara sa cunosc coordonatele ci doar bazat pe o imagine gen colorare in paint. Exista functii gata facute pt asa ceva? Puteti sa-mi dati un exemplu?

Eu sunt incepatoare in lumea programarii jocurilor. Din cate am inteles pt 2D indicat ar fi directX, nu? Dar la noi in tara nu exista nici o carte pt game developers asa cum am vazut pe site-uri straine... Asa ca invatam de pe internet?

Astept sugestii si va multumesc in avans.
 
Iulia is offline    Reply With Quote
Old 17-10-2004, 16:39   #2 (permalink)
boo
Registered User
 
boo's Avatar
 
Join Date: Sep 2004
Location: somewhere else
Tu incerci sa faci 2D?
 
boo is offline    Reply With Quote
Old 17-10-2004, 18:30   #3 (permalink)
invisible ninja killer
 
Invisible Ninja-Killer's Avatar
 
Join Date: Feb 1999
Location: Invisible Ninja-Killer
Poti sa faci un algoritm de fill ordinar, desi e bine sa cunosti datele despre imaginea pe care vrei sa o colorezi pt ca iti va face munca mai usoara.
__________________
Incredible Ninja Squirrel
o.O
 
Invisible Ninja-Killer is offline    Reply With Quote
Old 18-10-2004, 00:06   #4 (permalink)
Registered User
 
Join Date: Sep 2003
Location: Bucuresti
Poti sa-mi spui ce inseamna un fill ordinar si cam cum se face?
Da eu as vrea sa fac 2D. De ce?
 
Iulia is offline    Reply With Quote
Old 18-10-2004, 03:14   #5 (permalink)
cookie powered
 
_nameless's Avatar
 
Join Date: Apr 2001
Location: Fortress Europe
Ar fi bune cateva detalii - ce limbaj de programare folosesti, ce biblioteca grafica... Daca nu gasesti o functie in biblioteca respectiva poti sa incerci sa scrii tu functia (o varianta ineficienta, dar usor de inteles ar fi sa faci o functie recursiva care sa ia punctul de inceput si sa ii verifice vecinii).
__________________
Sticky: Proiect pentru copiii saraci!
 
_nameless is offline    Reply With Quote
Old 18-10-2004, 18:41   #6 (permalink)
boo
Registered User
 
boo's Avatar
 
Join Date: Sep 2004
Location: somewhere else
doar de curiozitate...
sunt mai multe metode prin care ai putea umple culoarea respectiva, care mai de care mai ineficiente...
totusi, ar fii o idee destul de buna sa te gandesti ce limbaj de programare si ce biblioteci grafice vrei sa folosesti.
 
boo is offline    Reply With Quote
Old 18-10-2004, 20:44   #7 (permalink)
Registered User
 
Join Date: Sep 2003
Location: Bucuresti
As vrea sa fac in Visual C cu DirectX. Cati vecini poate sa aiba un pixel?
 
Iulia is offline    Reply With Quote
Old 19-10-2004, 07:20   #8 (permalink)
Registered User
 
Join Date: Apr 2003
Location: Timisoara / Romania
Lightbulb

Cati vrea el, doar ii pixel
 
dodys is offline    Reply With Quote
Old 19-10-2004, 11:32   #9 (permalink)
Registered User
 
Join Date: Jun 2003
Location: Pitesti
in 2D un pixel are
[CODE]
123
8*4
765
[/CODE]
Dupa cum vezi... sunt 8 vecini
Daca vrei un algoritm recursiv, poate fi destul de costisitor...
Atentie, in exemplu, daca 2 cu 8 formeaza o linie neagra nu poti colora pe 1 daca el ar fi alb, chiar daca e vecin cu pixelul * (pentru ca 2 cu 8 formeaza o linie si separa planele).
__________________
Hide your face for ever...
Dream and search for ever...

Last edited by Arise; 19-10-2004 at 11:50..
 
Arise is offline    Reply With Quote
Old 19-10-2004, 14:46   #10 (permalink)
iabu_com
Guest
 
In concluzie pt. fill apelezi fc. recurenta doar pt. 4 vecini...
-1-
2*3
-4-

Coordonatele astora is fix astea :
dx={0,-1,1,0}
dy={-1,0,0,1}

Doar frigi o fc. recursiva puturoasa de genul :
void fill(int x, int y)
{
if (x>=0&&y>=0&&x<=xmax&&y<=ymax) //ca sa nu-ti colorezi si boxele
if (getcolor(x,y)==filledcolor)
{
setcolor(x,y,fillcolor);
for (int i=0;i<4;i++) fill(x+dx[i],y+dy[i]);
}

}
si gata (daca merge).

PS: Totusi, in Romania, helicicultura si traforajul sunt alternative mult mai competitive decat productia de jocuri.
 
   Reply With Quote
Old 19-10-2004, 19:59   #11 (permalink)
zero carii
 
zmack's Avatar
 
Join Date: May 2003
Location: bucuresti
erm... decat sa faci fill in functzie recursiva mai bine desenezi pe monitor cu carioca. s-ar putea sa termine mai repede.
__________________
Pour la carotte, le lapin est la parfaite incarnation du Mal
 
zmack is offline    Reply With Quote
Advertisment
Reply

  Computer Games Forum > Tech > The Workshop > Game Design

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT +2. The time now is 18:15.


Advertisement System V2.5 By   Branden
This site is copyrighted ©1997 - 2008, Computer Games Online SRL