我希望有人可以在這里遮住一些光并幫助我弄清楚我做錯了什么。
我正在使用 Ursina 引擎為給定位置生成一些立方體,如下所示
terrain_z_x = 10
terrain_depth = 3
for z in range(terrain_z_x):
for y in range(terrain_depth):
for x in range(terrain_z_x):
if y > 0:
voxel = Voxel(position=(x,-y,z))
else:
voxel = Voxel(position=(x,-y,z))
terrain_dictionary["Object"] = "Cube"
terrain_dictionary["x"] = voxel.position.x
terrain_dictionary["y"] = voxel.position.y
terrain_dictionary["z"] = voxel.position.z
這會在 z 和 x 軸上生成 10 個立方體,在 y 軸上生成 3 個立方體。這完美地作業,我沒有任何問題。但我想做的是,當我回圈這些坐標以將它們保存到 csv 檔案中時,可以列出引擎中存在的所有立方體。
所以我匯入了 csv 庫并更新了我的代碼如下。
for z in range(terrain_z_x):
for y in range(terrain_depth):
for x in range(terrain_z_x):
if y > 0:
voxel = Voxel(position=(x,-y,z))
else:
voxel = Voxel(position=(x,-y,z))
terrain_dictionary["Object"] = "Terrain"
terrain_dictionary["x"] = voxel.position.x
terrain_dictionary["y"] = voxel.position.y
terrain_dictionary["z"] = voxel.position.z
with open("position.csv", 'w') as position:
writer = csv.DictWriter(position, terrain_info)
writer.writeheader()
writer.writerow(terrain_dictionary)
這有效,但不如預期。因為在 csv 檔案上,我只有最后一個回圈位置。
Object,x,y,z
Cube,9.0,-2.0,9.0
我很難理解如何在執行回圈時將每個給定位置保存到 csv 檔案中,并擁有這樣的 csv 檔案:
Object,x,y,z
Cube,0,0,0
Cube,0,0,1
......
Cube, 9,-2,9
如果希望我把我的問題和問題說清楚,如果沒有,請不要猶豫,詢問更多細節。
非常感謝你提前
uj5u.com熱心網友回復:
在三重 for 回圈結束時,字典terrain_dictionary只有 4 個鍵,其中包含最后一個值。您應該將每個字典附加到字典串列中,然后在此串列上回圈以將每個字典寫入 CSV 檔案中。
dict_list = []
for z in range(terrain_z_x):
for y in range(terrain_depth):
for x in range(terrain_z_x):
if y > 0:
voxel = Voxel(position=(x,y,z)) # I guess the - sign was a mistake ?
else:
voxel = Voxel(position=(x,-y,z))
terrain_dictionary["Object"] = "Terrain"
terrain_dictionary["x"] = voxel.position.x
terrain_dictionary["y"] = voxel.position.y
terrain_dictionary["z"] = voxel.position.z
# Insert a copy of the dictionary in the list
dict_list.append(terrain_dictionary.copy())
with open("position.csv", 'w') as position:
writer = csv.DictWriter(position, terrain_info)
writer.writeheader()
for d in dict_list:
writer.writerow(d)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/489304.html
標籤:python-3.x 小熊座
下一篇:如何在python中分離此訊息?
