| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import json
- def transformeOBJ(nom, pas=1):
- """
- Transforme un fichier RCL (matrice d'altitudes) en fichier OBJ.
- Args:
- nom : nom du fichier sans extension
- pas : distance entre deux points en mètres
- Créé :
- nom.obj
- """
- # Lecture du RCL
- with open(nom + ".rcl", "r") as f:
- terrain = json.load(f)
- hauteur = len(terrain)
- largeur = len(terrain[0])
- fichier_obj = nom + ".obj"
- with open(fichier_obj, "w") as obj:
- # Création des sommets
- for y in range(hauteur):
- for x in range(largeur):
- obj.write(
- f"v {x * pas} {y * pas} {terrain[y][x]}\n"
- )
- # Création des faces
- for y in range(hauteur - 1):
- for x in range(largeur - 1):
- # index OBJ commence à 1
- p1 = y * largeur + x + 1
- p2 = p1 + 1
- p3 = p1 + largeur
- p4 = p3 + 1
- # Premier triangle
- obj.write(
- f"f {p1} {p2} {p3}\n"
- )
- # Deuxième triangle
- obj.write(
- f"f {p2} {p4} {p3}\n"
- )
- print(f"Fichier créé : {fichier_obj}")
|