Кроме того, что ваше сообщение об ошибке не указывает на вставленный вами код (def scale
против def rotateX
).У них одна и та же проблема.
Это более старый синтаксис Python2.Просто замените его на rotateX(self, cx, cy, cz, radians)
или rotateX(self, axies, radians)
и добавьте строку, которая делает cx, cy, cz = axies
в начале функции.В любом случае, Python3 просто не принимает расширение кортежа по умолчанию.По крайней мере, не таким образом.
Так что либо:
def rotateX(self, cx, cy, cz, radians):
for node in self.nodes:
y = node.y - cy
z = node.z - cz
d = math.hypot(y, z)
theta = math.atan2(y, z) + radians
node.z = cz + d * math.cos(theta)
node.y = cy + d * math.sin(theta)
И убедитесь, что вы обновили вызов до функции rotateX
, или вы можете сделать:
def rotateX(self, axies, radians):
cx, cy, cz = axies
for node in self.nodes:
y = node.y - cy
z = node.z - cz
d = math.hypot(y, z)
theta = math.atan2(y, z) + radians
node.z = cz + d * math.cos(theta)
node.y = cy + d * math.sin(theta)
И вам не нужно обновлять вызов функции каким-либо образом.Вероятно, есть более удобный способ сделать то же самое, что сделал Python2.Но я никогда не нуждался или не использовал это.Но это должно как минимум решить вашу проблему.
О, и отправьте отчет о проблеме в Pygame.Они должны быть осведомлены или проинструктированы, если инструкции устарели / устарели.