Сетка рассеянного участка - PullRequest
1 голос
/ 09 мая 2019

У меня есть точечная диаграмма зерна (r theta phi / xyz).Я работаю над Python (3).Я хочу создать сетку, чтобы иметь выпуклое тело со связями между лицами.Из-за численных проблем, я думаю, что я должен использовать триангуляцию Делоне, чтобы иметь выпуклое тело с треугольниками, близкими к равносторонним.Я хочу сделать поверхностную сетку из трехмерного графика рассеяния.Это возможно с Делоне?

В противном случае я попытался использовать Convexhull3D (см. Код).Проблема в том, что у меня нет треугольников, близких к равносторонним, а также я не знаю, как я могу сохранить свои результаты (координаты и связи).Можно ли управлять поверхностью треугольников?(хотелось бы иметь только равносторонние элементы)

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.spatial import ConvexHull


# 8 points defining the cube corners
pts = np.load('cart.npy') # cartesian coor of the scatter plot also have 
spherical coor

hull = ConvexHull(pts)

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")

# Plot defining corner points
ax.plot(pts.T[0], pts.T[1], pts.T[2], "ko")

# 12 = 2 * 6 faces are the simplices (2 simplices per square face)
for s in hull.simplices:
    s = np.append(s, s[0])  # Here we cycle back to the first coordinate
    ax.plot(pts[s, 0], pts[s, 1], pts[s, 2], "r-")

# Make axis label
for i in ["x", "y", "z"]:
    eval("ax.set_{:s}label('{:s}')".format(i, i))

plt.show()

В результате мне нужно сетчатое выпуклое тело с координатами и связями между его гранями и с симплексом, близким к равносторонним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...