Sunteți pe pagina 1din 27

Clasa Point

Implementeaza un punct in spatiul OxOy unde Ox,Oy , x,y intregi.

private int x cooardonata pe axa Ox


private int y coordonata pe axa Oy
public Point(int _x, int _y) construieste si initializeaza un punct de cooordonatele
(_x,_y)
public Point(Point point) construieste si initializeaza un punct cu aceeasi locatie
ca punctul point;
public void setX(int _x) seteaza coordonata pe axa Ox la valoarea _x.
public void setY(int _y) seteaza coordonata pe axa Oy la valoarea _y.
public int getX() returneaza coordonata pe axa Ox.
public int getY() returneaza coordonata pe axa Oy.
public boolean equals(Object o) determina daca doua puncte sunt egale, adica
daca au aceleasi coordonate;
public int hashCode() intoarce valoarea hash code pentru acest obiect . Aceasta
metoda este folosita in tabelele de dispersie ca cea implementata in clasa
java.util.Hashtable
public String toString() intoarce o reprezentare String a acestui punct.
public static Point midPoint(Point point1,Point point2) intoarce punctul aflat la
jumatatea distantei dintre punctele point1 si point2..
public static double midX(Point point1,Point point2) intoarce coordonata pe axa
Ox a punctului aflat la jumatatea distantei dintre punctele point1 si point2.
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
Implementeaza functia unei linii, f(x,y)=Ax+By+C

private float A coeficientul coordonatei x.


private float B coeficientul coordonatei y
private float C coeficientul coordonatei termenului liber..

public static String SameLine = "este aceeasi linie" un mesaj de eroare daca 2
FunctionLine sunt ale aceleasi linii.

public FunctionLine(Point point1, Point point2) ) construieste si initializeaza


functia liniei care trece prin punctele point1 si point2.

public FunctionLine(float x1, float y1, float x2, float y2) construieste si
initializeaza functia liniei care trece prin punctele de coordonate (x1,y1) si (x2,y2).

public float getA() intoarce coeficientul lui x.


public float getB()intoarce coeficientul lui y
public float getC() intoarce coeficientul coordonatei termenului liber..

public float calc(Point point) calculeaza valoarea functiei pentru punctul point.

public boolean isOnThisFunctionLine(Point point) determina punctul point este


pe dreapta reprezentata de aceasta funcie.

public static float detAB(FunctionLine f1, FunctionLine f2) calculeaza


determinantul de rangul 2 format de A,B al functiilor f1 si f2;
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

Implementeaza o linie poligonala. Daca primul punct este egal cu ultimul atunci linia
poligonala este un poligon.

Vector points punctele acestei linii poligonale.

public PolyLine() construieste si initializeaza o linie poligonala fara nici un punct.

public PolyLine(Point point) construieste si initializeaza o linie poligonala. cu


punctul point.

public PolyLine(PolyLine polyLine) construieste si initializeaza o linie poligonala


ce contine aceleasi puncte cu linia poligonala polyLine.

public void addPoint(Point point) aduga un punct la sfirsitul acestei linii


poligonale.

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 .
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

Implementeaza tipul unui punct pe suprafata unui polygon.

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.

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 granita
Clasa Segment
Implementeaza un segment de dreapta
private Point from prima extremitate a segmentului
private Point to a doua extremitate a segmentului

private FunctionLine f = null; functia liniei pe care se afla segmentul

public Segment(Segment sgm) construieste si initializeaza segmentul .cu aceleasi


extremitati cu ale segmentului sgm

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 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.

public boolean containsPointAndItIsNotExtreme(Point point) testeaza daca


punctul point se afla pe segment si nu este o extremitate a segmentului.

public boolean isExtremePoint(Point point) testeaza daca punctul point este o


extremitate a segmentului.
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

Implementeaza o multime de puncte.


private Vector Points = new Vector(); punctele din acest vector.

public void addSegmentPoint(Point point) adauga punctul point la sfirsitul


acestui punct.

public void addSegmentPoints(Vector _points) aduga punctele cuprinse in


vectorul _points.

public Vector getPoints() returneaza un obiect de tipul Vector care cuprinde toate
punctele din acest obiect.

public Point getSegmentPoint(int index) returneaza punctul cu indexul index din


aceasta multime, daca el exista, null in caz contrar .

public int getNumberOfPoints() returneaza numarul de puncte.

Clasa MultiPolyLine

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.

private Vector polyLines = new Vector(); un vector de linii poligonale.

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()

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 PolyLineCreater

Implementeaza un obiect folosit la crearea liniilor poligonale ale unor poligoane


speciale
public static final int CIRCLE=0;constanta cu semnificatia cerc.
public static final int SQUARE=1; constanta cu semnificatia patrat
public static final int EQUILATELAR_TRIANGLE=2; constanta cu semnificatia
triunghi echilateral

public static Point rotPoint(double pX,double pY,double x0,double y0,double


alfaRad) returneaza punctul obtinut in urma rotatiei punctului de coordonate
(pX,pY) in jurul punctului de coordonate (x0,y0) cu unghiul alfaRad exprimat in
grade

public static Point rotPoint(Point point,double x0,double y0,double alfaRad)


returneaza punctul obtinut in urma rotatiei punctului point in jurul punctului de
coordonate (x0,y0) cu unghiul alfaRad exprimat in grade.

public static PolyLine createPolyLine(int fig,Point point1,Point point2)-


returneaza linia poligonala corespunzatoare figurii reprezentate prin constanta fig si
cu dreapta axei de simetrie determinate de punctele point1 si point2.

public static MultiPolyLine createMultiPolyLine(int fig,Point point1,Point


point2)
returneaza linia poligonala multipla. corespunzatoare figurii reprezentate prin
constanta fig si cu dreapta axei de simetrie determinate de punctele point1 si point2
Clasa LinePoint
Extinde clasa Point.
Implementeaza un punc aflat la intersectia unei drepte paralele cu axa Ox si un
segment de dreapta.Daca punctul este un punct extrem al segmentului atunci el mai
retine si cealalalt punct extrem.

Point extremPoint; celelalalt punct extrem

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

public boolean goingUp( ) testeaza daca punctul extrem este mai sus pe axa Oy
Clasa LinePoints

Implementeaza o lista de puncte LinePoint aflate la intersectia unei drepte


paralele cu axa Ox, o linie poligonala multipla...

private Vector Points = new Vector(); vectorul de puncte

private MultiPolyLine multiPolyLine; linia poligonala multipla


private int line; cooardonata pe axa Oy a liniei.

public LinePoints(int _line, MultiPolyLine _multiPolyLine) construieste si


initializeaza obiectul cu linia _line, paralela cu axa Ox ordonata si cu linia
poligonala multipla _ multiPolyline.

public void addLinePoint(LinePoint linePoint) –aduga punctul LinePoint la


aceasta linie.

public int getLine() returneaza coordonata pe axa Oy a liniei

public LinePoint getLinePoint(int index) returneaza punctul cu indexul index,


null, daca el nu exista.

public int getNumberOfPoints() returneaza numarul de puncte.

public boolean goingInTheSameDirection(LinePoint point1, LinePoint point2)


testeaza daca punctele point1 si point2 se afla pe segmente care au cealalta
extremitate in aceeasi parte fata de linia line .

public void makeReady() – in acesta linie se elimina anumite puncte pentru ca in


aceasta multime pentru ca punctele aflate pe segmentele, formate din punctele de
index x si x+1 unde x par sa fie, din aceasta multime sa fie inauntrul figurii cuprinse
intre liniile poligonale ale obiectului multiPolyLine .
Clasa Area
Implementeaza un obiect folosit la retinerea punctelor aflate pe o suprafata intre liniile
poligonale ale unuei linii poligonale multiple.

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.
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).
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
Implementeaza un obiect folosit pentru obtinerea liniilor poligonale multiple rezultate
ca urmarea a adaugarii punctelor, aflate la intersectia segmentelor a doua linii
poligonale multiple, pe segmentele corespunzatoare din aceste linii poligonale
multiple.

private MultiPolyLine multiPoly1 prima linie poligonala multipla la care s-au


adugat punctele de intersectie
private MultiPolyLine multiPoly2; a doua linie poligonala multipla la care s-au
adugat punctele de intersectie
private MultiPolyLine oMultiPoly1; - prima linie poligonala multipla introdusa
private MultiPolyLine oMultiPoly2; - a doua linie poligonala multipla introdusa

private Hashtable segmente = new Hashtable(); un tablou in care se vor retine


toate punctele ce trebuie adaugate pe fiecare segment din aceste doua linii poligonale
multiple.

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

private void makeAllIntersectionsPoints(PolyLine poly1, PolyLine poly2)


calculeaza toate punctele de intersectie dintre liniile poligonale poly1 si poly2

private void makeAllIntersectionsPoints() calculeaza toate punctele de intersectie


dintre liniile poligonale multiple introduse la crearea obiectului.
Clasa ReunionMultiPoly
Implementeaza un obiect folosit pentru obtinerea unei linii poligonale multiple care sa
cuprinda intre liniile sale poligonale toata suprafata cuprinsa intre liniile poligonale
multiple primate ca parametru .

private MultiPolyLine ReunionMultiPolyLine = new MultiPolyLine();linia


poligonala ce se va obtine

Vector segmente = new Vector(); Vector in care se vor depozita temporar toate
segmentele

public ReunionMultiPoly(MultiPolyLine firstMultiPolyLine, MultiPolyLine


secondMultiPolyLine) construieste si initializeaza un 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.
Clasa Figures

Implementeaza o figura geometrica 2D care are o axa de simetrie.

public static final int Pa1=1;constanta cu semnificatia patrat


public static final int Pa3=3;constanta cu semnificatia cerc
public static final int Pa6=6;constanta cu semnificatia triunghi echilateral
public static final int Pl=0; constanta cu semnificatia alta figura geometrica
exceptandu-le pe cele de mai sus

private PolyLine polyLine=null; Linia poligonala a acestei figuri


private Point point1 primul punct al axei de simetrie
private Point point2 al doilea punct al axei de simetrie

int type=0; tipul figurii este una dintre constantele Pa1,Pa2,Pa2,Pl

public Figures(int _type,Point _point1,Point _point2) ) construieste si


initializeaza un obiect de acest tip cu tipul _type si cu axa de simetrie formata din
punctele _point1 si _point2.

public Figures(PolyLine _poly,Point _point1,Point _point2) construieste si


initializeaza un obiect de acest tip de tipul Pl cu linia poligonala formata reprezentata
de _poly si cu axa de simetrie formata din punctele _point1 si _point2.

public int getType() returneaza tipul figurii curente


public Point getAxePoint1() returneaza primul punct de pe axa de simetrie
public Point getAxePoint2() returneaza al doilea punct de pe axa de simetrie

public boolean hasPointInAxe(Point point) testeaza daca figura are punctul point
ca unul dintre punctele de pe axa de simetrie.

public PolyLine getPolyLine() returneaza linia poligonla a acestei figuri.


private static Figures composePa3Pa6(Figures fig1, Figures fig2) throws
Exception
realizeaza compunerea figurii fig1 de tipul Pa3 cu figura fig2 de tipul Pa6.

private static Figures composePa1Pa3(Figures fig1, Figures fig2) throws


Exception
realizeaza compunerea figurii fig1 de tipul Pa1 cu figura fig2 de tipul Pa3.

private static Figures composeCirclePolyLine( Figures fig1, Figures fig2)


realizeaza compunerea figurii fig1 de tipul Pa3 cu figura fig2 de tipurile Pa3 ,Pl

private static Figures composePolyLines(Figures fig1, Figures fig2 )


realizeaza compunerea figurii fig1 de tipul Pl cu figura fig2 de tipurile Pl

public static Figures compose(Figures fig1, Figures fig2) throws Exception


realizeaza compunerea figurii fig1 de tipul Pl cu figura fig2 de tipurile Pl
Pachetul Graf

Clasa Nod

Implementeaza un nod dint-un graf.

private String Name nume nodului,


private int xmin coordonata pe axa Ox a nodului .
private int ymin, xmin coordonata pe axa Oy a nodului.
private latura latura cercului prin care va fi desenat nodul
static private int contor indicele nodului curent in graf

public Nod(int startX,int startY,int Latura) construieste si initializeaza un obiect


de acest tip avind coordonatele in spatiul OxOy (startX , startY), identificat prin
numele Nod urmat de indexul sau in graf.

public Nod(int startX,int startY,int Latura,String nume) construieste si


initializeaza un obiect de acest tip avand coordonatele in spatial OxOy
(startX , ??????startY) , identificat prin numele nume..

public void setName(String name) seteaza numele nodului curent

public String getName() returneaza numele nodului curent


public String toString() returneaza o reprezentare de tip String a nodului curent

public void setXmin(int Xmin) seteaza coordonata xmin cu valoarea Xmin


public void setYmin(int Ymin) seteaza coordonata ymin cu valoarea Ymin
public void moveTo(int Xmin,int Ymin) deplaseaza nodul la punctul de coordonate
(Xmin,Ymin)

public int getCenterX() returneaza coordonata pe axa Ox a nodului curent


public int getCenterY() returneaza coordonata pe axa Oy a nodului curent

public int getLatura() returneaza raza cercului prin care am reprezantat nodul.
static public void resetCounter() reseteaza contorul de indici.

public boolean isThere(int x,int y)- testeaza daca punctual de coordonate x,y se
afla pe reprezentarea grafica a nodului.
public void paint(Graphics g) deseneaza nodul curent .

Clasa Arc

Implementeaza un arc intre doua noduri ale unui graf.


protected Nod From nodul sursa a arcului.
Protected Nod To nodul destinatie al arcului

static protected double dist(int x1,int y1,int x2,int y2) return distanta de la punctul
de coordonate (x1,y1)la punctul (x2,y2).

public Arc(Nod from,Nod to) construieste si initializeaza un arc de la nodul from


la nodul to.
public String toString() returneaza reprezentarea String a acestui nod.

public Nod getFrom() returneaza nodul sursa al arcului.


public Nod getTo() returneaza nodul destinatie al arcului.

public boolean isThere(int x,int y) testeaza daca coordonatele se afla pe arc-ul


curent.

Clasa Arc_Label

Implementeaza un arc avand mai multe etichete, extinzand clasa Arc.

private Vector Labels un tablou de etichete.


static int contor=0; un contor de etichete
String Name=

public Arc_Label(Nod from,Nod to,String nume,Vector Labels) construieste si


initializeaza arcul de la nodul from la nodul to, avand nodul
public Arc_Label(Arc arc,String nume,Vector Labels)
public Arc_Label(Nod from,Nod to)
public int getNumberOfLabels()-returneaza numarul de etichete
public String getName()
public boolean hasLabel(String thisLabel) testeaza daca arc-ul are eticheta
thisLabel
public String [] getLabels() returneaza vectorul de eticheta.
public String getLabel(int index) returneaza eticheta cu index-ul index.
public void addLabel(String newLabel) adauga eticheta newLabel.
public void deleteLabel(String thisLabel) sterge eticheta thisLabel.
public void paint(Graphics g) deseneaza arcul curent
public double dist(Nod nod) returneaza distanta de la arcul curent la nod-ul nod
public String toString() returneaza o reprezentarea string a arcului curent.
Clasa Graf
Implementeaza un graf stratifial etichetat

private Vector Noduri multimea de noduri ale acestui graf.


private Vector Arce multimea de noduri ale acestui graf

public Graf() construieste un obiect de acest tip


public Vector getArce() returneaza arcele acestui graf intr-un obiect de tipul Vector.

public Vector getNoduri() returneaza nodurile acestui graf intr-un obiect de tipul
Vector.
public int getNumberOfNoduri() returneaza numarul de noduri ale acestui graf.
public int getNumberOfArce returneaza numarul de arce ale acestui graf.
public Nod getNod(int index) returneaza nodul avand indexul index in lista de
noduri.
public Arc_Label getArc(int index) returneaza arcul avand indexul index in lista de
arcuri.

public void addNod(Nod nod) adauga nodul nod la acest graf.


public void addArc(Arc_Label arc) adauga arcul arc la acest graf
public void deleteArc(Arc_Label arc) sterge arcul arc din acest graf
protected void deleteArcWith(Nod nod)sterge arcurile care au ca extremitate nodul
nod

public void deleteNod(Nod nod) sterge nodul nod.


public Nod returnNodAt(int x,int y) returneaza nodul a carui reprezentare grafica
se afla la coordonatele x,y, null, daca el nu exista.
public Arc_Label returnArcAt(int x,int y) returneaza arcul a carui reprezentare
grafica se afla la coordonatele x,y, null, daca el nu exista.

public Arc_Label getReverse(Arc_Label this_arc) returneaza pentru arcul arc de


la nodul a la nodul b arcul de la nodul b la nodul a daca el exista, null, in caz contrar.

public boolean itersecteazaArc(Nod nod) testeaza daca reprezentarea grafica a


nodului nod intersecteaza reprezentarea grafica a unui arc.

public boolean hasThisNodeName(String name) testeaza daca in graf se afla un


nod avand numele name

// in esenta ca sa nu te lase sa pui doua arce implicite pe acelas arc ??????


public boolean allReadyDeffined(Arc_Label arc)

String arcStr=arc.toString().substring(arc.getName().length());
for(int i=0;i<Arce.size();i++)
{ Arc_Label auxArc=( Arc_Label) Arce.elementAt(i);
String auxArcStr=auxArc.toString().substring(auxArc.getName().length());
if (arcStr.equals(auxArcStr) )
return true;
}
return false;
}

public void reset()-reseteza numaratoarea indiciilor nodurilor

public String [] getNoduriStr() returneaza numele tuturor nodurilor din acest graf
intr-un obiect de tipul Vector.
public String[] getNoduriWithOut(Nod nod) returneaza numele tuturor nodurilor
din acest graf intr-un obiect de tipul Vector, exceptand nodul nod.

public Nod returnThisNode(String nodstr) returneaza nodul al carui nume coincide


cu nodstr, null, in cazul in care nu exista.

public void paint(Graphics g)-deseneaza graful.

Pachetul Xml

Acest pachet contine clase pentru scrierea si citirea unui graf dintr-un
fisier xml avind un format special.

Clasa GrafSAXHandler
Implementeaza interfata ContentHandler pentru citi informatiile din fisierul xml

private boolean flagLabel=false;


private Graf graf graful ce va fi incarcat;
private Arc_Label curentArc ultimul arc cu etichete ,variabila auxiliara folosite
temporar
private Arc arc_simplu arc variabila auxiliara folosite temporar
private String numeCurentArc numele arcului current, variabila auxiliara folosite
temporar;
private Vector curentLabels multimea etichetelor de pe arcul utimul arc citit,
variabila auxiliara folosite temporar;
public GrafSAXHandler() construieste si initializeaza un obiect de acest tip

public void startDocument() throws SAXException –realizeaza tratarea


evenimentului “inceput de document”

public void startElement(String ns,String local, String name, Attributes


atts)throws SAXException determina inceputul tratarii unui tag in functie de tipul
sau (Nod,Arc,Label)

public void endElement(String ns,String local, String name)throws


SAXException realizeaza actiunea corespunzatoare terminarii unui tag

public void characters(char[] ch, int start, int length)throws SAXException


realizeaza concatenarea caracterlor intre doua taguri pereche

public Graf getGraf() intoarce graful incarcat

public void startArc(Attributes atts) throws SAXException-realizeaza tratarea


evenimentului “inceput de arc”

public void startNod(Attributes atts)throws SAXException realizeaza tratarea


evenimentului “inceput de nod”
Clasa XMLReader

Implementeaza o clasa care citeste un graf dintr-un xml.

String fisie numele fisierului xml din care se citeste graf-ul


public XMLReader(String fisier) construieste si initializeaza un obiect de acest tip
pentru fisierul xml fisier.
public Graf openXML() throws Exception contruieste obiectul de tipul Graf
descris in fisierul xml fisier .

Clasa XMLWriter
Implementeaza o clasa care scrie un graf intr-un fisier xml.

FileWriter out fluxul de iesire folosit


Graf graf graful ce va fii scris.
static String xmlTabSpace=" ";reprezinta spatiul unei identatari.

public XMLWriter(Graf graf,String fisier) throws IOException construieste si


initializeaza un obiect de acest tip pentru graful graf si fisierul xml fisier.

public String XMLnewLine() trece la o linie noua in fluxul de iesire


public String XMLStringValue(int numar) converteste valoarea intreaga a
numar-ului intr-o reprezentare xml ca sir de caractere intre ghilimele. .
public String XMLStringValue(String string) converteste obiectul string intr-o
reprezentare xml ca sir de caracter intre ghilimele

protected String getTab(int i) intoarce reprezentarea string spatiului corespunzator

protected int getNumberOfArce() intorce numarul de arcuri al grafului

protected int getNumberOfNoduri() intorce numarul de noduri al grafului

protected void writeNod(int i)throws IOException scrie nodul i. in fisierul xml ce


va rezulta.Arunca o exceptie in cazul in care se intampla o eroare la scrierea in fisier.
protected void writeArc(int i)throws IOException scrie arcul I in fisierul xml ce
va rezulta Arunca o exceptie in cazul in care se intampla o eroare la scrierea in fisier.

protected void writeLabel(String label) throws IOException scrie eticheta label,


a arcului curent in fisier. Arunca o exceptie in cazul in care se intampla o eroare la
scrierea in fisier.

protected void writeLabels(int i) throws IOException scrie toate etichetele arcul


cu numarul I din graf, in fisier Arunca o exceptie in cazul in care se intampla o
eroare la scrierea in fisier.
protected void writeNoduri() throws IOException scrie toate nodurile grafului
in fisier Arunca o exceptie in cazul in care se intampla o eroare la scrierea in fisier.

protected void writeArce() throws IOException scrie toate arcele grafului Arunca
o exceptie in cazul in care se intampla o eroare la scrierea in fisier.
protected void writeBody() throws IOException Arunca o exceptie in cazul in
care se intampla o eroare la scrierea in fisier.
protected void writeFooter()throws IOException Arunca o exceptie in cazul in
care se intampla o eroare la scrierea in fisier.
public void saveXML() throws IOException Arunca o exceptie in cazul in care se
intampla o eroare la scrierea in fisier.
protected String getTabForArce() returneaza reprezentarea string a alinierii tagului
corespunzator multimii arcelor.
protected String getTabForArc() returneaza reprezentarea string a alinierii tagului
corespunzator unui arc
protected String getTabForNod()returneaza reprezentarea string a alinierii tagului
corespunzator unui nod.
protected String getTabForNoduri()returneaza reprezentarea string a alinierii
tagului multimii nodurilor.
protected String getTabForLabels()returneaza reprezentarea string a alinierii
tagului corespunzator multimii etichetelor unui arc.
protected String getTabForLabel()returneaza reprezentarea string a alinierii tagului
corespunzator unei etichete.
protected String getTabForGraf()returneaza reprezentarea string a alinierii tagului
corespunzator graf-ului..

S-ar putea să vă placă și

  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 1
    Cap4 1
    Document12 pagini
    Cap4 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document18 pagini
    Cap 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 2
    Cap4 2
    Document15 pagini
    Cap4 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 2
    Cap 2
    Document6 pagini
    Cap 2
    Andrei Sandu
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Licență
    Licență
    Document27 pagini
    Licență
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap4 1
    Cap4 1
    Document12 pagini
    Cap4 1
    Andrei Sandu
    Încă nu există evaluări
  • Cap4 2
    Cap4 2
    Document15 pagini
    Cap4 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 2
    Cap 2
    Document6 pagini
    Cap 2
    Andrei Sandu
    Încă nu există evaluări
  • Cap 1
    Cap 1
    Document18 pagini
    Cap 1
    Andrei Sandu
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Teorie 1
    Teorie 1
    Document17 pagini
    Teorie 1
    Andrei Sandu
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Important A
    Important A
    Document2 pagini
    Important A
    Anonymous 5RjXpI
    Încă nu există evaluări
  • XML
    XML
    Document7 pagini
    XML
    Andrei Sandu
    Încă nu există evaluări
  • Descrierea Algoritmului
    Descrierea Algoritmului
    Document13 pagini
    Descrierea Algoritmului
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Aplicatie
    Aplicatie
    Document6 pagini
    Aplicatie
    Anonymous 5RjXpI
    Încă nu există evaluări
  • Cap 3
    Cap 3
    Document7 pagini
    Cap 3
    Andrei Sandu
    Încă nu există evaluări