그림에서 두 객체가 서로를 가리키는 위치를 계산하려고합니다. 객체를 직선으로 변환 할 수 있기 때문에 교차 선을 사용하여이 작업을 수행 할 것이라고 생각했습니다. 한 가지 문제는 내가 필요없는 무한한 선 사이의 교차점을 찾는 코드를 찾은 것 같습니다.두 객체 사이에 교차하는 선
이 코드는 교차하는 무한대를 찾는 방법을 자세히 설명한 a matlab blog에서 발견되었습니다.
A = [lineA(1,:) - lineA(2,:); lineB(2,:) - lineB(1,:)]';
if rank(A) < 2
disp('Parallel')
B = [lineA(1,:) - lineA(2,:); lineA(1,:) - lineB(1,:)]';
if rank(B) < 2
disp('Collinear')
if all((sort(lineA(:,1),'descend')-sort(lineB(:,1))) ...
.*[-1;1] <= sqrt(eps))
tf = true;
else
tf = false;
end
else
tf = false;
end
else
pq = linsolve(A,(lineB(2,:) - lineA(2,:))');
tf = all(pq>=-sqrt(eps)) & all(pq<=1+sqrt(eps));
end
나는 또한 내가해야 할 수도 있습니다 무엇에 가까운 모습 line + circle intersections에 대한 오래된 질문에 위치하고있다.
그러나 문제는 유한 한 라인과 교차하는 1 라인을 확인하려고하는 것입니다. 그림은 내가 그렸던 것을 나타냅니다. 파란색 선은 길이가 제한되어 있으며 빨간색 선은 무한하며 교차하는지 확인하려고합니다. 이미 두 줄 (즉, 무한 선) 사이의 교차점을 결정하는 기능을 가지고있는 것처럼
를 사용
d
에 대해 해결할 수 있습니다. 선분/선분 교차 알고리즘을 찾고 있다면 [here] (https://stackoverflow.com/questions/563198/how-do-you-detect-where-two-line- 세그먼트 교차) 및 [여기] (http://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/) – jodag죄송합니다. 그래, 나는 두 선분 사이의 교차점을 찾고 있는데, 한 선분은 세그먼트로, 다른 선분은 무한대로 남아있다. –