MantisBT - Open CASCADE
View Issue Details
0025961Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-03-20 11:292020-09-14 22:58
nbv 
nbv 
normalminor 
assignedopen 
 
[OCCT] 7.6.0* 
0025961: Wrong result of projection point on the ellipse
If ellipse has major radius much more than minor radius we will not be able to find minimal distance between this ellipse and some point.
Draw[]> ellipse ce 15793.1884865181, -5613.90386522167, -2450 0.566529531797242, 0.824041436823172, 4.04832179340053e-023 249106758.909924, 18
Draw[]> dset x1 15810.404909670384
Draw[]> dset y1 -5625.7401757733878
Draw[]> dset z1 -2468.0000000000000

Draw[]> proj ce x1 y1 z1
# parameter 1 = 3.141592653589798
#ext_1 parameter 2 = 4.7123890642550172
#ext_2 parameter 3 = 6.2831853071795809
#ext_3 parameter 4 = 6.2831853071795809
#ext_4

Draw[]> length ext_1
The length ext_1 is 249106779.80259019
Draw[]> length ext_2
The length ext_2 is 36.000000000000043
Draw[]> length ext_3
The length ext_3 is 249106738.01725906
Draw[]> length ext_4
The length ext_4 is 249106738.01725906

I.e. minimal distance between ellipse and point is 36.000000000000043.

However, try the following script:
Draw[]> cval ce pi/2 xx yy zz

Draw[]> dset sd (xx-x1)*(xx-x1)+(yy-y1)*(yy-y1)+(zz-z1)*(zz-z1)
# 436.50347299786017
Draw[]> dval sqrt(sd)
# 20.892665531182473

Consequently, there is a point nearer to the given with distance 20.892665531182473.
No tags attached.
png diff_images.png (40,605) 2015-03-20 15:13
https://tracker.dev.opencascade.org/
Issue History
2015-03-20 11:29nbvNew Issue
2015-03-20 11:29nbvAssigned To => msv
2015-03-20 11:30nbvSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=9672#r9672
2015-03-20 11:31nbvRelationship addedrelated to 0025416
2015-03-20 12:45msvAssigned Tomsv => nbv
2015-03-20 12:45msvStatusnew => assigned
2015-03-20 15:13nbvFile Added: diff_images.png
2015-03-20 15:28nbvNote Added: 0038738
2015-04-06 14:02abvTarget Version6.9.0 => 7.1.0
2016-10-25 19:04msvTarget Version7.1.0 => 7.2.0
2017-07-24 09:32msvTarget Version7.2.0 => 7.3.0
2017-12-05 17:08msvTarget Version7.3.0 => 7.4.0
2019-08-12 16:37msvTarget Version7.4.0 => 7.5.0
2020-09-14 22:58msvTarget Version7.5.0 => 7.6.0*

Notes
(0038738)
nbv   
2015-03-20 15:28   
The problem has been detected after fixing bug #25416 (differences in images were detected - see diff_images.png file).

Intersection algorithm finds IntPatch_RLine and IntPatch_GLine (ellipse). These lines seem to be coincided (RLine is a part of GLine). However, it is not detected (in the function IsRLineGood(), file IntPatch_ImpImpIntersection_0.gxx) because computed distance between GLine and points of RLine is too big. Consequently, RLine is not excluded.