This commit is contained in:
Simoes Lukas
2025-03-27 13:35:54 +01:00
parent 376861b608
commit fe693705bf
90 changed files with 1188 additions and 24 deletions

Binary file not shown.

View File

@@ -0,0 +1,47 @@
import java.awt.*;
import java.io.*;
public class EcritureFichier {
private int[] coordX;
private int[] coordY;
private int nbPoints;
private boolean aMultiplier;
public EcritureFichier(int[] coordX, int[] coordY, int nbPoints, boolean aMultiplier) {
this.coordX = coordX;
this.coordY = coordY;
this.nbPoints = nbPoints;
this.aMultiplier = aMultiplier;
try {
FileOutputStream fichier = new FileOutputStream("polygone.bin");
DataOutputStream flux = new DataOutputStream(fichier);
try{
for (int i = 0; i != nbPoints; i++) {
if (this.aMultiplier) {
flux.writeInt(this.coordX[i]*2);
flux.writeInt(this.coordY[i]*2);
}
else {
flux.writeInt(this.coordX[i]/2);
flux.writeInt(this.coordY[i]/2);
}
}
} catch (IOException e2) {
System.out.println("Erreur d'écriture");
}
try {
flux.close();
System.out.println("Fin de l'écriture");
} catch (IOException e3) {
System.out.println("Erreur de fermeture");
}
} catch (IOException e) {
System.out.println("Erreur d'ouverture");
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,15 @@
import java.awt.*;
import javax.swing.*;
public class Fenetre extends JFrame {
public Fenetre(boolean aMultiplier) {
this.setSize(500, 600);
this.setLocation(100, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(1, 1));
LectureFichier lecture = new LectureFichier();
this.add(new Polygone(lecture.getCoordX(), lecture.getCoordY(), lecture.getNbPoints()));
EcritureFichier ecriture = new EcritureFichier(lecture.getCoordX(), lecture.getCoordY(), lecture.getNbPoints(), aMultiplier);
}
}

Binary file not shown.

View File

@@ -0,0 +1,54 @@
import java.awt.*;
import java.io.*;
public class LectureFichier {
private int[] coordX;
private int[] coordY;
private int nbPoints;
public LectureFichier() {
try {
FileInputStream fichier = new FileInputStream("polygone.bin");
DataInputStream flux = new DataInputStream(fichier);
this.coordX = new int[flux.available()/8];
this.coordY = new int[flux.available()/8];
this.nbPoints = flux.available()/8;
int compteur = 0;
try {
while (flux.available() > 0) {
this.coordX[compteur] = flux.readInt();
this.coordY[compteur] = flux.readInt();
compteur++;
}
} catch (IOException e2) {
System.out.println("Erreur de lecture");
}
try {
flux.close();
} catch (IOException e3) {
System.out.println("Erreur de fermeture");
}
} catch (IOException e) {
System.out.println("Erreur d'ouverture");
}
}
public int[] getCoordX() {
return this.coordX;
}
public int[] getCoordY() {
return this.coordY;
}
public int getNbPoints() {
return this.nbPoints;
}
}

Binary file not shown.

View File

@@ -0,0 +1,14 @@
public class Main {
public static void main(String[] args) {
Fenetre fenetre;
try {
if (args[0].equals("diviser")) {
fenetre = new Fenetre(false);
}
else {
fenetre = new Fenetre(true);
}
} catch (ArrayIndexOutOfBoundsException e) {
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,28 @@
import java.awt.*;
import javax.swing.*;
public class Polygone extends JComponent {
private int[] coordX;
private int[] coordY;
private int nbPoints;
public Polygone(int[] coordX, int[] coordY, int nbPoints) {
this.coordX = coordX;
this.coordY = coordY;
this.nbPoints = nbPoints;
}
@Override
public void paintComponent(Graphics pinceau) {
Graphics secondPinceau = pinceau.create();
if (this.isOpaque()) {
secondPinceau.setColor(this.getBackground());
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
}
secondPinceau.setColor(Color.BLUE);
secondPinceau.fillPolygon(this.coordX, this.coordY, this.nbPoints);
}
}

Binary file not shown.