DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0025961

Wrong result of projection point on the ellipse

Open CASCADEOCCT:Modeling Algorithmsassigned1 public note

Search issues

Description

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.

Steps to reproduce

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.

Public activity

1 archived note

Participants are labeled by their role within this record.

01Commenter 1
The problem has been detected after fixing bug #25416 (differences in images were detected - see Attachment 1 (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.