Segment finis

This commit is contained in:
JunkJumper
2020-05-24 22:40:34 +02:00
parent baa86dd186
commit 1bdeb03d23
2 changed files with 43 additions and 30 deletions

View File

@ -1,52 +1,63 @@
package TD3.segment; package TD3.segment;
/********************************************************************************************
* @author JunkJumper *
* @license https://creativecommons.org/licenses/by/4.0/ License CC BY 4.0 *
* @since File available since 24/05/2020 *
********************************************************************************************/
import TD1.point.Point; import TD1.point.Point;
import TD9.comparable.main; import TD9.comparable.main;
public class Segment { public class Segment {
private Point origine; private Point origine;
private Point extremite; private Point extremite;
public Segment() { public Segment() {
this(0, 0, 0, 0); this(0, 0, 0, 0);
} }
public Segment(int xi, int yi, int xj, int yj) { public Segment(double xi, double yi, double xj, double yj) {
this.origine = new Point(xi, yi); this.origine = new Point(xi, yi);
this.extremite = new Point(xj, yj); this.extremite = new Point(xj, yj);
} }
public Segment(Point o, Point e) { public Segment(Point o, Point e) {
this.setOrigine(o); this(o.getX(), o.getY(), e.getX(), e.getY());
this.setExtremite(e);
} }
public Segment(int x, int y, Point p) { public Segment(double x, double y, Point p) {
this.setOrigine(x, y); this(x, y, p.getX(), p.getY());
this.setExtremite(p);
} }
public Segment(Point p, int x, int y) { public Segment(Point p, double x, double y) {
this.setOrigine(p); this(p.getX(), p.getY(), x, y);
this.setExtremite(x, y);
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
Segment s = (Segment)obj; Segment s = (Segment) obj;
return (this.origine.equals(s.origine) && this.extremite.equals(s.extremite)); return (this.origine.equals(s.origine) && this.extremite.equals(s.extremite));
} }
@Override @Override
public String toString() { public String toString() {
return "[" + this.getOrigine().toString() + " - " + this.getExtremite().toString() + "]"; return "[" + this.getOrigine().toString() + " - " + this.getExtremite().toString() + "]";
} }
@Override @Override
protected Object clone() throws CloneNotSupportedException { protected Object clone() throws CloneNotSupportedException {
return new Segment(this.origine, this.getExtremite()); return new Segment(this.origine, this.getExtremite());
} }
public Segment projX() {
return new Segment(this.origine.projX(), this.extremite.projX());
}
public Segment projY() {
return new Segment(this.origine.projY(), this.extremite.projY());
}
public Point getOrigine() { public Point getOrigine() {
return origine; return origine;
} }
@ -70,16 +81,5 @@ public class Segment {
protected void setExtremite(int x, int y) { protected void setExtremite(int x, int y) {
this.setExtremite(new Point(x, y)); this.setExtremite(new Point(x, y));
} }
public static void main(String[] args) {
Point un = new Point(3, 6);
Point deux = new Point(1, 8);
Segment seg1 = new Segment(2, 4, 6, 3);
Segment seg2 = new Segment(un, deux);
System.out.println(seg1.toString());
System.out.println(seg2.toString());
}
} }

View File

@ -18,6 +18,7 @@ public class SegmentTest {
private Point un = new Point(3, 6); private Point un = new Point(3, 6);
private Point deux = new Point(1, 8); private Point deux = new Point(1, 8);
private Segment seg1 = new Segment(2, 4, 6, 3); private Segment seg1 = new Segment(2, 4, 6, 3);
private Segment seg2 = new Segment(un, deux); private Segment seg2 = new Segment(un, deux);
private Segment seg3 = new Segment(1, 6, un); private Segment seg3 = new Segment(1, 6, un);
@ -43,4 +44,16 @@ public class SegmentTest {
s = (Segment) seg3.clone(); s = (Segment) seg3.clone();
assertTrue(s.equals(seg3)); assertTrue(s.equals(seg3));
} }
@Test
public void testProjX() {
Segment s = new Segment(2, 0, 6, 0);
assertEquals(s, seg1.projX());
}
@Test
public void testProjY() {
Segment s = new Segment(0, 4, 0, 3);
assertEquals(s, seg1.projY());
}
} }