I'm trying to use the following .py code in Vectorscript as a Python script. Compiling works. The application fails and the libraries are referenced. The libraries are there. what do i have to do?
Thanks for your help!
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
def create_turtle_shell(mesh_points, num_layers=5, layer_thickness=0.1):
"""
Erstellt schalenartige Elemente um die Hülle des 3D-Objekts.
Parameters:
- mesh_points: Eine Nx3-NumPy-Array mit den Koordinaten der Meshpunkte.
- num_layers: Die Anzahl der Schichten.
- layer_thickness: Die Dicke jeder Schicht.
Returns:
- turtle_shell: Eine Poly3DCollection, die die schalenartigen Elemente repräsentiert.
"""
turtle_shell = []
for i in range(num_layers):
shell_points = mesh_points * (1 + i * layer_thickness)
hull_faces = create_convex_hull(shell_points)
turtle_shell.append(hull_faces)
return turtle_shell
def create_convex_hull(points):
"""
Erstellt die konvexe Hülle für eine Menge von Punkten.
Parameters:
- points: Eine Nx3-NumPy-Array mit den Koordinaten der Punkte.
Returns:
- hull_faces: Eine Poly3DCollection, die die konvexe Hülle repräsentiert.
"""
from scipy.spatial import ConvexHull
hull = ConvexHull(points)
hull_faces = Poly3DCollection([hull.points[face] for face in hull.simplices], alpha=0.2)
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Question
SimA
Hello
I'm trying to use the following .py code in Vectorscript as a Python script. Compiling works. The application fails and the libraries are referenced. The libraries are there. what do i have to do?
Thanks for your help!
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
def create_turtle_shell(mesh_points, num_layers=5, layer_thickness=0.1):
"""
Erstellt schalenartige Elemente um die Hülle des 3D-Objekts.
Parameters:
- mesh_points: Eine Nx3-NumPy-Array mit den Koordinaten der Meshpunkte.
- num_layers: Die Anzahl der Schichten.
- layer_thickness: Die Dicke jeder Schicht.
Returns:
- turtle_shell: Eine Poly3DCollection, die die schalenartigen Elemente repräsentiert.
"""
turtle_shell = []
for i in range(num_layers):
shell_points = mesh_points * (1 + i * layer_thickness)
hull_faces = create_convex_hull(shell_points)
turtle_shell.append(hull_faces)
return turtle_shell
def create_convex_hull(points):
"""
Erstellt die konvexe Hülle für eine Menge von Punkten.
Parameters:
- points: Eine Nx3-NumPy-Array mit den Koordinaten der Punkte.
Returns:
- hull_faces: Eine Poly3DCollection, die die konvexe Hülle repräsentiert.
"""
from scipy.spatial import ConvexHull
hull = ConvexHull(points)
hull_faces = Poly3DCollection([hull.points[face] for face in hull.simplices], alpha=0.2)
return hull_faces
# Beispiel: Erzeuge zufällige 3D-Punkte
np.random.seed(42)
mesh_points = np.random.rand(100, 3)
# Erzeuge die schalenartigen Elemente
turtle_shell = create_turtle_shell(mesh_points)
# Visualisierung
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for layer in turtle_shell:
ax.add_collection3d(layer)
ax.scatter(mesh_points[:, 0], mesh_points[:, 1], mesh_points[:, 2], c='r', marker='o')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
Link to comment
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.