Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import se.lth.cs.window.SimpleWindow;
- public class Turtle
- {
- private int x;
- private int y;
- private double a;
- private boolean pen;
- private SimpleWindow sw;
- /** skapar en sköldpadda som ritar i ritfönstret w.
- Från början befinner sig sköldpaddan i punkten xHome,yHome med pennan
- lyft och huvudet pekande rakt uppåt i fönstret, dvs i negativ y-riktning
- */
- Turtle(SimpleWindow w, int xHome, int yHome)
- {
- this.sw = w;
- this.x = xHome;
- this.y = yHome;
- a = 90;
- sw.moveTo(x, y);
- a = Math.toRadians(a);
- }
- /** sänker pennan */
- public void penDown()
- {
- pen = true;
- }
- /** lyfter pennan */
- public void penUp()
- {
- pen = false;
- }
- /** går rakt framåt n pixlar i huvudets riktning */
- public void forward(int n)
- {
- sw.moveTo(x, y);
- double tempX = sw.getX() + n*Math.cos(a);
- double tempY = sw.getY() - n*Math.sin(a);
- this.x = (int)Math.round(tempX);
- this.y = (int)Math.round(tempY);
- System.out.println("X: " + x + " " + "Y: " + y);
- if(pen)
- {
- this.sw.lineTo(x,y);
- }else{
- jumpTo(x, y);
- }
- }
- /** vrider huvudet beta grader åt vänster */
- public void left(int beta)
- {
- a += Math.toRadians(beta);
- }
- /** vrider hvudet beta grader åt höger */
- public void right(int beta)
- {
- a -= Math.toRadians(beta);
- }
- /** går till punkten newX,newY utan att rita.
- Pennans läge och huvudets riktning påverkas inte */
- public void jumpTo(int newX, int newY)
- {
- sw.moveTo(newX, newY);
- x = newX;
- y = newY;
- }
- /** återställer huvudets riktning till den ursprungliga */
- public void turnNorth()
- {
- a = Math.toRadians(90);
- }
- /** tar reda på sköldpaddans aktuella x-koordinat */
- public int getX()
- {
- return this.x;
- }
- /** tar reda på sköldpaddans aktuella y-koordinat */
- public int getY()
- {
- return this.y;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement