Python 三维网格算法
我很难创建一个算法来计算给定数量的顶点的位置,这样它们将被分散,以匹配我设置的三维网格和立方体的分割数 详情如下: 我需要为3D网格立方体创建顶点,该立方体将有:X轴3行、Y轴4行和Z轴2行 假设每个顶点=x,y,z,并且顶点总数为3*4*2=24,那么对于24个顶点中的每个顶点,我应该用什么值替换x,y,z 起初我的想法是:Python 三维网格算法,python,math,3d,Python,Math,3d,我很难创建一个算法来计算给定数量的顶点的位置,这样它们将被分散,以匹配我设置的三维网格和立方体的分割数 详情如下: 我需要为3D网格立方体创建顶点,该立方体将有:X轴3行、Y轴4行和Z轴2行 假设每个顶点=x,y,z,并且顶点总数为3*4*2=24,那么对于24个顶点中的每个顶点,我应该用什么值替换x,y,z 起初我的想法是: vertices = [(0,0,0),(0,0,0),...] # fill the list with 24 vertices 然后迭代: for i in ran
vertices = [(0,0,0),(0,0,0),...] # fill the list with 24 vertices
然后迭代:
for i in range(vertices.length):
for x in range(3):
for y in range(4):
for z in range(2):
vertices[i] = (x,y,z)
return vertices
…类似这样的东西
我还没弄明白。有人能帮我吗?这是一个简短的代码,它返回一个顶点列表,这些顶点与代码的明显意图相匹配
from itertools import product
mylist = list(product(range(3), range(4), range(2)))
在iPython中打印mylist会导致
[(0, 0, 0),
(0, 0, 1),
(0, 1, 0),
(0, 1, 1),
(0, 2, 0),
(0, 2, 1),
(0, 3, 0),
(0, 3, 1),
(1, 0, 0),
(1, 0, 1),
(1, 1, 0),
(1, 1, 1),
(1, 2, 0),
(1, 2, 1),
(1, 3, 0),
(1, 3, 1),
(2, 0, 0),
(2, 0, 1),
(2, 1, 0),
(2, 1, 1),
(2, 2, 0),
(2, 2, 1),
(2, 3, 0),
(2, 3, 1)]
如果您不了解产品的工作原理,请检查。您的解决方案似乎几乎正确,您只需消除i上的外部循环并直接附加到顶点列表:
def grid():
vertices = []
for x in range(3):
for y in range(4):
for z in range(2):
vertices.append((x, y, z))
return vertices
print(grid())
或预初始化列表并分配单个元素:
def grid():
vertices = [None]*3*4*2
i = 0
for x in range(3):
for y in range(4):
for z in range(2):
vertices[i] = (x, y, z)
i += 1
return vertices
你的问题是什么?你想做什么有什么问题?非常感谢,你的解决方案非常漂亮!我只是没有选择它作为正确的答案,因为我需要在迭代中执行某些操作。