bogdancri
18th November 2005, 16:07
Am urmatoarea problema ...
Sa se proiecteze si se implementeze un tip de date abstract pentru poligoane în plan. Tipul de date abstract trebuie sa permita rezolvarea urmatoarelor probleme:
- Afisarea poligonului;
- Determinarea dreptunghiului de arie minim care contine în interior poligonul;
- Determinarea ariei poligonului;
- Determinarea perimetrului poligonului;
- Determinarea centrului de greutate;
- Determinarea daca poligonul este convex;
- Compararea poligoanelor în raport cu aria lor;
- (*) Concatenarea a doupoligoane; concatenarea a doua poligoane este întotdeauna un poligon convex obtinut astfel:
- se determina reuniunea multimii vârfurilor celor doua poligoane;
- se determin înfurtoarea convexa a multimii de puncte rezultate anterior;
- multimea punctelor înfurtorii reprezinta varfurile noului poligon;
As dori cateva idei mai ales pe partea matematica .....aici nu prea mai stiu...am uitat.
Problema trebuie implementata cu clase in c++.
Sunt incepator ....
va rog sa ma ajutati
Multumesc
ciuly
18th November 2005, 16:24
ai incercat manualul de geometrie clasa nu_mai_stiu_cand_se_facea_asa_ceva ?
shiva
18th November 2005, 16:49
QUOTE(bogdancri @ Nov 18 2005, 16:07)

- (*) Concatenarea a doupoligoane; concatenarea a doua poligoane este întotdeauna un poligon convex obtinut astfel:
- se determina reuniunea multimii vârfurilor celor doua poligoane;
- se determin înfurtoarea convexa a multimii de puncte rezultate anterior;
- multimea punctelor înfurtorii reprezinta varfurile noului poligon;
WTF e "infurtoarea"?
Never, ever n-am auzit de asa ceva....si doar stiu mtm
caracatita
18th November 2005, 17:08
QUOTE(shiva @ Nov 18 2005, 16:49)

WTF e "infurtoarea"?

Never, ever n-am auzit de asa ceva....si doar stiu mtm

Vrea sa zica infasuratoarea
bogdancri
18th November 2005, 19:47
infasuratoarea am vrut sa zic.
Geometrie nu prea mai stiu ....
bogdancri
18th November 2005, 20:08
Poate aveti o problema asemanatoare rezolvata .....si o puteti si trimite
ciuly
18th November 2005, 20:10
adica cu alte cuvinte sa iti facem noi tema
bogdancri
20th November 2005, 23:33
cum se calculeaza centrul de greutate pentru un poligon cu n laturi ???
Orice informatie este buna ....
va rog.
horobica
20th November 2005, 23:54
QUOTE(bogdancri @ Nov 20 2005, 23:33)

cum se calculeaza centrul de greutate pentru un poligon cu n laturi ???
Orice informatie este buna ....
va rog.
O idee ma gandesc ca ar fi sa il imparti in triunghiuri pentru care ai formula pt centrul de greutate (intersectia medianelor). Dupa care centrul de greutate al poligonului este media ponderata dupa arie a centrelor de greutate ale tuturor triunghiurilor. Zic si eu...
Africanul
21st November 2005, 12:13
QUOTE(bogdancri @ Nov 20 2005, 23:33)

cum se calculeaza centrul de greutate pentru un poligon cu n laturi ???
Orice informatie este buna ....
Din cate imi aduc eu aminte (geometria si trigonometria nu mi-au placut):
Ai un poligon cu "n" laturi, iar punctele lui au coordonatele (xi, yi), i=1..n;
Fie (gx, gy) puctul care reprezinta centrul de greutate.
Atunci: gx=media_aritmetica(xi), gy=media_aritmetica(yi).
Asta este ce-mi aduc aminte. Am facut rapid pentru patrat, hexagon si octagon si mi-a dat corect centrul de greutate. Evident, centrul de greutate poate fi in afara ariei polinomului...
bluehipy
18th January 2006, 23:26
- Determinarea dreptunghiului de arie minim care contine în interior poligonul;
Calculezi xMin xMax yMin yMax pt toate punctele, dreptunghiul e ABCD
A(xMin,yMin) B(xMax,yMin) C(xMax,yMax) D(xMin,yMax)
- Determinarea ariei poligonului (convex);
Mai intai determini centrul de greutate:
xg = (x1+ .... +xn) / n
yg = (y1+ .... +yn) / n
daca unesti varfurile (n) poligonului cu centrul de greutate o sa obtii n-1 triunghiuri
A = A1+A2+...+An-1
unde Ai = hi*Li / 2
unde hi e distanta de la centrul de greutate G(xg,yg) la dreapta care trece prin Vi(xi,yi) si Vj(xj,yj) , j= i+1
Li e distanta dintre Vi si Vj , j=i+1 , Li = sqrt((xi-xj)(xi-xj)+(yi-yj)(yi-yj))
- Determinarea perimetrului poligonului;
Pn = L1+L2+...+Ln-1 , unde Li ai vazut mai sus cum se calculeaza
- Determinarea centrului de greutate;
ai vazut mai sus cum se calculeaza si a mai postat deja cineva asta
- Determinarea daca poligonul este convex;
Asta e mai "complicat" . iti alegi un sens de parcurgere a varfurilor si pentru fiecare semiplan creat de doua varfuri consecutive , celelete varfuri trebui sa faca parte din acelasi semiplan.
adica pt semiplanele:
Si dat de dreapta di(Vi Vj) si punctul Vk , j=i+1 ,k=i+2 , include toate Vx , x=1..n , x != i,i+1,i+2
coditia de apartenenta la acelasi semiplan e data de:
fie y(x) = yi+m(x-xi) ecuatia dreptei d(Vi,Vj),
un punct Vx apartine semiplanului dat de dreapta d si punctul Vk(xk,yk) daca f(xk) * f(xx) >0 (adica daca au acelasi semn) . Egalitatea cu 0 arata ca punctul Vx e pe dreapta d.
Poate te ajuta pe tine sau pe altcineva 
Eu caut solutie la o problema de vizibilitate in interiorul unui poligon ne-convex si / sau intersectii de poligoane neconvexe , daca-mi poate da cineva un hint m-as bucura : )
peace and love,
bluehipy
sapho
19th January 2006, 03:11
ce intelegi prin "vizibilitate in interiorul unui poligon ne-convex"?
Am vazut aici ca au CASCO cu 5% mai ieftin. Pentru Renault e oferta in principal! Pare OK... uitati-va si voi!
Aceasta este o versiune simplificată a paginii originale. Pentru a vizita versiunea originala
click aici.