Add screensaver files
This commit is contained in:
61
src/MovingLine.java
Normal file
61
src/MovingLine.java
Normal file
@@ -0,0 +1,61 @@
|
||||
import org.jfree.fx.FXGraphics2D;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.geom.Line2D;
|
||||
|
||||
public class MovingLine {
|
||||
|
||||
private MovingPoint beginPoint;
|
||||
private MovingPoint endPoint;
|
||||
private Color color;
|
||||
|
||||
private int counter = 0;
|
||||
|
||||
private int MAX_LINES = 30;
|
||||
|
||||
private Line2D.Double[] trailingLines;
|
||||
|
||||
public MovingLine(MovingPoint beginPoint, MovingPoint endPoint, Color color) {
|
||||
this.beginPoint = beginPoint;
|
||||
this.endPoint = endPoint;
|
||||
this.color = color;
|
||||
|
||||
trailingLines = new Line2D.Double[MAX_LINES];
|
||||
}
|
||||
|
||||
public void draw(FXGraphics2D graphics) {
|
||||
graphics.setColor(color);
|
||||
graphics.draw(getAsLine());
|
||||
|
||||
for (int i = trailingLines.length-1; i >= 0; i--) {
|
||||
if (trailingLines[i] != null)
|
||||
graphics.draw(trailingLines[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public void update() {
|
||||
this.beginPoint.update();
|
||||
this.endPoint.update();
|
||||
|
||||
counter++;
|
||||
if (counter == MAX_LINES) {
|
||||
counter = 0;
|
||||
}
|
||||
|
||||
for (int i = trailingLines.length-1; i > 0; i--) {
|
||||
trailingLines[i] = trailingLines[i-1];
|
||||
}
|
||||
|
||||
trailingLines[0] = getAsLine();
|
||||
|
||||
}
|
||||
|
||||
public void setMovingBounds(double canvasWidth, double canvasHeight) {
|
||||
this.beginPoint.setMovingBounds(canvasWidth, canvasHeight);
|
||||
this.endPoint.setMovingBounds(canvasWidth, canvasHeight);
|
||||
}
|
||||
|
||||
public Line2D.Double getAsLine() {
|
||||
return new Line2D.Double(beginPoint.getxPos(), beginPoint.getyPos(), endPoint.getxPos(), endPoint.getyPos());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user