1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| import java.util.Scanner;
import java.lang.String;
import javax.swing.*;
import java.awt.*;
public class Dragon
{
public static Point[] inv(Point tab[])
{
int i;
Point pro;
for(i=0;i<=(tab.length)/2;i++) {
pro = tab[i];
tab[i] = tab[tab.length-i-1];
tab[tab.length-i-1] = pro;
}
return tab;
}
public static void test(Point tab[]) {
int i;
for(i=0;i<tab.length;i++) {
System.out.println(tab[i]);
}
System.out.println("--------------------------");
}
public static Point[] fus(Point tab[],Point tab2[])
{
int i,a=0;
Point tabf[];
System.out.println("TABLEAU 1");
test(tab);
System.out.println("TABLEAU 2");
test(tab2);
if (tab[tab.length-1] == tab2[0]) {
tabf = new Point[tab.length+tab2.length-1];
a =1;
}
else {
tabf = new Point[tab.length+tab2.length];
}
for (i=0;i<tab.length;i++) {
tabf[i] = tab[i];
}
for (i=a;i<tab2.length;i++) {
tabf[tab.length+i-a] = tab2[i];
}
System.out.println("TABLEAU FUSIONNE");
test(tabf);
return tabf;
}
public static Point[] cpc(Point P, Point Q, int ordre)
{
Point tab[] = {P,Q};
if(ordre == 0) {
return tab;
}
else
{
Point R;
R = new Point();
R.x =(P.x+Q.x+Q.y-P.y)/2;
R.y =(P.y+Q.y-Q.x+P.x)/2;
return fus(cpc(P,R,ordre-1),inv(cpc(Q,R,ordre-1)));
}
}
public static void main (String args[]) {
Point A,B;
A = new Point();
B = new Point();
A.x = 0;
A.y = 0;
B.x = 1000;
B.y = 0;
new AffCourbe(cpc(A,B,3));
}
} |
Partager