나는 (cx, cy)에 원점이있는 원을가집니다. 반경은 r입니다. 그런 다음 두 개의 점 : (x1, y1)과 (x2, y2)로 정의되는 선분이 있습니다. 선 세그먼트 (연장 선이 아님) 이 원에 접하는 지 확인하는 방법은 무엇입니까? 그리고 그렇다면 두 건의 접촉은 어디에서합니까?선분이 원에 접하는 지 확인하는 방법은 무엇입니까?
지금까지의 상황 : 연장 된 라인에서 (cx, cy) 지점까지의 거리를 알아보십시오. 거리! = r이면 확실히 선 세그먼트는 원에 접하지 않습니다. 심지어 거리 == r이라면, 그들이 만나는 지점 을 찾아야합니다. 그런 다음 해당 점이 (x1, y1)과 (x2, y2) 사이의 세그먼트에 있는지 확인하십시오. '예'인 경우 세그먼트가 원에 접해 있고 터치 포인트 이 이미 계산됩니다. 이것은 효과가 있지만 너무 많은 수학을 포함합니다. 그리고 모두 float 또는 double 변수가 있습니다. 똑똑하고 빠른 알고리즘으로 동일한 결과를 얻을 수 있습니까?
감사 안부 정의상 프라 모드
지금 사용중인 코드를 게시 할 수 있습니까? 아마도 appraoch 괜찮지 만 코드를 최적화 할 수 있습니다. – m69
나는 그것이 종이에 있기 때문에 "코드를 게시 할"수는 없다. 그리고 이것은 의사 코드 일뿐입니다. – Pramod