Построение 3д модели python/plotly
Нужно получить 3д модель треугольной призмы и добавлять в нее точки
Должно получится что-то вроде этого (написал на css и js)
Начал писать на plotly, но не получается даже призму сделать. Подскажите, что не так и куда копать
import plotly.graph_objects as go
import numpy as np
prism_x = [0, 5, 10, 0, 5, 10]
prism_z = [0, 0, 0, 10, 10, 10]
prism_y = [0, 5, 0, 0, 5, 0]
fig = go.Figure(data=[
go.Mesh3d(
x=prism_x, y=prism_y, z=prism_z,
opacity=0.5,
color='rgba(244, 22, 100, 0.6)',
flatshading=True)
])
fig.update_layout(
scene=dict(
xaxis=dict(range=[-1, 11]),
yaxis=dict(range=[-1, 6]),
zaxis=dict(range=[-1, 11])),
margin=dict(r=20, l=20, t=20, b=20))
fig.show()
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Ну призму-то нарисовать можно, и точки на ней отметить. вопрос в том, насколько вам нужен интерактив, может вам проще через matplotlib.pyplot решить вопрос:
import numpy as np
import plotly.graph_objects as go
import plotly.offline as pyo
pyo.init_notebook_mode() # мои настройки для работы plotly в jupyter lab
# если вы работаете в другой среде, вам они не нужны
prism_x = [0, 5, 10, 0, 5, 10]
prism_z = [0, 0, 0, 10, 10, 10]
prism_y = [0, 5, 0, 0, 5, 0]
fig = go.Figure(data=[
go.Scatter3d(x=prism_x, y=prism_y, z=prism_z,
mode='markers',
marker=dict(size=2)
),
go.Mesh3d(x=prism_x, y=prism_y, z=prism_z,
alphahull = 0,
opacity=.5,
flatshading = True
),
])
fig.update_layout(
scene=dict(
xaxis=dict(range=[-1, 11]),
yaxis=dict(range=[-1, 6]),
zaxis=dict(range=[-1, 11])),
margin=dict(r=20, l=20, t=20, b=20))
fig.show(renderer='iframe') # мои настройки рендерера для jupyter lab
# если вы работаете в другой среде, вам они могут
# не понадобиться

