Привет, я работаю над скриптом, я создавал случайные экземпляры поликубов на сетке майя. Однако я не знаю, как остановить эти кубики, размножающиеся поверх каждого или внутри друг друга. Я слышал, что в Интернете было брошено окно с ограничениями, но я не уверен, как его создать. Может кто-нибудь помочь мне, я работал над этим в течение нескольких дней. (Im кодирование в Python)Как остановить поли объекты, нерестующие друг в друга при рандомизации их местоположения MAYA
0
A
ответ
1
Если вы сохраняете местоположение каждого куба в качестве кортежа(), вы можете сохранить его в наборе. Тогда просто проверить набор каждый раз, когда вы выбросили кости на новое место до и перебрасывать, если эта комбинация уже используется:
import random
already_seen = set()
created = []
while len(created) < 11:
x = random.randint(-10, 10)
y = random.randint(-10,10)
z = random.randint(-10,10)
pos = (x, y, z)
if pos not in already_seen:
already_seen.add(pos)
node, shape = cmds.polyCube()
cmds.xform(node, t = pos)
created.append(node)
Это использует целые позиции, потому что получает вас от крючка для проверки расстояния каждого новый пункт против всех предыдущих. Вы можете рассматривать целые позиции как «ячейку» и добавлять меньшие случайные смещения внутри этой ячейки, чтобы они были менее жесткими, если это имеет значение.