Home Products Download Order Contacts

comp.graphics.algorithms

Subject: Re: common point of two planes



jindra wrote:
> thank you, but could you be more specific, i'm not trained in systems
> of equations and Gaussian elimination but I was thinking that it works
> only for square matrices, could you please tell me how to compose such
> matrix ???
> i know that two planes intersect at a line, i can compute directional
> vector of this line by taking cross-product of the normal vectors of
> the plane (which i think is fast from computational time point of
> view), but to fully specify the intersection line i need one point
> which lie on the intersection line and on both planes, so if there some
> fast way how to compute common point of two planes than the whole plane
> x plane intersection could be fast well
>
> jindra
>

Your problem is underconstrained. The two planes constrain only two
degrees of freedom (DOFs). By adding a third artificial DOF, you'll be
able to find a unique solution. Suppose dot(N1, X) = d1, dot(N2, X) = d2
are your plane equations and N3 = cross(N1, N2), the direction of the
line of intersection. You can take as added constraint dot(N3, X) = 0.
This constraint will give you the common point closest to the origin. So
you are basically solving the following linear system

[ N1^T ] X = [ d1 ]
[ N2^T ] [ d2 ]
[ N3^T ] [ 0 ]

where ^T denotes the transpose. (In a matrix, I regard all vectors as
columns. The normals here should be regarded as rows).

I guess Gaussian elimination is a bit of an overkill. I would go with
Cramer's rule which gives you the following solution:

Let Nx = (N1x, N2x, N3x), Ny = (N1y, N2y, N3y), Nz = (N1z, N2z, N3z),
and D = (d1, d2, 0) (These are all columns.)

Then, the system becomes

[Nx Ny Nz] X = D

For X = (x, y, z), we have the following solution

x = det[D N2 N3] / det[N1 N2 N3]
y = det[N1 D N3] / det[N1 N2 N3]
z = det[N1 N2 D] / det[N1 N2 N3]

Oh, and

det [ A B C ] = dot(A, cross(B, C))

So, there you have it. Yes, we needed to solve a system of linear
equations but in the end you only use dot and cross products.

One final remark: Since there is a zero in D, the determinant expression
can be further optimized. Just work out the determinants on a piece of
paper and remove some of the terms that are multiplied by zero.

Is this what you need?

Gino van den Bergen
www.dtecta.com


Reply


View All Messages in comp.graphics.algorithms

path:
common point of two planes =>Re: common point of two planes =>Re: common point of two planes =>

Replies:
Re: common point of two planes
Re: common point of two planes

Copyright 2006 WatermarkFactory.com. All Rights Reserved.