QCAD Bugtracker

  • Status Assigned
  • Percent Complete
    0%
  • Task Type Suggestion
  • Category QCAD (main)
  • Assigned To
    Andrew
  • Operating System All
  • Severity Low
  • Priority Very Low
  • Reported Version 3.30.1
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: QCAD Bugtracker
Opened by CVH - 25.07.2024
Last edited by CVH - 27.07.2024

FS#2590 - Apollonius and the arbitrary circle of inversion

Andrew,

The common circle of inversion in QCAD code seems to be a circle with R=10 e.g.:

var inversionCircle = new RCircle(point.position, 10);

Said to be arbitrary meaning that any well chosen circle will do.

There are a few drawbacks with a fixed radius of 10:
- For most and much larger circles outside such an inversion circle the inversion is a tiny circle shape. The aimed results are usually larger data and those are then based on minute data from the inversion shapes.
- For smaller circles inside such an inversion circle the inversion is quite a large circle shape. The aimed results are usually smaller data and those are then based on huge data from the inversion shapes.

It tend to play a role when we are working above the 10e3 range or below the 10e-3 range. At some point Apollonius.verify() based on Apollonius.shapesTouch() may remove solutions based on a difference of more than RS.PointTolerance.

Additionally an inversion circle with radius 10 may cross the center of a circle to inverse.
Resulting in a line.

My advice is to adapt the arbitrary radius relatively to the shapes involved, to something meaningful in the problem at hand.
For example based on the smallest of the radii of the circles to inverse.

I have to advice against using a larger (fixed) tolerance than RS.PointTolerance to solve certain issues.
Again, the best tolerance in any case of comparison is an adaptive one.

Regards,
CVH

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing