Я пытаюсь нормализовать вершины me sh, чтобы они помещались в ограничивающий прямоугольник в диапазоне от -0,5 до +0,5. Используя следующую логику c, я достиг этого:
# Calculate max and min values for each axis to
# get existing bounding box
x_max = np.max(vertices[:, 0])
y_max = np.max(vertices[:, 1])
z_max = np.max(vertices[:, 2])
x_min = np.min(vertices[:, 0])
y_min = np.min(vertices[:, 1])
z_min = np.min(vertices[:, 2])
# Calculate normalized vertices
normalized_x = 1 * (vertices[:, 0] - x_min) / (x_max - x_min) - 0.5
normalized_y = 1 * (vertices[:, 1] - y_min) / (y_max - y_min) - 0.5
normalized_z = 1 * (vertices[:, 2] - z_min) / (z_max - z_min) - 0.5
normalized_vertices = np.column_stack((normalized_x, normalized_y, normalized_z))
Однако моя проблема заключается в том, что, хотя мои вершины me sh теперь находятся в правильном диапазоне, соотношение сторон не сохраняется (так как более длинное измерение полностью раздавлено). Как бы я правильно масштабировал это так, чтобы мои точки по-прежнему находились в диапазоне от -0,5 до +0,5, но исходное соотношение сторон сохранялось?