把所有漢字疊寫起來最後會留下空白嗎?

語言: CN / TW / HK
ead>

歡迎關注微信公眾號:前端閱讀室

問題

之前在知乎上看到一個問題:把所有漢字疊寫起來最後會留下空白嗎?今天我們就用前端技術來研究一下這個問題。

思路

  1. 所有漢字

所有字元都可以用 Unicode 編碼,漢字也不例外。我們查到基本漢字的 Unicode 編碼範圍是:4E00-9FA5,共 20902 個。

  1. 如何疊寫

疊寫其實就是圖形的繪製,HTML5 的 <canvas> 標籤是用於繪製圖像的,它本身支援在畫布上繪製文字,所以使用 canvas 來實現文字疊寫再合適不過了。

  1. 會留下空白嗎?

看實驗結果。(這裡不會花精力使用 context.getImageData 方法獲取畫布上的畫素資料做精確的判斷,只憑肉眼得出一個大致結論即可)。

實驗

有了思路以後,我們就可以編寫程式碼了。程式碼我們會放到後面講解,先直接看下繪製的結果。

前 10 個漢字

前 10 個漢字

前 50 個漢字

前 50 個漢字

前 100 個漢字

前 100 個漢字

前 200 個漢字

前 200 個漢字

前 500 個漢字

前 500 個漢字

全部漢字(20902 個)

全部漢字

結論:可以看到所有漢字疊寫起來不會佔滿整個方塊,邊緣會有空白,但中間沒有空白。

彩蛋版

定時器版本

定時器版本

熱力圖版本

熱力圖版本

基礎版本程式碼

```html

把所有漢字疊寫起來最後會留下空白嗎?

0個漢字

```

歡迎關注微信公眾號:前端閱讀室