2016-09-09 1 views
0

죄송하지만 이것은 잘못된 질문 일 수 있습니다. 그러나 중간 점, 각도 및 길이를 알고있는 선의 끝점을 찾아야합니다. 먼저 다음을 시도했습니다.각도, 중간 점 및 길이를 알고있는 Java에서 enpoints를 얻는 방법

public Point getEndpointA(Point midpoint, double angle, double length) { 
     Point a = new Point(0, 0); 
     a.x = midpoint.x + (int) length * Math.cos(angle); 
     a.y = midpoint.y + (int) length * Math.sin(angle); 
     return a; 
    } 
    public Point getEnpointB(Point midpoint, double angle, double length) { 
     Point b = new Point(0, 0); 
     b.x = midpoint.x + (int) length * Math.cos(-angle); 
     b.y = midpoint.y + (int) length * Math.sin(-angle); 
     return b; 
    } 

그런 다음이 함수를 호출하여 라인의 enpoint를 가져 왔습니다. 그러나 이것은 정확하지 않았으며, 요점은 내가 바라는 곳으로 배치되지 않았습니다. 그런 다음 거리 공식을 시험해 보았습니다.하지만 대수 I 만 시작했기 때문에 대수 I에서 다루지 않는 지수와 급진적 인 표지를 제거하는 데 문제가있었습니다. sin과 cos 함수를 사용하고, 지금 그들이 의미하는 바를 이해하므로, 나는 그것들에 대해 어떻게 알 수 있습니다.) 그래서, 누군가는 중간 점, 각도 및 길이에 기초한 선의 끝점을 반환하는 함수를 작성하고 설명해 줄 수 있습니다 어떻게 작동합니까?

+1

라인에 각도가 있습니까? 어떤 의미에서? – Li357

+0

라인이 상 직각 삼각형의 빗변이라면 그 각도는 빗변과 인접 사이의 각도입니다. – Manitobahhh

+0

또한 * 세그먼트 *를 의미합니까? 선은 종말점이없는 의미가 없습니다. – Li357

답변

1

다음과 같이 각도를도 단위로 지정 하시겠습니까?

 public Point getEndpointA(Point midpoint, double angleDegee, double length) { 
       Point a = new Point(0, 0); 

       // convert degrees=>radians 
       final double angleRad = Math.toRadians(angleDegee); 

       a.x = (int) (midpoint.x + (int) length * Math.cos(angleRad)); 
       a.y = (int) (midpoint.y + (int) length * Math.sin(angleRad)); 

       return a; 
     } 

     public Point getEndpointB(Point midpoint, double angleDeg, double length) { 
       Point b = new Point(0, 0); 

       final double angleRad = Math.toRadians(angleDeg + 180d); 

       b.x = (int) (midpoint.x + (int) length * Math.cos(angleRad)); 
       b.y = (int) (midpoint.y + (int) length * Math.sin(angleRad)); 

       return b; 
     } 
+0

다른 끝점은 어떻습니까? 나는 그 일을 올바르게 했는가? – Manitobahhh

+1

다른 끝점 빼기 : a.x = (int) (midpoint.x ** - ** (int) length * Math.cos (angleRad)); – MBo

+0

내 코드가 업데이트되었습니다. – riversun