Mathematica应用——正方形拼图

2025-11-15 18:52:21

1、准备一个正方形图片,把它加载到Mathematica里面,命名为b。

Mathematica应用——正方形拼图

2、给图片随机的替换颜色,并根据不同的权重进行拼图:

ImageCollage[(#^2 -> Show[ColorReplace[b, RGBColor[

0.10588235294117647`, 0.6274509803921569, 0.8823529411764706] -> 

        RGBColor[Random[], Random[], Random[]]], 

      Epilog -> Inset[Style[#, 20*#, Bold], Center]]) & /@ Range[6]

 Background -> RGBColor[0.1, 0.9, 0.9], ImagePadding -> 0, 

 Method -> "ClosestPacking", ImageSize -> 500]

Mathematica应用——正方形拼图

3、把上面代码里面的Range[6]换成10。

不过,这可能不是最优排列方案。

Mathematica应用——正方形拼图

4、用边长分别是1, 4, 7, 8, 9, 10, 14, 15, 18的正方形来试试。

c = ImageCollage[(#^2 -> Show[ColorReplace[b, RGBColor[

0.10588235294117647`, 0.6274509803921569, 0.8823529411764706] -> 

         RGBColor[Random[], Random[], Random[]]], 

Epilog -> Inset[Style[#, If[4*# < 36, 60, 4*#], Bold], 

         Center]]) & /@ {1, 4, 7, 8, 9, 10, 14, 15, 18}, 

  Background -> RGBColor[0.1, 0.9, 0.9], ImagePadding -> 0, 

  Method -> "ClosestPacking", ImageSize -> 1000]

Mathematica应用——正方形拼图

5、但是,上面这个图形明显不是最优方案。因为,这是一个完美矩形的例子。

Mathematica应用——正方形拼图

6、前24个整数的平方和是70^2,但是,边长为1到24的正方形不可能拼成完美正方形,不知道能不能拼成完美矩形。

Mathematica应用——正方形拼图

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢