-
Notifications
You must be signed in to change notification settings - Fork 138
Open
Description
MathNet.Spatial.Euclidean.Line3D Intersection with Plane returns unexpected NULL:
//------------------------------------
// Immediate below FAILS, expecting (200, ~0, ~0) but receive aPtint = NULL:
MathNet.Spatial.Euclidean.Point3D LinePt1 = new Point3D(200, 0, 0);
MathNet.Spatial.Euclidean.Point3D LinePt2 = new Point3D(100, 0, 0);
Line3D a_Line3D = new Line3D(LinePt1, LinePt2);
Ap = -100; Bp = 0; Cp = -3.979039320256561E-13;
Vector3D aNormal = new Vector3D(Ap, Bp, Cp);
UnitVector3D aNormalV = aNormal.Normalize();
Point3D PtOnPlane = new Point3D(200, -100, 100);
Plane a_Plane = new Plane(PtOnPlane, aNormalV);
Point3D? aPtint = new Point3D();
aPtint = a_Line3D.IntersectionWith(a_Plane, 4.9E-324); //returns unexpected NULL.
//------------------------------------
Below DOES work, receives aPtint = (200, 0, 0);
MathNet.Spatial.Euclidean.Point3D LinePt1 = new Point3D(200, 0, 0);
MathNet.Spatial.Euclidean.Point3D LinePt2 = new Point3D(100, 0, 0);
Line3D a_Line3D = new Line3D(LinePt1, LinePt2);
Vector3D aNormal = new Vector3D(-100, 0, 0);
UnitVector3D aNormalV = aNormal.Normalize();
Point3D PtOnPlane = new Point3D(200, -100, 100);
Plane a_Plane = new Plane(PtOnPlane, aNormalV);
Point3D? aPtint = new Point3D();
aPtint = a_Line3D.IntersectionWith(a_Plane, 4.9E-324);
Notes:
_difference in above is changing Cp value from -3.979039320256561E-13 to 0;
_modification of error epsilon from 4.9E-324 to 0 etc did not change results.
_employing using VS 2017 fully updated; Working as expected for all other code within subject test.
Metadata
Metadata
Assignees
Labels
No labels