Код: Выделить всё
def Find_Center(Array_of_Points):
point_count = 0
for point in Array_of_Points:
point_count = point_count + 1
X_Sum = 0
Y_Sum = 0
Z_Sum = 0
for point in Array_of_Points:
X_Sum = X_Sum + point[0]
Y_Sum = Y_Sum + point[1]
Z_Sum = Z_Sum + point[2]
return {((X_Sum)/point_count), ((Y_Sum)/point_count), ((Z_Sum)/point_count)}
[[4.0, 4.0, 4.0], [4.0, 2.0, 2.0], [3.0, 4.0, 2.0]]
Это дало мне:
{3.3333333333333335, 2.6666666666666665, 3.6666666666666665
Последнее число на 1000 больше, чем должно быть. Но когда я переключил обратную строку в Find_Center на:
Код: Выделить всё
return [((X_Sum)/point_count), ((Y_Sum)/point_count), ((Z_Sum)/point_count)]
{3.3333333333333335, 2.6666666666666665, 2.6666666666666665}
Почему это произошло? Еще более странно, что при оригинальной обратной линии я получил правильный центр для другого списка точек. Проблема возникла только во втором списке пунктов. Я мог бы предоставить полный код, если кому-то нужны дополнительные объяснения.
Подробнее здесь: https://stackoverflow.com/questions/792 ... dded-to-it