2017-02-16 14 views
1

Я хочу центрировать существующий треугольник. Запрос запрашивает, чтобы основание треугольника было длиной холста, а пик касался верхнего и центрированного. Это для класса, и код был дан.Как центрировать изображение в Java?

public class Triangle { 
    private int height; 
    private int width; 
    private int xPosition; 
    private int yPosition; 
    private String color; 
    private boolean isVisible; 

    public Triangle() { 
     height = 270; 
     width = 270; 
     xPosition = 120; 
     yPosition = 120; 
     color = "green"; 
     isVisible = false; 
    } 

    public void makeVisible() { 
     isVisible = true; 
     draw(); 
    } 

    public void makeInvisible() { 
     erase(); 
     isVisible = false; 
    } 

    public void moveRight() { 
     moveHorizontal(20); 
    } 

    public void moveLeft() { 
     moveHorizontal(-20); 
    } 

    public void moveUp() { 
     moveVertical(-20); 
    } 

    public void moveDown() { 
     moveVertical(20); 
    } 

    public void moveHorizontal(int distance) { 
     erase(); 
     xPosition += distance; 
     draw(); 
    } 

    public void moveVertical(int distance) { 
     erase(); 
     yPosition += distance; 
     draw(); 
    } 

    public void slowMoveHorizontal(int distance) { 
     int delta; 

     if(distance < 0) { 
      delta = -1; 
      distance = -distance; 
     } 
     else { 
      delta = 1; 
     } 

     for(int i = 0; i < distance; i++) { 
      xPosition += delta; 
      draw(); 
     } 
    } 

    public void slowMoveVertical(int distance) { 
     int delta; 

     if(distance < 0) { 
      delta = -1; 
      distance = -distance; 
     } 
     else { 
      delta = 1; 
     } 

     for(int i = 0; i < distance; i++) { 
      yPosition += delta; 
      draw(); 
     } 
    } 

    public void changeSize(int newHeight, int newWidth) { 
     erase(); 
     height = newHeight; 
     width = newWidth; 
     draw(); 
    } 

    public void changeColor(String newColor) { 
     color = newColor; 
     draw(); 
    } 

    private void draw() { 
     if(isVisible) { 
      Canvas canvas = Canvas.getCanvas(); 
      int[] xpoints = { xPosition, xPosition + (width/2), xPosition + width }; 
      int[] ypoints = { yPosition + height, yPosition, yPosition + height}; 
      canvas.draw(this, color, new Polygon(xpoints, ypoints, 3)); 
      canvas.wait(10); 
     } 
    } 

    private void erase() { 
     if(isVisible) { 
      Canvas canvas = Canvas.getCanvas(); 
      canvas.erase(this); 
     } 
    } 
} 
+0

Привет, добро пожаловать в переполнение стека. Пожалуйста, не просите решения вашей домашней работы, попробуйте найти подходящий подход самостоятельно, чтобы стать лучшим разработчиком ;-) –

+0

снят избыточные комментарии – stealthjong

ответ

1

Центр вашего треугольника будет

xPosition + (width/2) 
yPosition + (height/2) 

до «центра», вам нужно moveHorizontal/moveVertical до центра вашего треугольника не находится в центре пространства она должна быть в центре