Q&A

  • 수학도형에서 호그리는 문제입니다. 도와 주세요.


호그리는 문제입니다.

*각도(R)는 값과 P1~P3위치, 마우스 위치를 이미 알고 있다는 가정하에
마우스드래그 위치에 따라 임의 MP1,Mp2간에 호를 그리는 것입니다.

이때 마우스 포인트가  외각(삼각의 밖에) 의 밖에 있을 경우에는  밖으로 호를 그리려고 합니다.

이틀째 헤매고 있습니다. 도와 주세요.
2  COMMENTS
  • Profile
    이명훈 2005.12.20 01:15
    이차원 회전변환 행렬을 사용하면 MP1의 좌표와 MP2의 좌표를 구할수 있겠네요.

    마우스의 위치(X,Y)에서 P3점을 지나는 방정식을 구한다음에 마우스의 위치에서 P3-MP1을 지나는 방정식

    과 수직이 되는 방정식을 구합니다. 그러면 ARCTAN함수를 통해서 마우스의 위치와 P3, 그리고 P3-MP1을

    지나는 방정식과 마우스의 위치에서 P3-MP1에 수직인 방정식이 만나는 점을 통해 마우스의 위치에서의

    각도를 알 수 있습니다. 그러면 R에서 그 각도값을 빼준 값(A)라 하면

    X'= XCOSA + YSINA
    Y'= X(-SINA) + YCOSA

    변환을 통하여 MP1을 알 수 있겠구요. 다시 거꾸로 MP1에서 R만큼 -R각도로 회전변환을 위와 같이 한다면

    MP2의 좌표를 구할 수 있겠네요.

    그러면 MP1과 MP2를 통과하는 호를 그리는 함수나 곡선을 그리는 함수를 사용하면( 델파이에서 지원되나

    모르겠습니다. API로 있나? ) 그릴수 있을거 같네요..

    다른 방법도 있겠지만, 생각나는 알고리즘은 이정도네요..





  • Profile
    프리맨 2005.12.20 01:13
    중심을 P3, 마우스 위치를 M 이라고 하면 호의 반지름은 P3 에서 M 까지죠.
    벡터 P1과 P2를 단위벡터로 만들고 이 반지름을 곱하면 MP1, MP2를 구할수 있습니다.

    마우스가 외각에 있는경우를 판별하려면 예를들면..
    P1을 기준으로 M과의 각도를 구한후 R 과 비교해야지요.
    이때 각도를 구하는 식은 360도 범위를 얻어낼수 있는 식이어야 합니다.