Повернуть файл stl в matplotlib 3d
Я использую numpy-stl для открытия файла stl в сюжете. Это открытый stl файл. Но у меня проблема. Я хочу повернуть файл stl в сюжете, как показано ниже.
код здесь
from stl import mesh
from mpl_toolkits import mplot3d
from matplotlib import pyplot
from math import sin,cos,pi
import numpy as np
# Create a new plot
figure = pyplot.figure()
axes = mplot3d.Axes3D(figure)
m1 = mesh.Mesh.from_file('filea.stl')
axes.add_collection3d(mplot3d.art3d.Poly3DCollection(m1.vectors))
# Auto scale to the mesh size
scale = m1.points.flatten()
axes.auto_scale_xyz(scale-10, scale+10, scale)
# Show the plot to the screen
pyplot.show()
2 ответа
Я решил эту проблему. Если у вас есть вопрос о проблеме с вращением numpy-stl или других проблемах, вы можете задать мне без колебаний. Вот мое решение:
self.m1 = mesh.Mesh.from_file('assets/file.stl')
self.m1.rotate([x-axis, y-axis, z-axis], math.radians(angle))
код:
self.m1.rotate([1, 0, 0], math.radians(angleinxaxis))
self.m1.rotate([0, 1, 0], math.radians(angleinyaxis))
self.m1.rotate([0, 0, 1], math.radians(angleinzaxis))
Во-первых, это не совсем ответ на ваш вопрос, заранее прошу прощения. Но гораздо лучший способ — использовать пакет для 3D-визуализации.stl
файлы. Это совершенно неразрешимо с сгенерированнымиtriangle_mesh
.
Вот как вы можете это сделать:
- Монтаж
pip install open3d
- Применение
import open3d as o3d
mesh = o3d.io.read_triangle_mesh("Body_Kylo_Ren_fixed.stl")
mesh = mesh.compute_vertex_normals()
o3d.visualization.draw_geometries([mesh],window_name="STL", left=1000, top=200, width=800, height=650)
Вывод: вы увидите интерактивный 3D-файл stl.
Проверить
open3d
документацию , чтобы узнать больше.