3

(注意:该项目使用 Python。)

我正在运行一个模拟,其中我有许多想要在屏幕上显示和操作的对象。需要有一种方法来识别每个对象,因为它们会突然从一个地方移动到另一个地方,我希望能够跟踪哪个对象移动到了哪里。

我一直在想的是,我会对每一个物体产生一个“个性”。几种颜色和一个英文名称,我会将其作为对象表示形式放在 GUI 上。我认为哈希函数将用于制作这些颜色和名称,但我从未使用过哈希函数。

我怎样才能做我想做的事?

4

1 回答 1

2

使用 uuid(python 中的模块 uuid >= 2.5)。

这个 uuid,在版本 4 中,根据定义在所有字段上都是随机的(除了一个)

>>> uuid.uuid4()
UUID('9d477dc7-a986-4e3d-aa4f-6e57f690be78')

您可以正确分解字段以创建颜色或名称(通过将一组名称映射到特定字段)。当然,您正在限制您的哈希(真实身份始终是 uuid),但出于视觉目的,它已经足够了。例如,您可以使用前三个八位字节生成颜色#9d477d,而剩余的八位字节c7从一组 256 个中挑选一个名称。

如果你最终得到的颜色太难看,你可以改用 HSV,并将饱和度和值限制在给定的水平。再次,这进一步限制了您的哈希(但颜色空间毕竟已经非常有限)。

于 2009-11-26T07:35:36.940 回答