Open ASCmetrology opened 6 months ago
Apparently reason for listed ~issue is: Line SEGMENT is slightly ~short of penetrating the Plane. We are desiring to determine Plane intersect with INFINITE Line. Method suggestion appreciated.
Apparently reason for listed ~issue is: Line SEGMENT is slightly ~short of penetrating the Plane. We are desiring to determine Plane intersect with INFINITE Line. Method suggestion appreciated.
I am not really sure I understood your explanation, can you explain it again with other words please?
Reference the original posted FAILS code: That code returns NULL for the intersection (ie, No Intersect); I suggest This because the LINE is not considered infinite by MathNet. Using Ray3D in-place-of Line3D probably is the solution; However, I suspect would need to check BOTH directions (direct and mirror) of Ray to insure all tested for plane intersect.
I think the error lies in the implementation of public Point3D? IntersectionWith(Line3D line, double tolerance = float.Epsilon)
of Plane.cs
, which is identical to public Point3D? IntersectionWith(LineSegment3D line, double tolerance = float.Epsilon)
(notice, Line3D
vs. LineSegment3D
).
As far as I can tell, Spatial treats Ray3D
as an infinite (mathematical) line and LineSegment3D
as a... segment of a line, with a given start and end.
For my understanding, Line3D
should de removed and its usages replaced by Ray3D
Indeed, Line3D was at one point on the schedule to be deprecated
MathNet.Spatial.Euclidean.Line3D Intersection with Plane returns unexpected NULL:
//------------------------------------ // Immediate below FAILS, expecting (200, ~0, ~0) but receive aPtint = NULL:
//------------------------------------
Below DOES work, receives aPtint = (200, 0, 0);
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.