gpt4 book ai didi

python - 如何在立方体表面添加文字

转载 作者:行者123 更新时间:2023-12-05 04:25:09 26 4
gpt4 key购买 nike

如何在立方体表面添加文字。我正在尝试解决 3d 包装问题,但我在可视化方面存在问题,因为如果有 1000 个立方体,如何识别它们中的每一个。所以我需要在表面上写数字(如果可能的话,每个表面)。

我不想要的输出:

output that i dont want

我需要的输出:

output that i need

最佳答案

您可以添加 text到指定位置和方向的 3D 轴。以下示例将文本放在每个框正面 x-z 面的中心:

xz_sizes = np.array(sizes)
xz_sizes[:,1] = 0
label_pos = (np.array(positions) + xz_sizes / 2).tolist()

labels = ['12', '24']
for pos, label in zip(label_pos, labels):
ax.text( *pos, label, 'x', ha='center', va='center')

enter image description here

PS:如果你愿意,你可以直接计算 label_pos 作为单行,但对我来说这似乎比使用辅助数组 xz_sizes 更复杂:

label_pos = (np.array(positions) + np.insert(np.array(sizes)[:, [0,2]], 1, 0, axis=1) / 2).tolist()

更新:将标签放在所有表面上的工作方式完全相同:以下示例展示了其他两个表面(1 x 正面,1 x 背面),所以我想你明白了:

label_pos_y = (np.array(positions) + np.insert(np.array(sizes)[:, [0,2]] / 2, 1, 0, axis=1)).tolist()
label_pos_x = (np.array(positions) + np.insert(np.array(sizes)[:, [1,2]] / 2, 0, 0, axis=1)).tolist()
label_pos_z = (np.array(positions) + np.insert(np.array(sizes)[:, [0,1]] / 2, 2, np.array(sizes)[:,2], axis=1)).tolist()

labels = ['12', '24']
for pos_y, pos_x, pos_z, label in zip(label_pos_y, label_pos_x, label_pos_z, labels):
ax.text( *pos_y, label, 'x', ha='center', va='center')
ax.text( *pos_x, label, 'y', ha='center', va='center')
ax.text( *pos_z, label, 'x', ha='center', va='center')

enter image description here

关于python - 如何在立方体表面添加文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73335561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com