形状和位置如下图所示:
drawOne (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 5 * r)
ctx.arcTo(13 * r, 5 * r, 13 * r, 6 * r, r)
ctx.lineTo(13 * r, 7 * r)
ctx.arcTo(13 * r, 8 * r, 11 * r, 8 * r, r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(8.5 * r, 11 * r)
ctx.arcTo(8.5 * r, 10 * r, 7.5 * r, 10 * r, r)
ctx.lineTo(6.5 * r, 10 * r)
ctx.arcTo(5.5 * r, 10 * r, 5.5 * r, 11 * r, r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 2 * r)
},
drawTwo (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 5 * r)
ctx.arcTo(13 * r, 5 * r, 13 * r, 6 * r, r)
ctx.lineTo(13 * r, 7 * r)
ctx.arcTo(13 * r, 8 * r, 11 * r, 8 * r, r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(8.5 * r, 11 * r)
ctx.arcTo(8.5 * r, 10 * r, 7.5 * r, 10 * r, r)
ctx.lineTo(6.5 * r, 10 * r)
ctx.arcTo(5.5 * r, 10 * r, 5.5 * r, 11 * r, r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 8 * r)
ctx.arcTo(3 * r, 8 * r, 3 * r, 7 * r, r)
ctx.lineTo(3 * r, 6 * r)
ctx.arcTo(3 * r, 5 * r, 2 * r, 5 * r, r)
ctx.lineTo(2 * r, 2 * r)
},
drawThree (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(8.5 * r, 11 * r)
ctx.arcTo(8.5 * r, 12 * r, 7.5 * r, 12 * r, r)
ctx.lineTo(6.5 * r, 12 * r)
ctx.arcTo(5.5 * r, 12 * r, 5.5 * r, 11 * r, r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 8 * r)
ctx.arcTo(3 * r, 8 * r, 3 * r, 7 * r, r)
ctx.lineTo(3 * r, 6 * r)
ctx.arcTo(3 * r, 5 * r, 2 * r, 5 * r, r)
ctx.lineTo(2 * r, 2 * r)
},
drawFour (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(5.5 * r, 2 * r)
ctx.arcTo(5.5 * r, r, 6.5 * r, r, r)
ctx.lineTo(7.5 * r, r)
ctx.arcTo(8.5 * r, r, 8.5 * r, 2 * r, r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 5 * r)
ctx.arcTo(11 * r, 5 * r, 11 * r, 6 * r, r)
ctx.lineTo(11 * r, 7 * r)
ctx.arcTo(11 * r, 8 * r, 12 * r, 8 * r, r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(8.5 * r, 11 * r)
ctx.arcTo(8.5 * r, 10 * r, 7.5 * r, 10 * r, r)
ctx.lineTo(6.5 * r, 10 * r)
ctx.arcTo(5.5 * r, 10 * r, 5.5 * r, 11 * r, r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 2 * r)
},
drawFive (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(5.5 * r, 2 * r)
ctx.arcTo(5.5 * r, r, 6.5 * r, r, r)
ctx.lineTo(7.5 * r, r)
ctx.arcTo(8.5 * r, r, 8.5 * r, 2 * r, r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 5 * r)
ctx.arcTo(13 * r, 5 * r, 13 * r, 6 * r, r)
ctx.lineTo(13 * r, 7 * r)
ctx.arcTo(13 * r, 8 * r, 12 * r, 8 * r, r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(8.5 * r, 11 * r)
ctx.arcTo(8.5 * r, 12 * r, 7.5 * r, 12 * r, r)
ctx.lineTo(6.5 * r, 12 * r)
ctx.arcTo(5.5 * r, 12 * r, 5.5 * r, 11 * r, r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 8 * r)
ctx.arcTo(r, 8 * r, r, 7 * r, r)
ctx.lineTo(r, 6 * r)
ctx.arcTo(r, 5 * r, 2 * r, 5 * r, r)
ctx.lineTo(2 * r, 2 * r)
},
drawSix (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(5.5 * r, 2 * r)
ctx.arcTo(5.5 * r, 3 * r, 6.5 * r, 3 * r, r)
ctx.lineTo(7.5 * r, 3 * r)
ctx.arcTo(8.5 * r, 3 * r, 8.5 * r, 2 * r, r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(8.5 * r, 11 * r)
ctx.arcTo(8.5 * r, 12 * r, 7.5 * r, 12 * r, r)
ctx.lineTo(6.5 * r, 12 * r)
ctx.arcTo(5.5 * r, 12 * r, 5.5 * r, 11 * r, r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 8 * r)
ctx.arcTo(3 * r, 8 * r, 3 * r, 7 * r, r)
ctx.lineTo(3 * r, 6 * r)
ctx.arcTo(3 * r, 5 * r, 2 * r, 5 * r, r)
ctx.lineTo(2 * r, 2 * r)
},
drawSeven (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(5.5 * r, 2 * r)
ctx.arcTo(5.5 * r, r, 6.5 * r, r, r)
ctx.lineTo(7.5 * r, r)
ctx.arcTo(8.5 * r, r, 8.5 * r, 2 * r, r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 5 * r)
ctx.arcTo(11 * r, 5 * r, 11 * r, 6 * r, r)
ctx.lineTo(11 * r, 7 * r)
ctx.arcTo(11 * r, 8 * r, 12 * r, 8 * r, r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 2 * r)
},
drawEight (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(5.5 * r, 2 * r)
ctx.arcTo(5.5 * r, 3 * r, 6.5 * r, 3 * r, r)
ctx.lineTo(7.5 * r, 3 * r)
ctx.arcTo(8.5 * r, 3 * r, 8.5 * r, 2 * r, r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 5 * r)
ctx.arcTo(11 * r, 5 * r, 11 * r, 6 * r, r)
ctx.lineTo(11 * r, 7 * r)
ctx.arcTo(11 * r, 8 * r, 12 * r, 8 * r, r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 8 * r)
ctx.arcTo(r, 8 * r, r, 7 * r, r)
ctx.lineTo(r, 6 * r)
ctx.arcTo(r, 5 * r, 2 * r, 5 * r, r)
ctx.lineTo(2 * r, 2 * r)
},
drawNine (ctx) {
const r = 10
ctx.moveTo(2 * r, 2 * r)
ctx.lineTo(5.5 * r, 2 * r)
ctx.arcTo(5.5 * r, 3 * r, 6.5 * r, 3 * r, r)
ctx.lineTo(7.5 * r, 3 * r)
ctx.arcTo(8.5 * r, 3 * r, 8.5 * r, 2 * r, r)
ctx.lineTo(12 * r, 2 * r)
ctx.lineTo(12 * r, 11 * r)
ctx.lineTo(2 * r, 11 * r)
ctx.lineTo(2 * r, 8 * r)
ctx.arcTo(r, 8 * r, r, 7 * r, r)
ctx.lineTo(r, 6 * r)
ctx.arcTo(r, 5 * r, 2 * r, 5 * r, r)
ctx.lineTo(2 * r, 2 * r)
}