Pergunta

. (Nota: O projeto está em Python)

Estou executando uma simulação em que tenho muitos objetos que eu quero mostrar na tela e manipular com. É preciso haver uma maneira de identificar cada objeto, porque eles vão estar se movendo de lugar para lugar abruptamente e eu quero ser capaz de acompanhar o que objeto movido onde.

O que eu estive pensando é, para cada objeto eu vou gerar uma "personalidade". Um par de cores, e um nome Inglês, e eu vou colocar isso como a representação objeto na GUI. Eu percebi que uma função hash será usado para fazer essas cores e nomes, mas eu nunca trabalhei com funções hash.

Como posso fazer o que eu quero fazer?

Foi útil?

Solução

usar um uuid (módulo uuid em python> = 2,5).

Esta uuid, na versão 4, é, por definição aleatória em todos os campos (exceto um)

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

Você pode decompor os campos corretamente para criar uma cor ou um nome (mapeando um balde de nomes para um campo específico). Claro que você está limitando o seu haxixe (a identidade real é sempre o UUID), mas para efeitos visuais é muito suficiente. Por exemplo, você poderia usar os três primeiros octetos para gerar a cor # 9d477d, eo c7 octeto restante para escolher um nome fora de um conjunto de 256.

Se você acabar com cores muito feio, você pode trabalhar em HSV vez, e saturação de grampo e valor a determinados níveis. novamente, isso restringe sua mistura ainda mais (mas o espaço de cor já é bastante limitada depois de tudo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top