2013-02-20 4 views
1

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

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)) 

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

+1

Что такое A, B, C и D? – mbeckish

ответ

0

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

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

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

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

Смежные вопросы