Пожалуйста, рассмотрите следующее:
lesDisques={{14.2065, 10.609, 0.974938}, {19.5653, 6.92721, 0.974938},
{30.4607,17.4802, 0.974938}, {27.4621, 10.0393, 0.974938},
{15.915, 20.4278,0.974938}, {28.6921, 5.2132, 1.53205},
{27.0317, 24.8346,1.53205}, {20.8853, 18.8588, 1.53205}}
where lesDisques[[#]] is {X,Y,R}
frmCorner = {{6.5946, 1.5946`}, {6.5946, 28.4054`},
{60.2162`,28.4054`}, {33.4054`, 28.4054`}}
cog = {23.91871026577044`, 15.010499627383863`}
scrCenter = {20, 15}
frmXY={{6.5946, 1.5946}, {33.4054, 28.4054}}
Graphics[{
White, EdgeForm[Thick],
Rectangle @@ frmXY,
Red, PointSize[.04],
Point@cog,
Black, Disk @@@ (lesDisques /. {a_, b_, c_} :> {{a, b}, c})},
ImageSize -> 600]
Для каждого из 8 дисков,
я хотел бы вычислить минимальное расстояние между его краем и:
-краем каждого другого диска (7 значений) -Каждый угол рамки {4 значения},
Тогда я получил бы 8 списков по 11 значений.
Следующее позволяет мне "точечно" определить периметр диска :
pointize[{{x_,y_},r_},size_:12]:=Table[{x+r Cos[i ((2\[Pi])/size)],
y+r Sin[i ((2\[Pi])/size)]},{i,0,size}]
С помощью этого я мог бы найти 2 ближайшие точки для двух дисков и вычислить расстояние de, но я чувствую, что это, возможно, не правильный способ сделать это.