Skip to content
Snippets Groups Projects
Commit c93bd542 authored by 1380's avatar 1380
Browse files

Some modifications

parent 4a9193b8
Branches
No related tags found
No related merge requests found
...@@ -3,23 +3,28 @@ package shape; ...@@ -3,23 +3,28 @@ package shape;
import javafx.geometry.Point2D; import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext; import javafx.scene.canvas.GraphicsContext;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public abstract class AbstractShape implements Shape { public abstract class AbstractShape implements Shape {
private List<Point2D> points; private List<Point2D> points;
public AbstractShape(){
this.points = new ArrayList<>();
}
@Override @Override
public int pointsCount() { public int pointsCount() {
return points.size(); return this.points.size();
} }
@Override @Override
public Point2D point(int index) { public Point2D point(int index) {
return points.get(index); return this.points.get(index);
} }
@Override @Override
abstract public void draw(GraphicsContext context) ; abstract public void draw(GraphicsContext context) ;
public void addPoints(List<Point2D> points) { public void addPoints(List<Point2D> points) {
points.addAll(points); this.points.addAll(points);
} }
} }
...@@ -10,6 +10,8 @@ import javafx.scene.paint.Color; ...@@ -10,6 +10,8 @@ import javafx.scene.paint.Color;
import javafx.scene.paint.Paint; import javafx.scene.paint.Paint;
import javafx.stage.Stage; import javafx.stage.Stage;
import java.util.ArrayList;
import java.util.List;
public class App extends Application { public class App extends Application {
...@@ -26,7 +28,13 @@ public class App extends Application { ...@@ -26,7 +28,13 @@ public class App extends Application {
ShapeContainer shapeContainer = new ShapeContainer(); ShapeContainer shapeContainer = new ShapeContainer();
graphicsContext.setFill(Color.AQUAMARINE); graphicsContext.setFill(Color.AQUAMARINE);
graphicsContext.fillOval(10,10,10,10); graphicsContext.fillOval(10,10,10,10);
shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40))); shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(50,50), new Point2D(100,100)));
List<Point2D> points = new ArrayList<>();
points.add(new Point2D(20,20));
points.add(new Point2D(30,30));
//points.add(new Point2D(80,80));
shapeContainer.addShape(new Polygon(Color.BLACK,points));
shapeContainer.draw(graphicsContext); shapeContainer.draw(graphicsContext);
root.getChildren().add(canvas); root.getChildren().add(canvas);
primaryStage.setScene(new Scene(root)); primaryStage.setScene(new Scene(root));
......
...@@ -19,5 +19,11 @@ public class BorderDecorator extends Decorator{ ...@@ -19,5 +19,11 @@ public class BorderDecorator extends Decorator{
@Override @Override
protected void drawDecoration(GraphicsContext graphicsContext) { protected void drawDecoration(GraphicsContext graphicsContext) {
List<Point2D> list = new ArrayList<>(); List<Point2D> list = new ArrayList<>();
for(int index = 0 ; index<pointsCount() ; index++){
list.add(point(index));
}
for(Point2D point : list){
graphicsContext.strokeOval(point.getX(),point.getY(),radius,radius);
}
} }
} }
package shape;
import javafx.scene.canvas.GraphicsContext;
public class CenterDecorator extends Decorator {
double radius;
public CenterDecorator(Shape decoratedShape, double radius) {
super(decoratedShape);
this.radius = radius;
}
@Override
protected void drawDecoration(GraphicsContext graphicsContext) {
}
}
...@@ -3,19 +3,10 @@ package shape; ...@@ -3,19 +3,10 @@ package shape;
import javafx.geometry.Point2D; import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext; import javafx.scene.canvas.GraphicsContext;
public class Circle implements Shape { public class Circle extends AbstractShape implements Shape {
public Circle(double x, double y, double sqrt) { public Circle(double x, double y, double sqrt) {
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
} }
@Override @Override
......
...@@ -23,6 +23,7 @@ public class Polygon extends AbstractShape { ...@@ -23,6 +23,7 @@ public class Polygon extends AbstractShape {
coordinateX[index]=point(index).getX(); coordinateX[index]=point(index).getX();
coordinateY[index]=point(index).getY(); coordinateY[index]=point(index).getY();
} }
context.strokePolygon(coordinateX,coordinateY,pointsCount()); context.setFill(color);
context.fillPolygon(coordinateX,coordinateY,pointsCount());
} }
} }
...@@ -19,7 +19,9 @@ public class Rectangle extends AbstractShape implements Shape{ ...@@ -19,7 +19,9 @@ public class Rectangle extends AbstractShape implements Shape{
@Override @Override
public void draw(GraphicsContext context) { public void draw(GraphicsContext context) {
context.strokeRect(point(0).getX(),point(0).getY(),point(1).getX()-point(0).getX(), context.setFill(color);
point(1).getY()-point(0).getY()); context.fillRect(point(0).getX(),point(0).getY(),(point(1).getX())-(point(0).getX()),
(point(1).getY())-(point(0).getY()));
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment