수학에서 나쁘지 않다고 생각합니다. 간단한 수학 거리 수식을 코드로 변환하는 것이 어려울 것이라고 생각합니다. 하기. 나는 분명히 그렇게하지 않는다. 간단히 말해서, 두 개의 3D 점 사이의 거리를 계산해야하고 어떤 이유로 든 수식이 올바르게 작동하지 않습니다. 나는 그것이 잘못 작성했는지 또는 무언가가 꺼져있는지를 알지 못합니다. 왜냐하면 여러 번 작성했기 때문에 여전히 올바르게 작동하지 않기 때문입니다.0의 값을 반환하는 Math.pow 및 Math.sqrt 수식
이것은 내가 모든 변수는 루프와 (I 중첩 for
루프를 사용하고 모두 0으로하는 테스트의 두 가지 방법, 쓰기, 시도했습니다
public class Distance
{
Distance() {}
double d;
double x1, x2, y1, y2, z1, z2;
public void setD (double d)
{
this.d = d;
}
double distance()
{
/* return Math.sqrt (Math.pow ((x2 - x1), 2)
+ Math.pow ((y2 - y1), 2)
+ Math.pow ((z2 - z1), 2));
*/
return Math.sqrt ((x2 - x1) * (x2 - x1)
+ (y2 - y1) * (y2 - y1)
+ (z2 - z1) * (z2 - z1));
}
}
내 거리 공식을 가지고 내 public class Distance
입니다 최대 3, 사용자 입력을 위해 쓰기 전에 테스트).
누구든지 내가 왜이 문제를 겪고 있는지 설명 할 수 있다면 많은 도움이 될 것입니다.
편집 : 사람들이 특정 값으로 초기화하라고 알려주고 있습니다. 나는 내가 테스트 루프에서 초기화했음을 확신한다. 명확성을 위해 게시해야한다는 것을 알았다.
class Distance_test
{
public static void main (String [] args)
{
Distance line = new Distance();
double d;
for (double x1 = 0; x1 <= 2; x1++)
{
line.setD (x1);
d = line.distance();
for (double x2 = 0; x2 <= 2; x2++)
{
line.setD (x2);
for (double y1 = 0; y1 <= 2; y1++)
{
line.setD (y1);
for (double y2 = 0; y2 <= 2; y2++)
{
line.setD (y2);
for (double z1 = 0; z1 <= 2; z1++)
{
line.setD (z1);
for (double z2 = 0; z2 <= 2; z2++)
{
line.setD (z2);
System.out.printf ("\n Distance of 3D line with points %.2f, %.2f, %.2f, %.2f, %.2f, %.2f is %.2f\n", x1, x2, y1, y2, z1, z2, line.distance());
}
}
}
}
}
}
}
}
그리고 그래, 나는 그것이 조금 지저분한이다하지만 난 그냥 나는 그것이 더 좋은 모양에 도착하기 전에 먼저 작업을 얻으려고 생각하십니까.
C#과 유사하지만 C++와 유사합니다. 또한, 'x1','x2','y1','y2','z1','z2'는 어디에 할당합니까? 이 변수들이 초기화되지 않았다면 그들은 모두 0으로 초기화 될 것입니다. –
네, 다른 C++ 지정을하고 있었고 태그가 섞여서 죄송합니다. –