翻转并否定java中的坐标点?

时间:2014-02-23 08:09:12

标签: java class object methods point

你如何拍摄点物体并翻转坐标并切换标志?如果你想在下面的代码中添加一个名为flip的方法:

    public class Point {
    private int x;
    private int y;

    // flip method goes here

}

我尝试过这样的事情:

    public class flip(){
    x = 0-x;
    y = 0-y;
    Point p = new Point(y,x);
}

但它不起作用。 (81,21)我只得到(-81,-21)。它没有翻转它。但方法不能采取任何参数,如果这甚至相关。感谢。

3 个答案:

答案 0 :(得分:1)

如果您想要翻转坐标(因此调用p.flip()修改Point p,那么这应该有效:

public class Point {
    private int x;
    private int y;

    public void flip() {
        int tmp = x;
        x = -y;
        y = -tmp;
    }
}

如果您希望flip()方法返回一个翻转坐标的新点,那么您可以这样做:

public class Point {
    private int x;
    private int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public Point flip() {
        return new Point(-y, -x);
    }
}

答案 1 :(得分:0)

试试这个:

public Point flip(Point orig){
    return new Point(-orig.y, -orig.x);
}

如果您无法传递任何参数,请将它们作为类变量。

private Point mPoint;

public void flip(){
    mPoint.x = -mPoint.y;
    mPoint.y = -mPoint.x;
}

答案 2 :(得分:0)

以下代码之类的内容适用于您的情况:

public Point flip(Point point)
{
  return new Point(-point.getY(), -point.getX());
}