Documente Academic
Documente Profesional
Documente Cultură
Clasa Point
45
public static double midY(Point point1,Point point2) intoarce
coordonata pe axa Oy a punctului aflat la jumatatea distantei dintre
punctele point1 si point2.
public boolean smallerThat(Point point) determina daca punctul curent
este mai mic decit punctul point.
Clasa FunctionLine
46
public static float det2(float a11, float a12, float a21, float a22)
calculeaza determinantul format de rangul 2 care are pe prima linie
a11,a12 si pe a doua linie a21,a22.
public static Point getIntersectionPoint(FunctionLine f1, FunctionLine
f2) throws
Exception returneaza punctul de intersectie a dreptelor care au asociat
functiile f1,f2 .Daca dreptele sunt paralele sau sunt aceleasi arunca o
exceptie..
public static boolean isTheSameLine(FunctionLine f1, FunctionLine
f2) determina daca functiile f1,f2 sunt asociate .aceleiasi linii.
public static boolean areParalel(FunctionLine f1, FunctionLine f2)
determina daca dreptele asociate functiilor f1,f2 sunt paralele.
public float calc(float x, float y) calculeaza valoarea functiei pentru
coordonatele (x,y)
Clasa PolyLine
47
public boolean isClosed() testeaza daca aceasta linie poligonala este un
poligon (daca este inchisa)
public boolean canConnect(PolyLine polyLine) testeaza daca se poate
conecta cu linia poligonala polyLine (adica daca una dintre extremitatile
liniei poligonale corespunde cu una dintre extremitatiile obiectului
polyLine)
public void connectToPolyLine(PolyLine polyLine)-conecteaza linia
poligonala cu obiectul polyLine, daca una dintre extremitatile liniei
poligonale corespunde cu una dintre extremitatile obiectului polyLine.
public boolean canInclude(PolyLine polyLine) testeaza daca linia
poligonala poate include obiectul polyLine( daca obiectul polyLine este
un poligon si exista un punct in interiorul liniei poligonale care corespunde
unui alt punct in cadrul obiectului polyLine)
public void includePolyLine(PolyLine polyLine) include obiectul
polyLine daca obiectul polyLine este un poligon si exista un punct in
interiorul liniei poligonale care corespunde unui alt punct in cadrul
obiectului polyLine. Efectul acestei metode este identic cu reuniunea unei
linii poligonale cu linia poligonala a un poligon cu care are un punct
comun.
public Point getPoint(int index) –returneaza punctul cu indexul index
din aceasta linie poligonala, daca el exista, null in caz contrar .
public Point getLastPoint() returneaza primul punct din aceasta linie
poligonala., daca el exista, null in caz contrar .
public Point getFirstPoint() returneaza ultimul punct din aceasta linie
poligonala., daca el exista, null in caz contrar .
public int getNumberOfPoints() returneaza numarul de puncte ce se
afla pe aceasta linie poligonala.
public int getNumberOfSegments() returneaza numarul de segmente ce
se afla pe aceasta linie poligonala.
public Segment getSegment(int index) returneaza segmentul cu indexul
index din aceasta linie poligonala., daca el exista, null in caz contrar .
48
public void insertPoint(Point point, Point point1, Point point2)
insereaza punctul point intre punctele point1, point2 in linia poligonala.
public Vector getNotProperPoints(Vector _Points) returneaza un vector
ce contine punctele ce nu sint continute in aceasta linie poligonala dintre
punctele _Points.
public void insertOrderedPoints(Vector _points, Point point1, Point
point2) insereaza punctele cuprinse in vectorul _points intre punctele
point1 si point2 in ordinea in care apar in vector.
int getMaxX() returneaza coordonata maxima pe axa Ox a punctelor
aflate pe aceasta linie poligonala.
int getMaxY()returneaza coordonata maxima pe axa Oy a punctelor aflate
pe aceasta linie poligonala.
int getMinX()returneaza coordonata minima pe axa Ox a punctelor aflate
pe aceasta linie poligonala.
int getMinY()returneaza coordonata minima pe axa Oy a punctelor aflate
pe aceasta linie poligonala.
public boolean hasSegment(Segment sgm) testeaza daca aceasta linie
poligonala contine segmentul sgm.
public PolyLine getReduceVersion() returneaza o linie poligonala redusa
a acesteia (adica daca exista mai mult de 2 puncte succesive pe o dreapta
atunci se elimina cel din mijloc pana raman doar doua puncte successive
pe o linie).
public void scale(double alfa) scaleaza linia poligonala cu factorul alfa.
public void translate(double dx,double dy) translateaza linia poligonala
cu dx pe axa Ox si cu dy pe axa Oy.
public boolean equals(Object o) determina daca doua linii poligonale
sunt identice adica daca au puctele cu aceleasi coordonate;
public String toString() intoarce o reprezentare String a acestei linii
poligonale.
Clasa AreaPointType
49
Implementeaza tipul unui punct pe suprafata unui polygon.
Date membru:
public static final int InnerPoint = 0 constanta cu semnificatia de punct
interior
public static final int BorderPoint = 1 constanta cu semnificatia de
punct pe granite.
private int type tipul respectiv.
Metode membru:
public AreaPointType(int _type) construieste si initializeaza tipul
punctului cu tipul _type
public AreaPointType construieste si initializeaza tipul punctului cu
tipul InnerPoint
public void setPointType(int _type) seteaza tipul punctului cu tipul
_type
public boolean isInnerPoint() testeaza daca este punct interior
public boolean isBorderPoint() testeaza daca este punct pe granite
suprafetei determinata de punctele sale
Clasa Segment
50
public Segment(Point _from, Point _to) construieste si initializeaza
segmentul .cu extremitatile formate din punctele _from si to.
public FunctionLine getFunctionLine() returneaza functia liniei pe care
se afla segmentul de dreapta.
public static double dist(Point point1,Point point2) returneaza distanta
intre punctele point1 si point2.
public static double dist(double x1, double y1, double x2, double y2)
returneaza distanta dintre punctele de cooardonate (x1,y1) si respectiv
(x2,y2)
private static double dist(Point point, Segment segm) returneaza
distanta dintre punctul point si segmentul segm.
public Vector getProperIntersectionsPoints(Segment segm) returneaza
un ordonat vector format din punctele de intersectie proprii, adica cele
care adaugate pe segmentele care se intersecte inpart segmentele in noi
segmente, ale segmentului segm1 cu segm2.
public Vector getIntersectionsPoints(Segment segm) returneaza
vectorul de puncte al intersectiei segmentului cu segmentul segm.
public static Vector getProperIntersectionsPoints(Segment segm1,
Segment segm2) returneaza un vector format din punctele de intersectie
proprii, adica cele care adaugate pe un segment impart segmentele in noi
segmente, ale segmentului segm1 cu segm2.
public static Vector getIntersectionsPoints(Segment segm1, Segment
segm2) returneaza un vector format din punctele de intersectie ale
segmentului segm1 cu segm2.
51
public boolean containsPoint(Point point) testeaza daca punctul point se
afla pe segment.
public Point getFrom() returneaza prima extremitatea a segmentului.
public Point getTo() returneaza a doua extremitate a segmentului.
public String toString() intoarce o reprezentare String a acestui segment.
public int hashCode() intoarce valoarea hash code pentru acest obiect .
Aceasta metoda este folosita in tabele de dispersie ca cea implementata in
clasa java.util.Hashtable
public boolean equals(Object o) testeaza daca segmentul este identic
cu segmentul o, adica daca au extremitatile identice.
public Point getTheOther(Point point) daca punctul point este o
extremitate a segmentului atunci returneaza celalalt punct extreme.
Clasa SegmentPoints
Clasa MultiPolyLine
52
Implementeaza o linie poligonala multipla, adica o multime de linii
poligonale.Este utila la reprezentarea unei suprafete concave cu spatiul cuprins intre
mai multe linii poligonale inchise.
Date membru:
private Vector polyLines = new Vector(); un vector de linii poligonale.
Metode membru:
public MultiPolyLine(MultiPolyLine multiPolyLine) construieste si
initializeaza o linie poligonala. multipla
public MultiPolyLine(MultiPolyLine multiPolyLine) construieste si
initializeaza o linie poligonala. multipla cu liniile poligonale existente in
obiectul multiPolyLine.
public void add(PolyLine polyLine) adauga linia poligonala polyLine la
aceasta multime.
public int getNumberOfPolyLines() returneaza numarul de linii
poligonale
public PolyLine getPolyLine(int index) returneaza linia poligonala cu
indexul index
public void remove(PolyLine polyLine) se elimina linia poligonala
polyLine din aceasta multime.
int getMaxX() returneaza coordonata maxima pe axa Ox a punctelor
aflate pe aceasta linie poligonala a acestei multimi.
int getMaxY()returneaza coordonata maxima pe axa Oy a punctelor aflate
pe aceasta linile poligonale ale acestei multimi.
int getMinX()returneaza coordonata minima pe axa Ox a punctelor aflate
pe aceasta linile poligonale ale acestei multimi.
int getMinY()returneaza coordonata minima pe axa Oy a punctelor aflate
pe aceasta linile poligonale ale acestei multimi.
public boolean hasSegment(Segment sgm) testeaza daca una dintre
liniile poligonale aflate in acesta multime contine segmentul sgm.
public MultiPolyLine getReduceVersion()
53
public void scale(double alfa) scaleaza toate liniile poligonale ale acestei
multimi cu factorul alfa
public String toString() returneaza o reprezentarea String a acestui obiect
Clasa LinePoint
Date membru:
Point extremPoint; celelalalt punct extreme
Metode membru:
public LinePoint(int _x, int _y, Point _point) construieste si initializeaza
un obiect de tipul LinePoint de coordonate(_x,_y) poligonala. multipla
_point.
public Point getOtherPoint() returneaza punctul extrem.
public boolean equals(Object o) ) determina daca doua LinePoints sunt
egale, adica daca au aceleasi coordonate si daca punctul extrem coincide.
public Point getPoint() returneaza punctul de intersectie de tipul Point .
public boolean smallerThat(LinePoint linePoint) testeaza daca punctul
este mai mic decit punctul linePoint.
public boolean goingDown() testeaza daca punctul extrem este mai jos
pe axa Oy
54
public boolean goingUp( ) testeaza daca punctul extrem este mai sus pe
axa Oy
Clasa LinePoints
Clasa Area
55
Implementeaza un obiect folosit la retinerea punctelor aflate pe o suprafata
intre liniile poligonale ale unuei linii poligonale multiple.
Date membru:
public Hashtable Points = new Hashtable(); este folosit la retinerea
punctelor cit si a tipului acestora (daca sunt interioare sau pe una din liniile
poligonale)
private int minX coordonata maxima pe axa Ox a punctelor aflate in
aceasta structura
private int minY coordonata minima pe axa Oy a punctelor aflate in
aceasta structura.
private int maxX coordonata maxima pe axa Ox a punctelor aflate in
aceasta structura.
private int maxY coordonata maxima pe axa Oy a punctelor aflate in
aceasta structura.
private boolean isNew = true; semnifica daca este true ca obiectul nu
contine nici un punct si false in caz contrar.
Metode membru:
public AreaPointType getAreaPoint(Point point) returneaza tipul
punctului point
public void updatePoint(Point point)- aduga punctul point.
private boolean isOnBorder(Point point) testeaza daca punctul point
este pe granita.
public void makeBorder() determina punctele de pe granite.
private void updateMinMax(Point point) updateaza
minX,minY,maxX,maxY daca la multime s-a adaugat punctul point
public boolean isInnerPoint(Point point) determina daca punctul point
este in interiorul suprafetei.
public void putYLineSegment(int line, int xstart, int xfinish) adauga
punctele intre punctual de coordinate (xstart,line) si respectiv
(ystart,line).
56
public void putLinePoints(LinePoints linePoints) pune punctele de pe
acesta linie de puncte linePoints.
public void addArea(MultiPolyLine multiPolyLine) aduga punctele de
pe suprafata aflata intre liniile poligonale ale obiectului multiPolyLine.
public boolean isBorderSegment(Segment segment) testeaza daca
segmentul segment se afla pe granite.
public boolean isBorderSegment(Point point1, Point point2) testeaza
daca segmentul cu extremitatile point1 si point2se afla pe granite.
Clasa IntersecterMultiPolyLine
57
public IntersecterMultiPolyLine(MultiPolyLine _multiPoly1,
MultiPolyLine _multiPoly2) construieste si initializeaza un obiect de
acest tip cu liniile poligonale multiple _multiPoly1 si _multiPoly2.
public MultiPolyLine getFirstMultiPolyLine() returneaza prima linie
poligonala multipla.
public MultiPolyLine getSecondMultiPolyLine returneaza a doua linie
poligonala multipla.
private void init() –initializeaza data membru segmente.
private void putIntersectionsPointsBack() pune toate punctele de
intersectie descoperite pe segmentele corespunzatoare
private void addPointsTo(Segment sgm, Vector points) adauga punctele
points pe segmentul sgm
Clasa ReunionMultiPoly
58
obiect de acest tip cu liniile poligonale multiple firstMultiPolyLine si
secondMultiPolyLine.
public void addSegment(Segment segment)-aduga segmentul segment
la linia poligonala multipla ce va fi returnata.
public MultiPolyLine getReunionMultiPolyLine returneaza linia
poligonala multipala ce se dorea sa se obtina.
59