Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc.

Lignende præsentationer


Præsentationer af emnet: "Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc."— Præsentationens transcript:

1 Rekursive skildpadder Supertrekanter....

2  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc. triangle penta poly macro pasta bigMac semiFinal finale ultimo finitto

3  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.3 Hvordan tegnes en macro? macro(160); poly(80); penta(40); triangle(20); penta(40); triangle(20);

4  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.4 Tegning af macro...

5  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.5 Omdøbning triangle penta poly macro pasta bigMac semiFinal finale ultimo finitto superTriangle 0 superTriangle 1 superTriangle 2 superTriangle 3 superTriangle 4 superTriangle 5 superTriangle 6 superTriangle 7 superTriangle 8 superTriangle 9

6  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.6 poly og macro public void poly(int l) { penta(l/2); move(l/2); penta(l/2); turn(120); move(l/2); turn(-120); penta(l/2); turn(-120); move/l/2); turn(120); } public void macro(int l) { poly(l/2); move(l/2); poly(l/2); turn(120); move(l/2); turn(-120); poly(l/2); turn(-120); move/l/2); turn(120); }

7  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.7 superTriangle 2 og 3 public void superTriangle2(int l) { superTriangle1(l/2); move(l/2); superTriangle1(l/2); turn(120); move(l/2); turn(-120); superTriangle1(l/2); turn(-120); move/l/2); turn(120); } public void superTriangle3(int l) { superTriangle2(l/2); move(l/2); superTriangle2(l/2); turn(120); move(l/2); turn(-120); superTriangle2(l/2); turn(-120); move/l/2); turn(120); }

8  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.8 Parametrisering public void superTriangle(int d, int l) { superTriangle(d-1, l/2); move(l/2); superTriangle(d-1, l/2); turn(120); move(l/2); turn(-120); superTriangle(d-1, l/2); turn(-120); move/l/2); turn(120); } superTriangle(3, 160); svarer til macro(160); superTriangle(2, 160); svarer til poly(160); superTriangle(1, 160); svarer til penta(160); UPS!... superTriangle(0, 160); svarer til

9  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.9 Fuldstændig løsning public void superTriangle(int d, int l) { // d >= 0 if ( d == 0 ) triangle(l); else { superTriangle(d-1, l/2); move(l/2); superTriangle(d-1, l/2); turn(120); move(l/2); turn(-120); superTriangle(d-1, l/2); turn(-120); move/l/2); turn(120); } superTriangle(3, 160); svarer til macro(160); superTriangle(2, 160); svarer til poly(160); superTriangle(1, 160); svarer til penta(160); superTriangle(0, 160); svarer tiltriangle(160);

10  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.10 Hvordan tegnes en penta? sT(1,40); sT(0,20); sT: superTriangle triangle(20); penta penta: 3 små trekanter

11  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.11 Hvordan tegnes en poly? sT(2,80); sT(1,40); poly penta poly: 3 + 3 + 3 = 9 små trekanter

12  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.12 Hvordan tegnes en macro? sT(3,160); sT(2,80); poly macro: 9 + 9 + 9 = 27 små trekanter

13  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.13 Udfoldet rekursionstræ sT(3,160); sT(2,80); sT(1,40); sT(0,20);

14  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.14 Tegning af macro...


Download ppt "Rekursive skildpadder Supertrekanter.....  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringRekursive skildpadder.2 Penta, etc."

Lignende præsentationer


Annoncer fra Google