View Issue Details

IDProjectCategoryView StatusLast Update
0029361CommunityOCCT:Modeling Algorithmspublic2020-09-28 07:39
Reporterzale_lzj Assigned Tomsv 
PrioritynormalSeverityminor 
Status newResolutionopen 
PlatformWindowsOSVC++ 2012 
Product Version7.1.0 
Summary0029361: circle intersect circle has wrong result
DescriptionI create two circle as below and use 2dintersect to get intersections of them, it will return three intersection points, the parameter of two points has TWOPI difference.

circle c1 1 0 1 0 2
circle c2 2 -1 1 0 1.4142135623730950488016887242097
2dintersect c1 c2

And another example, get the intersection of two circles which have externally-tangent, the result will get a segment.

circle c3 2 3 1 0 2
circle c4 -6 -3 1 0 8
2dintersect c3 c4
TagsNo tags attached.
Test case number

Attached Files

  • 2dintersect_cir_cir.png (18,060 bytes)

Activities

msv

2017-12-01 13:24

developer   ~0072646

There is no bug here. The command 2dintersect works right. It has the optional parameter "tolerance". By default it is 0.001.

In the first case, one circle intersects the second in the point of its end. There are 2 intersections in this place: one is with the beginning of the circle, the other is with the end. Each point lies within the tolerance from the theoretical solution.

In the second case, for each point within the result segment the distance between first and second circle is within the tolerance. The less the tolerance the less the length of the segment.

msv

2017-12-01 16:06

developer   ~0072660

Here I see two things to correct:

1) Enrich the help of the command 2dintersect to show the default value of the tolerance.
2) Make the default tolerance of the command the same as in the used class Geom2dAPI_InterCurveCurve. It is 1e-6.

zale_lzj

2020-09-28 07:37

reporter  

2dintersect_cir_cir.png (18,060 bytes)

zale_lzj

2020-09-28 07:39

reporter   ~0095431

I don't think the reason about the tolerance.

The first example will get three intersect points, between circle and circle.

The second example will get an intersect segment, between circle and circle.

Issue History

Date Modified Username Field Change
2017-12-01 10:50 zale_lzj New Issue
2017-12-01 10:50 zale_lzj Assigned To => msv
2017-12-01 13:24 msv Note Added: 0072646
2017-12-01 16:06 msv Note Added: 0072660
2020-09-28 07:37 zale_lzj File Added: 2dintersect_cir_cir.png
2020-09-28 07:39 zale_lzj Note Added: 0095431