Advertisement
Guest User

simple window example

a guest
Aug 21st, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. import se.lth.cs.window.SimpleWindow;
  2.  
  3. public class Turtle
  4. {
  5. private int x;
  6. private int y;
  7. private double a;
  8. private boolean pen;
  9. private SimpleWindow sw;
  10.  
  11. /** skapar en sköldpadda som ritar i ritfönstret w.
  12. Från början befinner sig sköldpaddan i punkten xHome,yHome med pennan
  13. lyft och huvudet pekande rakt uppåt i fönstret, dvs i negativ y-riktning
  14. */
  15. Turtle(SimpleWindow w, int xHome, int yHome)
  16. {
  17. this.sw = w;
  18. this.x = xHome;
  19. this.y = yHome;
  20.  
  21. a = 90;
  22. sw.moveTo(x, y);
  23. a = Math.toRadians(a);
  24. }
  25.  
  26. /** sänker pennan */
  27. public void penDown()
  28. {
  29. pen = true;
  30. }
  31.  
  32. /** lyfter pennan */
  33. public void penUp()
  34. {
  35. pen = false;
  36. }
  37.  
  38. /** går rakt framåt n pixlar i huvudets riktning */
  39. public void forward(int n)
  40. {
  41. sw.moveTo(x, y);
  42. double tempX = sw.getX() + n*Math.cos(a);
  43. double tempY = sw.getY() - n*Math.sin(a);
  44.  
  45. this.x = (int)Math.round(tempX);
  46. this.y = (int)Math.round(tempY);
  47.  
  48. System.out.println("X: " + x + " " + "Y: " + y);
  49.  
  50. if(pen)
  51. {
  52. this.sw.lineTo(x,y);
  53. }else{
  54. jumpTo(x, y);
  55. }
  56.  
  57. }
  58.  
  59. /** vrider huvudet beta grader åt vänster */
  60. public void left(int beta)
  61. {
  62. a += Math.toRadians(beta);
  63. }
  64.  
  65. /** vrider hvudet beta grader åt höger */
  66. public void right(int beta)
  67. {
  68. a -= Math.toRadians(beta);
  69. }
  70.  
  71. /** går till punkten newX,newY utan att rita.
  72. Pennans läge och huvudets riktning påverkas inte */
  73. public void jumpTo(int newX, int newY)
  74. {
  75. sw.moveTo(newX, newY);
  76. x = newX;
  77. y = newY;
  78.  
  79. }
  80.  
  81. /** återställer huvudets riktning till den ursprungliga */
  82. public void turnNorth()
  83. {
  84. a = Math.toRadians(90);
  85. }
  86.  
  87. /** tar reda på sköldpaddans aktuella x-koordinat */
  88. public int getX()
  89. {
  90. return this.x;
  91. }
  92.  
  93. /** tar reda på sköldpaddans aktuella y-koordinat */
  94. public int getY()
  95. {
  96. return this.y;
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement