(注意:该项目是Python。)

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

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

我该怎样做我想做的事?

有帮助吗?

解决方案

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

这个版本4中的uuid在所有字段(除了一个)

之外是随机的
>>> uuid.uuid4()
UUID('9d477dc7-a986-4e3d-aa4f-6e57f690be78')

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top