ejsoon 发表于 2024-7-16 11:18:25



姊妹圖。

gxqcn 发表于 2024-7-16 11:36:59

<p>
<canvas id="ejsoon3b" width="130" height="130"></canvas>
<script type="text/javascript">
function draw(){
    var canvas = document.getElementById('ejsoon3b');
    if(!canvas.getContext) return;
    var ctx = canvas.getContext("2d");
   //绘制网格点阵   
for (var x =0; x <7; x++) {
      for (var y =0; y <7; y++) {
      ctx.lineWidth = 0.5;
      ctx.beginPath();
      // 绘制水平线段
      let t=20;
      ctx.moveTo(3+x * t , 5+y *t);
      ctx.lineTo(7+x * t, 5+y *t);
      // 绘制垂直线段
      ctx.moveTo(5+x * t, y * t +3);
      ctx.lineTo(5+x * t, y *t + 7);
      ctx.strokeStyle = 'Black';
      ctx.stroke();
      }
    }

//绘制图案
    {
    let s=5;//页边距
    let t=20;//网格单元格大小
    let r=s+6*t;//网格右边界
    ctx.beginPath();
    ctx.strokeStyle = 'Blue';
    ctx.lineWidth = 2.5;
    ctx.rect(s, s, 6*t, 6*t); //外围正方形
   
    ctx.rect(s+2*t, s+2*t, 2*t, 2*t); //二环
    //大井字形
    ctx.moveTo(s, s+t);
    ctx.lineTo(r, s+t);
    ctx.moveTo(s, r-t);
    ctx.lineTo(r, r-t);
    ctx.moveTo(s+t, s);
    ctx.lineTo(s+t, r);
    ctx.moveTo(r-t, s);
    ctx.lineTo(r-t, r);
    //大十字
    ctx.moveTo(s, s+3*t);
    ctx.lineTo(r, s+3*t);
    ctx.moveTo(s+3*t, s);
    ctx.lineTo(s+3*t, r);
    //中心斜方
    ctx.moveTo(s+3*t, s+t);
    ctx.lineTo(s+t, s+3*t);
    ctx.lineTo(s+3*t, r-t);
    ctx.lineTo(r-t, s+3*t);
    ctx.lineTo(s+3*t, s+t);
   
    ctx.stroke();
   }
}
draw();
</script>
</p>
线段18 条,6X6网格(7X7格点阵)

gxqcn 发表于 2024-7-16 13:16:18

仿前面第 9#,给出一些统计信息

关于点:
上图最小可覆盖格点矩阵大小仅为 \(7\times7\),
其最小可覆盖格点阵列上的点,全部经过。

关于线:
平直线段 \(18\) 条,仅 \(3\) 种长度规格:\(2(*4), 2\sqrt2(*4), 6(*10)\);
斜线段 \(4\) 条,仅 \(1\) 种长度规格:\(2\sqrt2(*4)\);

关于面:
所构成的正方形,面积有 \(7\) 种:\(1^2(*8), 2^2(*5), 8(*1), 3^2(*4), 4^2(*1), 5^2(*4), 6^2 (*1)\);
所构成的等腰直角三角形,面积有 \(4\) 种:\(0.5(*8), 1(*4), 2(*8), 4(*4)\)。

以上描述中,括号中的数字为前面数字对应的数目。

mathe 发表于 2024-7-16 17:51:00

Total 16 lines, Grid 7×7

gxqcn 发表于 2024-7-16 18:40:16


构造一个16条整线段的。

hujunhua 发表于 2024-7-17 03:42:17

与郭老板22#的图同心。

<p>
<canvas id="ejsoon5a" width="170" height="170"></canvas>
<script type="text/javascript">
function draw(){
    var canvas = document.getElementById('ejsoon5a');
    if(!canvas.getContext) return;
    var ctx = canvas.getContext("2d");
   //绘制网格点阵   
for (var x =0; x <17; x++) {
      for (var y =0; y <17; y++) {
      ctx.lineWidth = 0.5;
      ctx.beginPath();
      // 绘制水平线段
      let t=20;
      ctx.moveTo(3+x * t , 5+y *t);
      ctx.lineTo(7+x * t, 5+y *t);
      // 绘制垂直线段
      ctx.moveTo(5+x * t, y * t +3);
      ctx.lineTo(5+x * t, y *t + 7);
      ctx.strokeStyle = 'Black';
      ctx.stroke();
      }
    }

//绘制图案
    {
    let s=5;
    let t=20;
    let r=s+8*t;
    ctx.beginPath();
    ctx.strokeStyle = 'Blue';
    ctx.lineWidth = 2.5;
    ctx.rect(s, s, 8*t, 8*t);//外方
    ctx.rect(s+3*t, s+3*t, 2*t, 2*t);//内方
   
    //大井字形
    ctx.moveTo(s, s+2*t);
    ctx.lineTo(r,s+2*t);
    ctx.moveTo(s, s+6*t);
    ctx.lineTo(r, s+6*t);
    ctx.moveTo(s+2*t, s);
    ctx.lineTo(s+2*t, r);
    ctx.moveTo(s+6*t,s);
    ctx.lineTo(s+6*t,r);
    //十字线
    ctx.moveTo(s+2*t, s+4*t);
    ctx.lineTo(s+6*t, s+4*t);
    ctx.moveTo(s+4*t, s+2*t);
    ctx.lineTo(s+4*t, s+6*t);
    //大斜方
    ctx.moveTo(s+2*t, s+4*t)
    ctx.lineTo(s+4*t, s+2*t);
    ctx.lineTo(s+6*t, s+4*t);
    ctx.lineTo(s+4*t, s+6*t);
    ctx.lineTo(s+2*t, s+4*t);
   
    ctx.stroke();
   }
}
draw();
</script>
</p>
線段18条,8x8网格(9X9点阵)

hujunhua 发表于 2024-7-17 05:52:13

一个倾斜占地最小的例子

倾斜覆盖格点数=7^2+6^2=85, 放平覆盖格点数=11^2=121.

mathe 发表于 2024-7-17 08:23:25


7*7的18条线只有一种
附件给出18到24条线的穷举解

ejsoon 发表于 2024-7-17 08:46:14



網格與線不可兼得。

如果要網格,那就把四個角的綠色方形改小,然後再加四條綠線至上下左右斜方中。

mathe 发表于 2024-7-17 09:14:45

是的,三角形输错了,好像没有统计第一行。这个更新以后的看看
页: 1 2 [3] 4 5 6 7 8 9 10 11 12
查看完整版本: 包含24個正方形和24個等腰直角三角形的方形对称图案