Files
L-System/src/lsystem/screen/gl2d/Point2.java
2021-03-23 15:53:10 +01:00

115 lines
1.6 KiB
Java

package lsystem.screen.gl2d;
public class Point2 {
private float x;
private float y;
public Point2 () {
}
public Point2 (float x, float y) {
this.x = x;
this.y = y;
}
public Point2 (Point2 old, int angle) {
angle = compactAngle(angle);
//Point a = new Point();
//x = getNewOrigin(old, angle, 0.1f);
getNewOrigin(old, angle, 0.1f);
}
public float getX() {
return x;
}
public void setX(float x) {
this.x = x;
}
public float getY() {
return y;
}
public void setY(float y) {
this.y = y;
}
public void getNewOrigin (Point2 old, int angle, float echelle) {
int newX=0, newY=0;
switch (angle) {
case 0:
newX = 1;
newY = 1;
break;
case 45:
newX = 1;
newY = 0;
break;
case 90:
newX = 1;
newY = -1;
break;
case 135:
newX = 0;
newY = -1;
break;
case 180:
newX = -1;
newY = -1;
break;
case 225:
newX = -1;
newY = 0;
break;
case 270:
newX = -1;
newY = 1;
break;
case 315:
newX = 0;
newY = 1;
break;
}
this.x = old.getX() + echelle * newX;
this.y+= old.getY() + echelle * newY;
//return old;
}
public String toString () {
return "("+this.x+";"+this.y+")";
}
public static int compactAngle (int angle) {
angle = angle - ((angle / 360) * 360);
switch (angle) {
case -315:
angle = 45;
break;
case -270:
angle = 90;
break;
case -225:
angle = 135;
break;
case -180:
angle = 180;
break;
case -135:
angle = 225;
break;
case -90:
angle = 270;
break;
case -45:
angle = 315;
break;
}
return angle;
}
}