Presentation is loading. Please wait.

Presentation is loading. Please wait.

NestedLoops-Mody7-part51 Two-Dimensional Arrays and Nested Loops – part 5 Rotations Barb Ericson Georgia Institute of Technology May 2007.

Similar presentations


Presentation on theme: "NestedLoops-Mody7-part51 Two-Dimensional Arrays and Nested Loops – part 5 Rotations Barb Ericson Georgia Institute of Technology May 2007."— Presentation transcript:

1 NestedLoops-Mody7-part51 Two-Dimensional Arrays and Nested Loops – part 5 Rotations Barb Ericson Georgia Institute of Technology May 2007

2 NestedLoops-Mody7-part52 Learning Goals Understand at a conceptual and practical level –How to copy one picture to another so that the first picture is rotated 90 degrees left or right –How to simplify a problem –How to come up with an algorithm to solve a problem –How to test the algorithm

3 NestedLoops-Mody7-part53 Copy with Left Rotation How can you copy one picture onto another so that the first picture is rotated to the left 90 degrees?

4 NestedLoops-Mody7-part54 Left Rotation First simplify the problem by thinking about how to copy when each pixel has a number at it Can you come up with an algorithm for this? 123 456 36 25 14 012 0 1 0 0 1 1 2 source target

5 NestedLoops-Mody7-part55 Left Rotation Try out your algorithm on another example –Does it work? Can you translate it into code? 5678 1234 012 0 1 0 0 1 1 2 3 3

6 NestedLoops-Mody7-part56 Left Rotation To rotate an image left 90 degrees still copy all the pixels –But they go to different locations in the target Column values become row values target x = source y target y = source width - 1 – source x 123 456 36 25 14 012 0 1 0 0 1 1 2

7 NestedLoops-Mody7-part57 Left Rotation Algorithm Loop through the source x –Loop through the source y Get the source pixel at the x and y values Get the target pixel with the x equal the source y value and the y equal the source picture width – 1 minus the source x Copy the color from the source pixel to the target pixel

8 NestedLoops-Mody7-part58 Left Rotation Method public static void copyLeftRotation( Picture source, Picture target) { Pixel sourcePix = null; Pixel targetPix = null; int targetX, targetY = 0; // loop through the columns for (int sX = 0; sX < source.getWidth(); sX++) { Put this in your Copy or Duplicate class with the other copy methods

9 NestedLoops-Mody7-part59 Copy Left Rotation

10 NestedLoops-Mody7-part510 Test your leftRotation method Put the method in your Copy or Duplicate class. Create a main method to test it. Your public static void main() should go in the same class. Test the method by creating a new target picture –Picture source = new Picture(“duckie.gif”); –Picture destination = new Picture(source.getHeight(), source.getWidth()); –copyLeftRotation(source, destination); –destination.show();

11 NestedLoops-Mody7-part511 Right Rotation How can you copy one picture onto another so that the first picture is rotated to the right 90 degrees?

12 NestedLoops-Mody7-part512 Right Rotation Assume that each pixel holds one number This is the result of a right rotation on this 2-d array Can you create an algorithm for this? 123 456 41 52 63 012 0 1 0 0 1 1 2

13 NestedLoops-Mody7-part513 Right Rotation Try out your algorithm on another example –Does it work? Can you translate it into code? 5678 1234 012 0 1 0 0 1 1 2 3 3

14 NestedLoops-Mody7-part514 Right Rotation To rotate an image right 90 degrees still copy all the pixels –But they go to different locations in the target Column values become row values target y = source x target x = source height – 1 – source y 123 456 41 52 63 012 0 1 0 0 1 1 2

15 NestedLoops-Mody7-part515 Test both methods Create the copyRightRotation method by modifying copyLeftRotation Put both methods in your Copy or Duplicate class. Create a main method to test them. Test the methods by creating a new target picture –Picture source = new Picture(“duckie.gif”); –Picture destination = new Picture(source.getHeight(), source.getWidth()); –copyLeftRotation(source, destination); –destination.show(); –copyRightRotation(source,destination); –destination.show();

16 NestedLoops-Mody7-part516 Summary To copy one picture to another with the first picture rotated –You need to change the targetX and targetY You should simplify a problem –And try to solve it by hand –Then come up with an algorithm for solving it –And then try it on another example


Download ppt "NestedLoops-Mody7-part51 Two-Dimensional Arrays and Nested Loops – part 5 Rotations Barb Ericson Georgia Institute of Technology May 2007."

Similar presentations


Ads by Google