Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

prijedlog C++/MFC/openGL

[es] :: C/C++ programiranje :: prijedlog C++/MFC/openGL

[ Pregleda: 1931 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

danijela kukic
Zagreb

Član broj: 266091
Poruke: 15
*.adsl.net.t-com.hr.



Profil

icon prijedlog C++/MFC/openGL21.08.2010. u 21:39 - pre 153 meseci
Pozdrav,
kako najbolje rijesiti slijedeci slucaj:

Imam prozor u kojem mogu likati misem..e kada kliknem na određeno podrucje nesto se treba dogadjati.to sam rijesila..
e sad tih dogadjaja ima jako puno..32 tocnije?
znaci na klik misa u podrucju 1 radi nesto, u podrucju 2 radi nesto drugo..itd
kako najjednostavnije da rijesim to pretrazivanje pozicije misa?
mislim mogu napravit 32 fje i ispitivati ako je point u tom podrucjo onda radi nesto...
ako ko ima kakav bolji prijedlog?
hvala
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1239



+94 Profil

icon Re: prijedlog C++/MFC/openGL21.08.2010. u 21:46 - pre 153 meseci
Za svaku oblast treba da imaš objekat koji definiše granice te oblasti kao i nekakvu HandleClick funkciju kojoj daješ koordinate klika, a funkcija vraća true ako je hendlovala klik. Svaki put kad se desi klik pozoveš tu HandleClick funkciju u petlji 32 puta i sve dok neka funkcija ne vrati true.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1239



+94 Profil

icon Re: prijedlog C++/MFC/openGL21.08.2010. u 21:51 - pre 153 meseci
Sad uviđam da je ovo što sam predložio manje-više ono što si i sama imala na umu. Stvar je u tome što 32 oblasti i nisu nešto mnogo. Sigurno ne bi tako radila da hendluješ klik u Minesweeperu.
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
92.244.133.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: prijedlog C++/MFC/openGL21.08.2010. u 21:59 - pre 153 meseci
Zapravo joj treba n objekta kako bi definisala n regiona sa odgovarajućim akcijama, od toga teško da može bolje. Hoćeš li ih napraviti statično u kodu ili ćeš da učitavaš neki settings fajl, ostaje na tebi. No, oni se ne moraju pretraživati linearno, već mogu da budu mapirani u nekom hešu zarad brže pretrage. :) Ok, ni 32 objekta nije mnogo, možda se implementacija heša ne isplati u konkretnom slučaju.
Ipak se ++uje.
 
Odgovor na temu

danijela kukic
Zagreb

Član broj: 266091
Poruke: 15
*.adsl.net.t-com.hr.



Profil

icon Re: prijedlog C++/MFC/openGL21.08.2010. u 22:09 - pre 153 meseci
Ovako ja imam klasu COpenGLWnd, u njoj ima OnMouseMove:

Code:
void COpenGLWnd::OnMouseMove(UINT nFlags, CPoint point) 
{
if((nFlags & MK_LBUTTON))
        {
            CheckPoints(point);
                }
}


zatim imam
Code:
void COpenGLWnd::CheckPoints(CPoint point){
        
    if(pozicija1(point))LeftButtonDrag(point.x, point.y);
        
    
}



i jos:
Code:
bool COpenGLWnd::pozicija1(CPoint &point){

blablabla....

return( to podrucje koje treba za poziciju1)
}



i sad da unutar klase COpenGLWnd radim jos te 31 fje i onda u CheckPoints ispitujem podrucja ili kaj..? tak mi se cini najjednostavnije..?
hvala
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1239



+94 Profil

icon Re: prijedlog C++/MFC/openGL21.08.2010. u 22:35 - pre 153 meseci
Probaj da zamisliš kako bi to napravila u for petlji.
 
Odgovor na temu

danijela kukic
Zagreb

Član broj: 266091
Poruke: 15
*.adsl.net.t-com.hr.



Profil

icon Re: prijedlog C++/MFC/openGL21.08.2010. u 23:49 - pre 153 meseci
hvala na odgovorima.
ok ako ide linearno super...a da ima puno fja npr kak bi to rjesavala??


i jos pitanje, ako ko zna..kako da npr ako kliknem unutar podrucja i rezimo rastezem neke poligone, posto se ne moze lako namjestiti da poligon tocno prati misa. bilo bi ok da kada jednom kliknem u podrucje i drzim misa da mi obavlja sto treba iako se izaslo iz podrucja...

znaci trebala bi da mi prestane ispitivati onmousemove ili sto?? kak da to napravim pak?
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1239



+94 Profil

icon Re: prijedlog C++/MFC/openGL22.08.2010. u 00:17 - pre 153 meseci
Zavisi šta podrazumevaš pod puno funkcija, i zavisi od prirode klikabilnih oblasti. Da se vratimo na Minesweeper, tu je u pitanju jedna ista funkcija, samo je pitanje položaja, a položaj je u matrici. Zato je za Minesweeper lako, izračunaš položaj u matrici (relativna koordinata / veličina jednog polja = položaj u matrici) i onda obrađuješ jednu istu funkciju. Ako su tvoja klikabilna polja pravilna (recimo pripadaju matrici), ali funkcije su različite, onda možeš da izračunaš položaj u matrici, a zatim pozoveš jednu od funkcija čiji su pointeri unapred sačuvani u jednoj matrici.

Ne moraju da budu pointeri na funkcije, mogu i pointeri na objekte, ali svi objekti da imaju zajednički interfejs (ili zajedničku osnovnu klasu), pa onda pozivaš funkciju tog interfejsa.

Klikabilna polja ni ne moraju da budu pravilna. Možeš da imaš niz objekata sa zajedničkim interfejsom. Za svaki objekat u nizu bi proverila da li klik pripada njemu, pa ako pripada onda pozoveš funkciju zajedničkog interfejsa. O tome sam pričao u prvoj poruci.

Drugo pitanje nisam shvatio.
 
Odgovor na temu

danijela kukic
Zagreb

Član broj: 266091
Poruke: 15
*.adsl.net.t-com.hr.



Profil

icon Re: prijedlog C++/MFC/openGL22.08.2010. u 11:19 - pre 153 meseci
ej hvala na odgovoru, budem si jos to malo proucavala.

uglavnom da pojasnim o cemu je kod mene rijec.
znaci imam OpenGL prozor i u njemu je iscrtan jedan objekt, tocnije maska lica. ja sad tu masku misem trebam mocu namjestavati. tipa podesiti jos sirinu glave, polozaj obrava, usta, nosa itd....

tih dijelova maske sto se mogu pomicati ima 32.

sad sam podijelila podrucja na toj maski i ako misem klikne unutar nekog od tih podrucja i drzi se klik, dolazi do npr podesavanja visine glave.
problem je kako je ta maska 3d cije se koordinate preslikavaju na 2d sliku ekrana i malo je komplicirano podesiti da rastezanje glave tocno prati brzinu kretnje misa.

znaci ovako. kliknem na rub glave i drzim klik i misa vucem prema gore, glava se rasteze no nakon izvjesnog vremena mis ode iz podrucja u kojem se dogadja fja rastezanja i naravno,glava se prestane rastezati iako ja jos uvijek drzim stisnutog misa i povlacim...

sada bi trebalo ako kliknem unutar podrucja i krenem rastezat masku(lijeva tipka je cijelo vrijeme pritisnuta) da se vise ne ispituje "da li je moj mis u podrucju rastezanja glave".
ako je pritsnuta na tom podrucju, sve dok drzim tipku obavljaj fju ali sada bez provjeravanja koordinata.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1239



+94 Profil

icon Re: prijedlog C++/MFC/openGL22.08.2010. u 12:17 - pre 153 meseci
Možda mogu da ti pomognu funkcije SetCapture/ReleaseCapture.
 
Odgovor na temu

danijela kukic
Zagreb

Član broj: 266091
Poruke: 15
*.adsl.net.t-com.hr.



Profil

icon Re: prijedlog C++/MFC/openGL22.08.2010. u 13:28 - pre 153 meseci
budem pogledala i proucila, hvala
 
Odgovor na temu

[es] :: C/C++ programiranje :: prijedlog C++/MFC/openGL

[ Pregleda: 1931 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.