Повернуть файл 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документацию , чтобы узнать больше.

Другие вопросы по тегам