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

<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration"> <component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" /> <file type="web" url="file://$PROJECT_DIR$" />
</component> </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" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>
\ No newline at end of file
...@@ -16,6 +16,7 @@ repositories { ...@@ -16,6 +16,7 @@ repositories {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
implementation 'org.junit.jupiter:junit-jupiter:5.8.1'
testImplementation group: 'junit', name: 'junit', version: '4.12' testImplementation group: 'junit', name: 'junit', version: '4.12'
testImplementation 'org.hamcrest:hamcrest-library:1.3' testImplementation 'org.hamcrest:hamcrest-library:1.3'
} }
......
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import java.util.ArrayList;
import java.util.List;
abstract public class AbstractShape implements Shape {
private List<Point2D> points = new ArrayList<>();
public void addPoints(List<Point2D> lpoints){
for (Point2D point : lpoints) {
points.add(point);
}
}
public int pointsCount() {
return points.size();
}
public Point2D point(int index) {
return points.get(index);
}
public abstract void draw(GraphicsContext graphicsContext);
}
package shape; package shape;
import javafx.application.Application; import javafx.application.Application;
import javafx.beans.binding.BooleanExpression;
import javafx.geometry.Point2D; import javafx.geometry.Point2D;
import javafx.scene.Group; import javafx.scene.Group;
import javafx.scene.Scene; import javafx.scene.Scene;
...@@ -26,6 +27,8 @@ public class App extends Application { ...@@ -26,6 +27,8 @@ 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);
Rectangle rect = new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40));
System.out.println(rect.pointsCount());
shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40))); shapeContainer.addShape(new Rectangle(Color.BLUE,new Point2D(10,10), new Point2D(40,40)));
shapeContainer.draw(graphicsContext); shapeContainer.draw(graphicsContext);
root.getChildren().add(canvas); root.getChildren().add(canvas);
......
package shape;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
public class BorderDecorator extends Decorator {
private double radius;
BorderDecorator(Shape decoratedShape, double radius){
super(decoratedShape);
this.radius = radius;
}
@Override
void drawDecoration(GraphicsContext graphicsContext) {
graphicsContext.setFill(Color.BLUE);
for(int i = 0; i< decoratedShape.pointsCount(); i++){
graphicsContext.fillOval(decoratedShape.point(i).getX(),decoratedShape.point(i).getY(),5,5);
}
}
}
package shape;
import javafx.scene.canvas.GraphicsContext;
public class CenterDecorator extends Decorator{
private double radius;
CenterDecorator(Shape decoratedShape, double radius){
super(decoratedShape);
this.radius = radius;
}
@Override
void drawDecoration(GraphicsContext graphicsContext) {
}
}
...@@ -3,23 +3,23 @@ package shape; ...@@ -3,23 +3,23 @@ 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 { abstract public class Decorator implements Shape{
protected Shape decoratedShape;
public Circle(double x, double y, double sqrt) { Decorator(Shape decoratedShape){
this.decoratedShape = decoratedShape;
} }
@Override
public int pointsCount() { public int pointsCount() {
return 0; return decoratedShape.pointsCount();
} }
@Override
public Point2D point(int index) { public Point2D point(int index) {
return null; return decoratedShape.point(index);
} }
@Override
public void draw(GraphicsContext context) { public void draw(GraphicsContext context) {
decoratedShape.draw(context);
} }
abstract void drawDecoration(GraphicsContext graphicsContext);
} }
package shape;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import java.util.List;
public class Polygon extends AbstractShape{
Color color;
Polygon(Color color, List<Point2D> points){
this.color = color;
addPoints(points);
}
@Override
public void draw(GraphicsContext context) {
context.setFill(color);
double[] xPoints = new double[pointsCount()];
double[] yPoints = new double[pointsCount()];
for (int i = 0; i < pointsCount(); i++){
xPoints[i] = point(i).getX();
yPoints[i] = point(i).getY();
}
context.fillPolygon(xPoints, yPoints, pointsCount());
}
}
...@@ -4,24 +4,22 @@ import javafx.geometry.Point2D; ...@@ -4,24 +4,22 @@ import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext; import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
public class Rectangle implements Shape{ import java.util.ArrayList;
import java.util.List;
public class Rectangle extends AbstractShape{
Color color; Color color;
Rectangle(Color color, Point2D point0, Point2D point1){ Rectangle(Color color, Point2D point0, Point2D point1){
this.color = color; this.color = color;
} List<Point2D> points = new ArrayList<>();
points.add(point0);
@Override points.add(point1);
public int pointsCount() { addPoints(points);
return 0;
}
@Override
public Point2D point(int index) {
return null;
} }
@Override @Override
public void draw(GraphicsContext context) { 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());
} }
} }
...@@ -9,7 +9,9 @@ public class ShapeContainer{ ...@@ -9,7 +9,9 @@ public class ShapeContainer{
private List<Shape> shapes = new ArrayList<>(); private List<Shape> shapes = new ArrayList<>();
public void addShape(Shape shape){} public void addShape(Shape shape){
shapes.add(shape);
}
public void draw(GraphicsContext context){ public void draw(GraphicsContext context){
for(Shape shape : shapes) for(Shape shape : shapes)
......
package state; package state;
import javafx.scene.canvas.Canvas; import javafx.scene.canvas.Canvas;
import shape.Circle;
import shape.Shape; import shape.Shape;
import java.util.ArrayList; import java.util.ArrayList;
......