Creating an Appollonius Gasket in LibreCAD

To test the newly added feature of drawing a common tangential circle of three existing circles, an Appollonius gasket(Leibniz packing) was created using LibreCAD. This symmetric Leibniz packing has a fractal dimension of about 1.305688.

great work! I am wating for the next release.

Ohhh, nice!

I tried to implement something for FreeCAD a while ago, but gave up because of my limited knowledge (or rather experience) of the more complex math. So much kudos to you for actually managing it. 🙂

Now I only wish this would also work for lines/points (radius infinite & zero respectively) already 😉

Hi mbue,

we can share the code here. Since I actually wrote the code from scratch, there’s no problem of licensing/copyright.

Currently, LC has its own solvers for: linear equation sets, quadratic, cubic, and quartic equations, simultaneous quadratic equation sets of two variables. I’m building a more unified equation solver to take everything here as a quadratic form (with linear as a special case), then, a unified quadratic-quadratic intersection can be used to find intersections between any two of: line, circle, ellipse, hyperbola and parabola. With hyperbola and parabola, we can construct any tangent circle of given circles (with points as zero-radius circles, and lines as a special case using parabola). The development is not complete yet, more testing is needed, but I do think this is viable way, and the code base should be neat in C++11 (without boost).

Thanks,

dli

I’m not really involved with the FreeCAD project anymore (lack of extra spare time 🙁 ).

But if they still need the code for their 2D Sketcher I’d suggest to contact them directly about your implementation(s). They are certainly more advanced than anything I’ve done with my amateur coding.

Thank you for the auspicious writeup. It in fact was

a entertainment account it. Glance complex to far delivered agreeable from you!

By the way, how could we be in contact?

My favorite blog page about modern technology: Cecil