poligon
8 отговора
319 прегледа
poligon
mojete li da mi pomognet: tryabwa mi functin koiato da proweriawa dali edna to4ka sas zadadeni koordinati se namira w daden polygon.
Blagodaria predwariteno.
Blagodaria predwariteno.
Re: poligon
znachi gledai sega
1) ako poligona ti e izpaknal - tochkata e v nego ako kato svarjesh neia sas vsickite mu varhove sumata ot licata na triagalncite e ravna na liceto na poligona(liceto na poligona da recem mojesh da go smetnesh sas formulata za sumirane na licata na orientiranite mu trapci ). Tova nesto raboti samo za izpaknal.
2) ako ne e izpaknal - puskash lach ot tochkata v proizvolna posoka(hubavo e da se izhitrish i da go pusnesh v horiontalna da recem 8-) i broish broia na presichaniata sas stranite na poligona - ako tozi broi e ceten to tochkata e vatre, ako ne e cheten to tia e van. Celta da go pusnesh horizontalno e za da mojesh lesno da opredeliash dali presicha dadena strana na poligona. Da recem che go puskash nadiasno. Znaci toi presica edna strana kogat dvata i kraia sa v razlicnite poluravnini opredeleni ot poligona. Ima obache razni "izrodeni" slucai kogato lachat minava da recem prez vryh na poligona - togava triabva da mojesh da kajesh dali vliza v nego ili izliza. Drugiat problem e kogato savpada s niakoia ot stranite na poligona. Chestno kazano samo taka s dumi ne moga da ti obiasna vseki ot slucaite bez kartinki. Te biaha mai okolo 6. Hubavoto na tova e che e lineino po broia na stranite na poligona i raboti daje i za neizpaknali poligoni. Dano si shvanal ideiata po princip samo go pisal tova i moga da go izrovia niakade iz sourcovete ako sam po-nastoiatelen 8-)))
1) ako poligona ti e izpaknal - tochkata e v nego ako kato svarjesh neia sas vsickite mu varhove sumata ot licata na triagalncite e ravna na liceto na poligona(liceto na poligona da recem mojesh da go smetnesh sas formulata za sumirane na licata na orientiranite mu trapci ). Tova nesto raboti samo za izpaknal.
2) ako ne e izpaknal - puskash lach ot tochkata v proizvolna posoka(hubavo e da se izhitrish i da go pusnesh v horiontalna da recem 8-) i broish broia na presichaniata sas stranite na poligona - ako tozi broi e ceten to tochkata e vatre, ako ne e cheten to tia e van. Celta da go pusnesh horizontalno e za da mojesh lesno da opredeliash dali presicha dadena strana na poligona. Da recem che go puskash nadiasno. Znaci toi presica edna strana kogat dvata i kraia sa v razlicnite poluravnini opredeleni ot poligona. Ima obache razni "izrodeni" slucai kogato lachat minava da recem prez vryh na poligona - togava triabva da mojesh da kajesh dali vliza v nego ili izliza. Drugiat problem e kogato savpada s niakoia ot stranite na poligona. Chestno kazano samo taka s dumi ne moga da ti obiasna vseki ot slucaite bez kartinki. Te biaha mai okolo 6. Hubavoto na tova e che e lineino po broia na stranite na poligona i raboti daje i za neizpaknali poligoni. Dano si shvanal ideiata po princip samo go pisal tova i moga da go izrovia niakade iz sourcovete ako sam po-nastoiatelen 8-)))
Re: Polygon
Благодаря ти за подробното описание!
И аз мислех да подходя по подобен начин ако се наложи да я поша, но в главата ми се върти спомн, че такава функция я имаше готова или в АPI или в STL или Бог знае къде.
Та за това питам в клуба, ако някой се сеща за тази функция да ме подсети и мен.
И аз мислех да подходя по подобен начин ако се наложи да я поша, но в главата ми се върти спомн, че такава функция я имаше готова или в АPI или в STL или Бог знае къде.
Та за това питам в клуба, ако някой се сеща за тази функция да ме подсети и мен.
Re: poligon
Ако става дума за Win32 и GDI, то можеш да използваш функцията
BOOL PtInRegion(
HRGN hrgn, // handle to region
int X, // x-coordinate of point
int Y // y-coordinate of point
);
За целта обаче трябва да направиш регион от точките на полигона с функция
HRGN CreatePolygonRgn(
CONST POINT *lppt, // array of points
int cPoints, // number of points in array
int fnPolyFillMode // polygon-filling mode
);
Cheers
BOOL PtInRegion(
HRGN hrgn, // handle to region
int X, // x-coordinate of point
int Y // y-coordinate of point
);
За целта обаче трябва да направиш регион от точките на полигона с функция
HRGN CreatePolygonRgn(
CONST POINT *lppt, // array of points
int cPoints, // number of points in array
int fnPolyFillMode // polygon-filling mode
);
Cheers
Re: poligon
Algoritymyt e pochti syshtiyat, kato metoda na skanirashtata liniya za zapylvane na proizvolen poligon. Nameri si go v nyakoya knijka, napr. uchebnika na Evgeniy Lukipudis.
Sys sigurnost takiva neshta v STL nyama.
Sys sigurnost takiva neshta v STL nyama.
Re: Polygon
mda kakto kaza emigranta edva li ima v STL takova nesto - po princip ne zatova e pisan a za strukturi ot danni. Inache v WIN API-to ima takova kakto niakoi drug kaza no cestno kazano ne sam se interesuval vatre kakvo vsatnost pravi za da otgovori 8-)
Благодаря на всички,
това е функцията, която имх предвид.
Ще ми свърши работа.
Още веднъж благодаря!

Ще ми свърши работа.
Още веднъж благодаря!
Re: poligon
edin priqtelski sywet ako ti trqbwa skorost pri izpylnenieto na tazi funkciq ne izpolzwai tazi funkciq po dobre si q napi6i move i da ne move6 da q napi6e6 po dobra ot tqhnata no 6te q optimizira6 ot towa 4e na teb 6te ti trqbwa za nqkoi komkretni slu4ai a towa s wyrha se izbqgwa kato prieme6 4e toi prinadlevi kym edna ot dwete strani