C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64818] Re:선분과 호 간.. 거리를 구하는 알고리즘...
장성호 [nasilso] 4057 읽음    2011-07-14 17:00
음...

이런것은 검색할때 코딩을 찾을것이 아니라
수학 특히 삼각함수 관련된 내용을 찾으셔야 할것입니다.


호와 선의 거리를 판단할때..

1. 먼저 알아야 할것은
  1.1 점과 직선과의 수직교점거리를 알아야 하겠죠?
  1.2 두 점사의 거리를 sqrt(dx^2 + dy^2) 로 바로 구해지고
  1.3 수직교점을 구하는것이 관건이겠네요

2. 그다음 알아야 할것은?
  호(Arc)의 어떤 부분에서 라인과의 거리를 구하려는 것인가요?
  2.1 시작점,끝점,중점 등의 점에서 거리를 구하시나요?
  2.2 아님 직선과 가장가까운 거리를 구하시나요?

3. 만약 가장 가까운 거리를 구하신다면
   직선이 각도(Angle)을 유지하고 Arc쪽으로 가까이 가져올때 접하는 점을 알아야 겠죠?
  Arc를 원이라 생각하고 볼때
  원과 직선의 접점을 구하는 방법을 알아야 할것입니다.

4. 원과 특정기울기를 가진 직선의 접선은 어떻게 구할까요?
   Arc의 세점을 알고 있으면 Arc를 원의 중점을 구할수 있겠죠?
   당연히 원의 반지름을 알수 있을것이구?

   원의 중점과 반지름을 알고있고 직선을 알고있으면?
   4.1   1.3에서 얘기한 점과 직선의 수직교점을 구하면 원과 직선의 가장가까운 점을 알수 있을것입니다.
   4.2   원의 중점과 수직교점과의 거리를 구하고
   4.3   4.2에서 구한 거리에서 원의 반지름을 빼면 원과,직선과의 가장가까운 거리겠죠?

5. 그런데 원의 중점과 직선의 수직교점을 이은 선분이 Arc의 영역을 벗어난다면?
   Arc의 시작점이나 끝점와 직선과의 거리중 짧은점이 가장 가까운 거리가 될것입니다.




이정도는 중학교 수학에 나오는 삼각함수 문제인데?
실무에서 코딩으로 하려니
참 쉽지가 않죠?

개인적으로 요즘 중.고등학교때 수학을 프로그램할때 많이 쓰는데..
삽질을 많이 하고 있습니다.

공부 조금만더 열씸히 할것을..

그럼..
     

갈라파고스의용 님이 쓰신 글 :
: 안녕하세요.
:
: 2D 평면에서 임의의 arc(시작점 끝점 반지름 중심점을 알고 있습니다.)와 임의의 라인간 거리를 계산하는 방법에 대해 알고 싶습니다.
:
: 휴.. 며칠을 끙끙 앓고 있습니다...
:
: 구글 검색으로도 통 찾질 못하겠네요...
:
: 방법이 아니라면 어떻게 접근해야 하는지.. 작은 힌트라도 부탁드립니다.
:
: 감사합니다.

+ -

관련 글 리스트
64817 선분과 호 간.. 거리를 구하는 알고리즘... 갈라파고스의용 1114 2011/07/14
64818     Re:선분과 호 간.. 거리를 구하는 알고리즘... 장성호 4057 2011/07/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.