Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • b21228304/graphic-2020-2-0
  • l21221596/graphic-2020
  • c19014407/graphic-2020
  • b23019494/graphic-2020
  • g21212987/graphic-2020
  • couetoux.b/graphic-2020
  • s22029480/graphic-2020
  • c23025119/tp-3-graphique
  • m19023837/graphic-2020-tp-5
  • s22029480/graphic-tp-4
  • m19023837/graphic-2020-tp-7
  • n22021899/tp-3-programmation-conception
  • r24025701/graphic-2020
  • a23022716/exo-2-tp-3-algo
  • m23000189/graphic-2024
  • b21228304/graphic-2020
  • t21234458/graphic-2020
  • v23014723/graphic-2020
  • h22021483/graphic-2020
  • t21234458/graphic-2020-tiakout-khaled
  • m19023837/graphic-2020-chadi
  • b20031964/graphic-2020
22 results
Select Git revision
  • master
1 result
Show changes
Commits on Source (3)
......@@ -8,7 +8,7 @@
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="11" />
<option name="gradleJvm" value="jbr-11" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="corretto-16" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="jbr-11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import java.util.ArrayList;
import java.util.List;
public abstract class AbstractShape implements Shape {
private List<Point2D> points;
public AbstractShape(){
this.points = new ArrayList<>();
}
@Override
public int pointsCount() {
return this.points.size();
}
@Override
public Point2D point(int index) {
return this.points.get(index);
}
@Override
abstract public void draw(GraphicsContext context) ;
public void addPoints(List<Point2D> points) {
this.points.addAll(points);
}
}
......@@ -10,6 +10,8 @@ import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.stage.Stage;
import java.util.ArrayList;
import java.util.List;
public class App extends Application {
......@@ -21,12 +23,22 @@ public class App extends Application {
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Canvas canvas = new Canvas(130, 110);
Canvas canvas = new Canvas(260, 220);
GraphicsContext graphicsContext = canvas.getGraphicsContext2D();
ShapeContainer shapeContainer = new ShapeContainer();
graphicsContext.setFill(Color.AQUAMARINE);
graphicsContext.fillOval(10,10,10,10);
shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40)));
Rectangle rectangle = new Rectangle(Color.BLUE,new Point2D(100,100), new Point2D(200,200));
shapeContainer.addShape(rectangle);
List<Point2D> points = new ArrayList<>();
points.add(new Point2D(10,10));
points.add(new Point2D(100,40));
points.add(new Point2D(60,60));
points.add(new Point2D(40,100));
Polygon polygon = new Polygon(Color.BLACK,points);
shapeContainer.addShape(polygon);
BorderDecorator borderDecorator = new BorderDecorator(rectangle,10);
borderDecorator.drawDecoration(graphicsContext);
shapeContainer.draw(graphicsContext);
root.getChildren().add(canvas);
primaryStage.setScene(new Scene(root));
......
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import java.util.ArrayList;
import java.util.List;
public class BorderDecorator extends Decorator{
private double radius;
public BorderDecorator(Shape decoratedShape, double radius) {
super(decoratedShape);
this.radius = radius;
}
@Override
protected void drawDecoration(GraphicsContext graphicsContext) {
List<Point2D> list = new ArrayList<>();
for(int index = 0 ; index<pointsCount() ; index++){
list.add(point(index));
}
for(Point2D point : list){
graphicsContext.fillOval(point.getX()-(radius/2),point.getY()-(radius/2),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;
import javafx.geometry.Point2D;
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) {
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
}
@Override
......
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
abstract public class Decorator implements Shape {
protected Shape decoratedShape;
public Decorator(Shape decoratedShape){
this.decoratedShape = decoratedShape;
}
@Override
public int pointsCount() {
return decoratedShape.pointsCount();
}
@Override
public Point2D point(int index) {
return decoratedShape.point(index);
}
@Override
public void draw(GraphicsContext context) {
decoratedShape.draw(context);
}
protected abstract void drawDecoration(GraphicsContext graphicsContext);
}
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import java.util.ArrayList;
import java.util.List;
public class Polygon extends AbstractShape {
Color color;
public Polygon(Color color , List<Point2D> points){
this.color = color;
addPoints(points);
}
@Override
public void draw(GraphicsContext context) {
double[] coordinateX = new double[pointsCount()];
double[] coordinateY = new double[pointsCount()];
for(int index = 0 ; index<pointsCount() ; index++){
coordinateX[index]=point(index).getX();
coordinateY[index]=point(index).getY();
}
context.setFill(color);
context.fillPolygon(coordinateX,coordinateY,pointsCount());
}
}
......@@ -4,24 +4,24 @@ import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
public class Rectangle implements Shape{
import java.util.ArrayList;
import java.util.List;
public class Rectangle extends AbstractShape implements Shape{
Color color;
Rectangle(Color color, Point2D point0, Point2D point1){
this.color = color;
}
@Override
public int pointsCount() {
return 0;
}
@Override
public Point2D point(int index) {
return null;
List<Point2D> list = new ArrayList<>();
list.add(point0);
list.add(point1);
addPoints(list);
}
@Override
public void draw(GraphicsContext context) {
context.setFill(color);
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
......@@ -9,10 +9,13 @@ public class ShapeContainer{
private List<Shape> shapes = new ArrayList<>();
public void addShape(Shape shape){}
public void addShape(Shape shape){
shapes.add(shape);
}
public void draw(GraphicsContext context){
for(Shape shape : shapes)
shape.draw(context);
}
}