An alternative interpretation of the question: let's be lazy and compute the circles' pattern from the image.
img=Import["https://i.stack.imgur.com/kDMPt.png"]
ctds=#2&@@@ComponentMeasurements[{img,MorphologicalComponents[
img,.6]},"Centroid",Abs[#Circularity-1]<.1\[And]#Area>200&]
Most of the triangles have area <200, and all the circles have area >200. I used HighlightImage[img,ctds]
to see this,

The thickness of the lines seems consistent, so adding 2 (about the thickness of the lines, in pixels) to each radius seems to work:
Graphics[Circle[#[[2,1]],#[[2,2]]+2]&/@ComponentMeasurements[
{img,MorphologicalComponents[img,.6]},{"Centroid",
"EquivalentDiskRadius"},Abs[#Circularity-1]<.1\[And]#Area>200&]]

This is quick and dirty. In reality, intuition+Mathematica (as opposed to just asking Mathematica to numerically find centroids) is a more beautiful thing. I think it'd be pretty quick to bin the radii and centers along precise circles (they vary by ~.2 pixels due to anti-aliasing).