문제

(참고 : 프로젝트는 파이썬에 있습니다.)

화면에 표시하고 조작하고 싶은 객체가 많이있는 시뮬레이션을 실행하고 있습니다. 각 객체를 식별 할 수있는 방법이 필요합니다. 왜냐하면 그들은 장소에서 갑자기 장소로 이동하여 갑자기 어디로 이동했는지 추적 할 수 있기를 원하기 때문입니다.

내가 생각했던 것은 모든 대상에 "성격"을 생성하는 것입니다. 몇 가지 색상과 영어 이름, 그리고 GUI의 객체 표현으로 넣을 것입니다. 해시 함수는 이러한 색상과 이름을 만드는 데 사용될 것이라고 생각했지만 해시 함수로 작업 한 적이 없습니다.

내가하고 싶은 일을 어떻게 할 수 있습니까?

도움이 되었습니까?

해결책

UUID (Python> = 2.5의 모듈 UUID)를 사용하십시오.

버전 4 에서이 UUID는 모든 필드에서 무작위입니다 (1 개 제외)

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

필드를 올바르게 분해하여 색상이나 이름을 생성 할 수 있습니다 (이름의 버킷을 특정 필드에 매핑하여). 물론 당신은 당신의 해시를 제한하고 있습니다 (실제 정체성은 항상 uuid입니다). 그러나 시각적 목적으로는 훨씬 충분합니다. 예를 들어, 처음 3 개의 옥팅을 사용하여 색상 #9d477d와 나머지 옥트를 생성 할 수 있습니다. c7 256 세트 중 하나를 선택합니다.

너무 못생긴 색상으로 끝나면 대신 HSV에서 작업 할 수 있으며 주어진 레벨에 대한 포화 및 값을 클램프 할 수 있습니다. 다시 말하지만, 이것은 해시를 훨씬 더 제한합니다 (그러나 색상 공간은 결국 이미 제한적입니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top