我开始研究 Java 中的 OOP 概念,并尝试为点、线、平面和曲面创建一个基本类,但我创建的方法遇到了问题。public class Punto{ public double x, y; public Punto(double pX, double pY){ this.x = pX; this.y = pY; } public String puntoTela(){ return "( " + x + " , " + y + " )"; } public void rotacion(double grado) { double rad = (grado * Math.PI) / 180; this.x = (this.x * Math.cos(rad) + this.y * - Math.sin(rad)); this.y = (this.x * Math.sin(rad) + this.y * Math.cos(rad)); } }我的问题是:如果我声明Punto p = new Punto(5, 2)并调用该rotation方法,我将无法回到原始值。public class Ejemplo { public static void main(String[] args){ Punto p = new Punto(5, 2); System.out.println(p.puntoTela()); // shows (5, 2) p.rotacion(45); System.out.println(p.puntoTela()); // shows (5, 2) after rotatin 90 deg = (2.1, 2.9) System.out.println(p.x); // 2.1 i want original value of 5 }}我试图为旋转方法创建局部变量,但它不起作用我该怎么办??谢谢!
2 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
你基本上有两个选择:
创建一个
void rotate(double grado)
改变对象本身的方法创建一个方法
Punto rotated(double grado)
,该方法返回一个Point
相当于原点旋转一定量的新点
你不能做的是让一个对象同时旋转而不是旋转。
添加回答
举报
0/150
提交
取消