如何减去或添加两个坐标
How to subtract or add two coordinates
我正在尝试对两个城市的两个坐标进行减法和加法。我想用 void 方法来做这件事。你有什么建议,我应该怎么做?
例如:
我想用city2(x2, y2)
减去city1 (x1, y1)
的坐标,然后在main class中调用它。那怎么办呢?
我在下面写了这段代码,但它不起作用或者我不知道如何调用它...
主要class:
public class Main {
public static void main(String[] args) {
Coordinates paris = new Coordinates(48.830103, 2.562957);
Coordinates rioDeJaneiro = new Coordinates(-22.492147, -43.143827);
坐标class:
public class Coordinates {
private double latitude;
private double longitude;
public Coordinates(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public double getLatitude() {
return this.latitude;
}
public double getLongitude() {
return this.longitude;
}
public void subtract(Coordinates otherCoordinates) {
new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
您的代码无法按预期运行。
你的减法应该像下面这样
public void subtract(Coordinates otherCoordinates) {
this.latitude = this.latitude- otherCoordinates.getLatitude();
this.longitude = this.longitude- otherCoordinates.getLongitude();
}
如果纬度和经度不可变则
public Coordinates subtract(Coordinates otherCoordinates) {
return new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
行得通。另一种方式是:
public static void subtract(Coordinates city1, Coordinates city2, Coordinates result) {
result.longitude = city1.getLongitude() - city2.getlongitude());
result.latitude = city1.getLatitude() - city2.getLatitude();
}
但是,您发布的经过修改的解决方案是最好的(正如已经指出的那样)。
public Coordinates subtract(Coordinates otherCoordinates) {
return new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
在后一种情况下,假设 subtract
是 Coordinates
class 中的一个方法,您可以按如下方式调用它:
Coordinates city1 = new Coordinates(...);
Coordinates city2 = new Coordinates(...);
Coordinates result = city1.subtract(city2);
我正在尝试对两个城市的两个坐标进行减法和加法。我想用 void 方法来做这件事。你有什么建议,我应该怎么做?
例如:
我想用city2(x2, y2)
减去city1 (x1, y1)
的坐标,然后在main class中调用它。那怎么办呢?
我在下面写了这段代码,但它不起作用或者我不知道如何调用它...
主要class:
public class Main {
public static void main(String[] args) {
Coordinates paris = new Coordinates(48.830103, 2.562957);
Coordinates rioDeJaneiro = new Coordinates(-22.492147, -43.143827);
坐标class:
public class Coordinates {
private double latitude;
private double longitude;
public Coordinates(double latitude, double longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public double getLatitude() {
return this.latitude;
}
public double getLongitude() {
return this.longitude;
}
public void subtract(Coordinates otherCoordinates) {
new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
您的代码无法按预期运行。 你的减法应该像下面这样
public void subtract(Coordinates otherCoordinates) {
this.latitude = this.latitude- otherCoordinates.getLatitude();
this.longitude = this.longitude- otherCoordinates.getLongitude();
}
如果纬度和经度不可变则
public Coordinates subtract(Coordinates otherCoordinates) {
return new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
行得通。另一种方式是:
public static void subtract(Coordinates city1, Coordinates city2, Coordinates result) {
result.longitude = city1.getLongitude() - city2.getlongitude());
result.latitude = city1.getLatitude() - city2.getLatitude();
}
但是,您发布的经过修改的解决方案是最好的(正如已经指出的那样)。
public Coordinates subtract(Coordinates otherCoordinates) {
return new Coordinates(this.latitude - otherCoordinates.getLatitude(),
this.longitude - otherCoordinates.getLongitude());
}
在后一种情况下,假设 subtract
是 Coordinates
class 中的一个方法,您可以按如下方式调用它:
Coordinates city1 = new Coordinates(...);
Coordinates city2 = new Coordinates(...);
Coordinates result = city1.subtract(city2);