【问题标题】:How to insert a UTF-8 character onto an image如何在图像上插入 UTF-8 字符
【发布时间】:2020-03-09 20:42:07
【问题描述】:

我使用 Python 使用 Matplotlib 创建了一个棋盘,我想知道是否可以在我想要的正方形中添加图像。

我正在尝试复制 8 皇后问题,但大小可变,但我的主要问题是我不确定如何在棋盘的每个方格中显示皇后。

chessboard = np.zeros((size,size))

chessboard[1::2,0::2] = 1
chessboard[0::2,1::2] = 1

print(chessboard)
plt.imshow(chessboard,cmap='binary')
plt.show()

我的计划是创建另一个大小相同的np.zeros(),但这次我将代表我的皇后。

【问题讨论】:

标签: python matplotlib n-queens


【解决方案1】:

您可以使用UTF-8 queen character 绘制居中的“文本”。在黑色背景上打印时需要更改文本颜色。

import matplotlib.pyplot as plt
import numpy as np

size = 8
chessboard = np.zeros((size,size))

chessboard[1::2,0::2] = 1
chessboard[0::2,1::2] = 1

plt.imshow(chessboard, cmap='binary')

for _ in range(20):
    i, j = np.random.randint(0, 8, 2)
    plt.text(i, j, '♕', fontsize=20, ha='center', va='center', color='black' if (i - j) % 2 == 0 else 'white')

plt.show()

【讨论】:

  • 不错 :) 当然你应该在白色瓷砖上使用 Unicode U+265B ♛
  • 黑皇后在使用白色字体颜色时看起来相当白。所以,很难放在黑色背景上。当同时拥有白色和黑色的部分时,可能像黄色和棕色这样的背景更有意义。或者维基百科页面上的白色和灰色方块。
猜你喜欢
  • 1970-01-01
  • 2018-01-26
  • 2013-05-05
  • 2017-05-14
  • 1970-01-01
  • 2023-03-04
  • 2011-12-10
  • 1970-01-01
相关资源
最近更新 更多