
| |
Cette interface affiche un tapis de Sierpinski
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
@author
public class Tapis extends JPanel {
private static final long serialVersionUID = 6899161860200488093L ;
public Tapis (){
super ();
setOpaque (false );
setBackground (Color.white);
setPreferredSize (new Dimension (500 ,500 ));
}
public static void main (String[] args) {
JFrame frame = new JFrame (" Tapis de sierpinski " );
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setContentPane (new Tapis ());
frame.pack ();
frame.setVisible (true );
}
public void paint (Graphics g) {
int nbreX = 1 ;
int nbreY = 1 ;
int nbre = 3 ;
int tailles = 6 ;
int cote= (int )Math.pow (nbre, tailles);
g.setColor (Color.white);
g.fillRect (0 , 0 , getSize ().width, getSize ().height);
g.setColor (Color.black);
for (int i = 0 ; i < tailles; i+ + ){
for (int x = 0 ; x < nbreX; x+ + ){
for (int y = 0 ; y < nbreY; y+ + ){
int xPosition = (1 + (nbre * x)) * (cote / nbre);
int yPosition = (1 + (nbre * y)) * (cote / nbre);
g.fillRect (xPosition, yPosition, cote / nbre, cote / nbre);
}
}
cote / = nbre;
nbreX * = nbre;
nbreY * = nbre;
}
super .paint (g);
}
}
|
|
| |
Cette classe affiche le triangle de sierpinski
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
@author
public class Triangle extends JPanel {
private static final long serialVersionUID = 6899161860200488093L ;
private final int min = 8 ;
private final int insets = 25 ;
private int color = 0 ;
private final Color[] colors = new Color[]{ Color.red, Color.black, Color.blue} ;
public Triangle (){
super ();
setOpaque (false );
setBackground (Color.white);
setPreferredSize (new Dimension (800 ,700 ));
}
@return
private int getBaseSize (){
return getSize ().width - (insets * 2 );
}
public void paint (Graphics g) {
int hauteur = (int )(getBaseSize () * Math.sqrt (3 )/ 2 );
int xA = insets;
int xB = insets + getBaseSize ();
int xC = insets + getBaseSize () / 2 ;
int [] sommetsX = { xA, xB, xC} ;
int yA = insets + hauteur;
int yB = insets + hauteur;
int yC = insets;
int [] sommetsY = { yA, yB, yC} ;
drawTriangle (sommetsX, sommetsY, getBaseSize () / 2 , g);
super .paint (g);
}
@param
@param
@param
@param
private void drawTriangle (int [] sommetsX, int [] sommetsY, int d , Graphics g) {
if (d > min) {
int [] s1 = { 2 , 2 , 1 } ;
int [] s2 = { 1 , 0 , 0 } ;
int [] x = { (sommetsX[1 ] + sommetsX[2 ]) / 2 ,
(sommetsX[0 ] + sommetsX[2 ]) / 2 ,
(sommetsX[0 ] + sommetsX[1 ]) / 2 } ;
int [] y = { (sommetsY[1 ] + sommetsY[2 ]) / 2 ,
(sommetsY[0 ] + sommetsY[2 ]) / 2 ,
(sommetsY[0 ] + sommetsY[1 ]) / 2 } ;
for (int i = 0 ; i < 3 ; i+ + ){
int [] newX = { sommetsX[i], x[s1[i]], x[s2[i]]} ;
int [] newY = { sommetsY[i], y[s1[i]], y[s2[i]]} ;
drawTriangle (newX, newY, d / 2 , g);
}
} else {
g.setColor (colors[color]);
g.fillPolygon (sommetsX, sommetsY, 3 );
if (color = = 0 ){
color = 1 ;
} else if (color = = 1 ){
color = 2 ;
} else {
color = 0 ;
}
}
}
public static void main (String[] args) {
JFrame frame = new JFrame (" Triangle de sierpinski " );
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setContentPane (new Triangle ());
frame.pack ();
frame.setVisible (true );
}
}
|
|
Consultez les autres pages sources
|