Advertisement
Guest User

Untitled

a guest
Aug 14th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.58 KB | None | 0 0
  1. public class GraphicObject
  2. {
  3.     private Circle head;
  4.     private Rectangle body;
  5.     private Rectangle neck;
  6.     private Line rightArm;
  7.     private Line leftArm;
  8.     private Line rightLeg;
  9.     private Line leftLeg;
  10.     private String Color;
  11.     private int α=0, dx=0,dy=0;
  12.     public GraphicObject(int X,int Y,String Color)
  13.     {
  14.         this.Color=Color;
  15.         head=new Circle(-13,-60,20,"white");
  16.         neck=new Rectangle(-20,-61,14,20,"white");
  17.         body=new Rectangle(-43,-41,60,100,"white");
  18.         rightArm=new Line(2,-41,37,29,"white");
  19.         leftArm=new Line(-38,-41,-63,29,"white");
  20.         rightLeg=new Line(-23,59,-23,129,"white");
  21.         leftLeg=new Line(-3,59,-3,129,"white");
  22.         move(X,Y);
  23.         changeColor(Color);
  24.     }
  25.     public void setAngle(int ß)
  26.     {
  27.         int dx2=dx, dy2=dy;
  28.         dx=0;dy=0;
  29.         α=ß%360;
  30.         head.erase();
  31.         neck.erase();
  32.         body.erase();
  33.         rightArm.erase();
  34.         leftArm.erase();
  35.         rightLeg.erase();
  36.         leftLeg.erase();
  37.         if(α==0)
  38.         {
  39.             head=new Circle(-13,-60,20,"white");
  40.             neck=new Rectangle(-20,-61,14,20,"white");
  41.             body=new Rectangle(-43,-41,60,100,"white");
  42.             rightArm=new Line(2,-41,37,29,"white");
  43.             leftArm=new Line(-38,-41,-63,29,"white");
  44.             rightLeg=new Line(-23,59,-23,129,"white");
  45.             leftLeg=new Line(-3,59,-3,129,"white");
  46.         }
  47.         else if(α==270)
  48.         {
  49.             //מזיז ל0,0 ומסובב
  50.         head=new Circle(-60,-13,20,"white");
  51.         neck=new Rectangle(-61,-20,20,14,"white");
  52.         body=new Rectangle(-41,-43,100,60,"white");
  53.         rightArm=new Line(-41,2,29,37,"white");
  54.         leftArm=new Line(-41,-38,29,-63,"white");
  55.         rightLeg=new Line(59,-23,129,-23,"white");
  56.         leftLeg=new Line(59,-3,129,-3,"white");
  57.         }
  58.         else if(α==180)
  59.         {
  60.             //מזיז ל0,0 ומסובב
  61.             head=new Circle(-13,109,20,"white");
  62.             neck=new Rectangle(-20,85,14,20,"white");
  63.             body=new Rectangle(-43,-11,60,100,"white");
  64.             rightArm=new Line(2,59,37,-11,"white");
  65.             leftArm=new Line(-38,59,-63,-11,"white");
  66.             rightLeg=new Line(-23,-11,-23,-81,"white");
  67.             leftLeg=new Line(-3,-11,-3,-81,"white");
  68.         }
  69.         else if(α==90)
  70.         {
  71.             //מזיז ל0,0 ומסובב
  72.             head=new Circle(109,-13,20,"white");
  73.             neck=new Rectangle(79,-20,20,14,"white");
  74.             body=new Rectangle(-11,-43,100,60,"white");
  75.             rightArm=new Line(74,2,4,37,"white");
  76.             leftArm=new Line(74,-38,4,-63,"white");
  77.             rightLeg=new Line(9,-23,-80,-23,"white");
  78.             leftLeg=new Line(29,-3,-80,-3,"white");
  79.         }
  80.         else
  81.             System.out.println("α=90k|k∈ℕ");
  82.         move(dx2, dy2);
  83.         changeColor(Color);
  84.     }
  85.     public void Rotate(int)
  86.     {
  87.             setAngle(+α);
  88.     }
  89.     public int getAngle()
  90.     {
  91.         return α;
  92.     }
  93.     public int getX()
  94.     {
  95.         return dx;
  96.     }
  97.     public int getY()
  98.     {
  99.         return dy;
  100.     }
  101.     public static boolean isEqualTo(GraphicObject o1,GraphicObject o2)
  102.     {
  103.         return(o1.getAngle()==o2.getAngle()&&o1.getX()==o2.getX()&&o1.getY()==o2.getY());
  104.     }
  105.     public void move(int dx,int dy)
  106.     {
  107.         this.dx+=dx; this.dy+=dy;
  108.         head.move(dx, dy);
  109.         neck.move(dx, dy);
  110.         body.move(dx, dy);
  111.         rightArm.move(dx, dy);
  112.         leftArm.move(dx, dy);
  113.         rightLeg.move(dx, dy);
  114.         leftLeg.move(dx, dy);
  115.     }
  116.     public void changeColor(String newColor)
  117.     {
  118.         head.changeColor(newColor);
  119.         neck.changeColor(newColor);
  120.         body.changeColor(newColor);
  121.         rightArm.changeColor(newColor);
  122.         leftArm.changeColor(newColor);
  123.         rightLeg.changeColor(newColor);
  124.         leftLeg.changeColor(newColor);
  125.     }
  126.     public GraphicObject copyTo(int newX,int newY)
  127.     {
  128.         GraphicObject a=new GraphicObject(newX,newY,Color);
  129.         return(a);
  130.     }
  131.     public void moveTo(int newX,int newY)
  132.     {
  133.         move(-dx,-dy);
  134.         move(newX,newY);
  135.     }
  136.     public void wait(int miliseconds)
  137.     {
  138.         Canvas canvas=Canvas.getCanvas();
  139.         canvas.wait(miliseconds);
  140.     }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement