繁体   English   中英

简单的笛卡尔坐标计算器

[英]Simple Cartesian coordinate calculator

我试图减去2个向量的坐标,但我是一个无法弄清楚我需要的OOP代码的初学者。 这就是我到目前为止所拥有的。

public class practice {

    public static class vector{
        int a;
        int b;
        public vector(int a, int b){
            this.a = a;
            this.b = b;
        }
        public String coordinate(int x, int y){
            x = this.a - a;
            y = this.b - b;
            return x + " " + y;
        }
    }

    public static void main(String[] args) {
        vector vec1 = new vector(2,3);
        vector vec2 = new vector(3,4);

        vector.coordinate?

    }
}

如何从2个矢量对象中减去int?

我在这里做了一些基本的例子,它允许你从另一个向量中减去一个向量。

package com.test;

public class Vector {

    private int x;
    private int y;

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

    /**
     * @return the x
     */
    public int getX() {
        return x;
    }

    /**
     * @return the y
     */
    public int getY() {
        return y;
    }
    // if you don't want to create new vector and subtract from it self, then return type of this method would be void only.
    public Vector subtract(Vector other) {
        return new Vector(this.x - other.x, this.y - other.y);
    }

    @Override
    public String toString() {
        return this.x + " : "+ this.y;
    }

    public static void main(String[] args) {
        Vector vector1 = new Vector(10, 10);
        Vector vector2 = new Vector(5, 5);
        Vector vector3 = vector1.subtract(vector2); 
        System.out.println(vector3);
    }
}

我想你只想使用vec1中的数据从vec2调用coordinate方法。 如果是这样,这是一种方法:

System.out.println(vec1.coordinate(vec2.a,vec2.b));

在这种情况下,您还需要将坐标方法更改为:

    public String coordinate(int x, int y){
        x = this.a - x;
        y = this.b - y;
        return x + " " + y;
    }

您可以创建一个方法XsubtractY ,您可以为其输入两个向量,然后在其中获取每个向量a和b并相互减去它们以返回新的向量。 如下:

public class practice {

public static class vector{
    int a;
    int b;
    public vector(int a, int b){
        this.a = a;
        this.b = b;
    }
    public static vector XsubtractY(vector x, vector y){
        vector newVector = new vector(x.a-y.a, x.b - y.b);
        return newVector;
    }

}

public static void main(String[] args) {
    vector vec1 = new vector(2,3);
    vector vec2 = new vector(3,4);
    vector newVector = vector.XsubtractY(vec1, vec2);
    System.out.println("New vector a: " + String.valueOf(newVector.a));
    /* New vector a: -1 */
    System.out.println("New vector b: " + String.valueOf(newVector.b));
    /* New vector b: -1 */

}
}

新向量变为(-1,-1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM