Точка пересечения трех плоскостей 3D - C#

Есть ли у кого-нибудь C# алгоритм нахождения точки пересечения трех плоскостей (каждая плоскость определяется тремя точками: (x1,y1,z1), (x2,y2,z2), (x3,y3,z3) для каждой плоскости разные). Плоскость определяется уравнением: ax + by + cz + d = 0, где:

A = y1 (z2 - z3) + y2 (z3 - z1) + y3 (z1 - z2)

B = z1 (x2 - x3) + z2 (x3 - x1) + z3 (x1 - x2)

C = x1 (y2 - y3) + x2 (y3 - y1) + x3 (y1 - y2)

D = -(x1 (y2 z3 - y3 z2) + x2 (y3 z1 - y1 z3) + x3 (y1 z2 - y2 z1))

Большое тебе спасибо!


person user2088757    schedule 20.02.2013    source источник
comment
Что такое А, В, С и D?   -  person mbeckish    schedule 20.02.2013


Ответы (1)


Это довольно неудобно, потому что во многих случаях плоскости могут быть параллельны или иметь некоторую конфигурацию, при которой они не пересекаются в одной точке.

Однако, когда они это сделают, формулу можно найти здесь:

http://geomalgorithms.com/a05-_intersect-1.html

Я скорее думаю, что этой информации для вас будет недостаточно; но, возможно, это поможет вам начать.

person Matthew Watson    schedule 20.02.2013