The XNA docs say:

d: The distance of the Plane along its normal *from* the origin

However, that is *wrong*.

The right description is:

d is the distance you must translate the plane along its normal *to get to* the origin.

For example, the plane

rightBoundaryPlane = new Plane( 1, 0, 0, 1000 );

Is a plane that has a normal pointing in +x. Using the xna vague (and inaccurate) description of d, you might think that d is “the distance of the plane along its normal *from* the origin..” i.e. this plane should be off 1000 units in the direction of +x.

In fact, that is WRONG. This plane intersects the x axis at ( -1000, 0, 0 ). Why -1000? Because d represents the number of units you must move this plane, along its normal, *to get to* the origin.

Meaning, this plane must intersect ( -1000, 0, 0 ) because moving the plane 1000 units in the direction of ( 1, 0, 0 ) would take you to the origin.

So how do you get a plane at the right (+X) side?

Use:

rightBoundaryPlane = new Plane( 1, 0, 0, -1000 );

This plane intersects ( 1000, 0, 0 ) because you’d have to move it -1000 units ALONG ITS NORMAL ( in the direction of (1, 0, 0) ) *to get it to* the origin

### Like this:

Like Loading...

*Related*