저는 이것을 풀려고 노력했지만 제로 분할 오류가 발생할 수있는 방정식을 발견했습니다. 가장 좋은 것은 아닙니다 :두 벡터 방정식의 교차점 찾기
v1 = (a,b)
v2 = (c,d)
d1 = (e,f)
d2 = (h,i)
l1: v1 + λd1
l2: v2 + µd2
Equation to find vector intersection of l1 and l2 programatically by re-arranging for lambda.
(a,b) + λ(e,f) = (c,d) + µ(h,i)
a + λe = c + µh
b +λf = d + µi
µh = a + λe - c
µi = b +λf - d
µ = (a + λe - c)/h
µ = (b +λf - d)/i
(a + λe - c)/h = (b +λf - d)/i
a/h + λe/h - c/h = b/i +λf/i - d/i
λe/h - λf/i = (b/i - d/i) - (a/h - c/h)
λ(e/h - f/i) = (b - d)/i - (a - c)/h
λ = ((b - d)/i - (a - c)/h)/(e/h - f/i)
Intersection vector = (a + λe,b + λf)
어떤 경우에는 작동하는지 확실하지 않습니다. 나는 그것을 시험하지 않았다.
예제 a-i에서와 같이 값에 대해이를 수행하는 방법을 알아야합니다.
감사합니다.
@aeflash d1과 d2가 "거의"평행하지만 v1과 v2가 "거의"평행하면 교차가 발견 될 수 있습니다. 매우 평평한 롬 보드의 경우입니다. –
답변 해 주셔서 감사합니다. 선은 항상 수직이지만 방향 벡터는 여전히 0을 가질 수 있습니다. 그들이 0 인 경우에 대해 다른 방정식을 계산할 수는 있지만 사람들이 프로그래밍 방식으로 사용하는 간단한 방법이 있는지 알고 있으면 좋을 것입니다. –
아마도 그들이 수직이라는 사실은 사물을 단순화 할 수 있습니까? –