DiscussionsIssue archiveOCCT:Modeling Algorithms

Archived issue #0029361

circle intersect circle has wrong result

CommunityOCCT:Modeling Algorithmsnew3 public notes

Search issues

Description

I 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

Public activity

3 archived notes

Participants are labeled by their role within this record.

01Commenter 1
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.
02Commenter 2
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.
03Author
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.