繁体   English   中英

Python - 围绕 3D 绘图云绘制表面

[英]Python - plotting surface around 3D plot cloud

我运行计算流体动力学模拟,我想在数量优于阈值的区域细化我的网格。 我设法提取点位置,因此我获得了一个点列表,描述了符合我的优化标准的区域。

为了细化我的网格,我需要向软件提供由点云描述的曲面(或曲线,如果我们在 2D 中)的外部边界。 更具体地说,我需要删除区域中心的所有点以获得边界上的坐标。 然后我想用曲线包围这些点。 点云。蓝色:应该提取的边界点

我在论坛上找到了类似的帖子,但问题是插入点云,所以不是我想要的: Fit Curve-Spline to 3D Point Cloud

你能帮我做吗?

这是点云的二维示例,我只想保留边界点并绘制周围曲线:

0.20215,0.29703,0
0.22857,0.29703,0
0.25526,0.29703,0
0.28221,0.29703,0
0.30943,0.29703,0
0.33692,0.29703,0
0.36469,0.29703,0
0.39273,0.29703,0
0.42106,0.29703,0
0.44966,0.29703,0
0.47856,0.29703,0
0.50774,0.29703,0
0.53722,0.29703,0
0.56699,0.29703,0
0.59706,0.29703,0
0.62742,0.29703,0
0.6581,0.29703,0
0.68907,0.29703,0
0.72036,0.29703,0
0.75196,0.29703,0
0.78388,0.29703,0
0.81612,0.29703,0
0.84868,0.29703,0
0.88156,0.29703,0
0.91478,0.29703,0
0.94832,0.29703,0
0.9822,0.29703,0
1.0164,0.29703,0
1.051,0.29703,0
1.0859,0.29703,0
1.1211,0.29703,0
1.1568,0.29703,0
1.1927,0.29703,0
1.229,0.29703,0
1.2657,0.29703,0
1.3028,0.29703,0
1.3402,0.29703,0
1.378,0.29703,0
1.4162,0.29703,0
1.4548,0.29703,0
1.4937,0.29703,0
1.533,0.29703,0
1.5728,0.29703,0
1.6129,0.29703,0
1.6534,0.29703,0
1.6944,0.29703,0
1.7357,0.29703,0
1.7774,0.29703,0
1.8196,0.29703,0
1.8622,0.29703,0
1.9052,0.29703,0
1.9487,0.29703,0
1.9926,0.29703,0
2.0369,0.29703,0
2.0817,0.29703,0
2.1269,0.29703,0
2.1725,0.29703,0
2.2187,0.29703,0
2.2652,0.29703,0
2.3123,0.29703,0
2.3598,0.29703,0
2.4078,0.29703,0
2.4563,0.29703,0
2.5053,0.29703,0
2.5547,0.29703,0
2.6046,0.29703,0
2.6551,0.29703,0
2.706,0.29703,0
2.7575,0.29703,0
2.8095,0.29703,0
2.862,0.29703,0
2.915,0.29703,0
2.9685,0.29703,0
3.0226,0.29703,0
3.0772,0.29703,0
3.1324,0.29703,0
3.1881,0.29703,0
3.2444,0.29703,0
3.3013,0.29703,0
3.3587,0.29703,0
3.4166,0.29703,0
3.4752,0.29703,0
3.5344,0.29703,0
3.5941,0.29703,0
3.6544,0.29703,0
3.7154,0.29703,0
3.7769,0.29703,0
3.8391,0.29703,0
3.9019,0.29703,0
3.9653,0.29703,0
4.0294,0.29703,0
4.094,0.29703,0
4.1594,0.29703,0
4.2254,0.29703,0
4.292,0.29703,0
4.3593,0.29703,0
4.4273,0.29703,0
4.496,0.29703,0
4.5654,0.29703,0
4.6354,0.29703,0
4.7062,0.29703,0
4.7776,0.29703,0
4.8498,0.29703,0
4.9227,0.29703,0
0.28221,0.28425,0
0.30943,0.28425,0
0.33692,0.28425,0
0.36469,0.28425,0
0.39273,0.28425,0
0.42106,0.28425,0
0.44966,0.28425,0
0.47856,0.28425,0
0.50774,0.28425,0
0.53722,0.28425,0
0.56699,0.28425,0
0.59706,0.28425,0
0.62742,0.28425,0
0.6581,0.28425,0
0.68907,0.28425,0
0.72036,0.28425,0
0.75196,0.28425,0
0.78388,0.28425,0
0.81612,0.28425,0
0.84868,0.28425,0
0.88156,0.28425,0
0.91478,0.28425,0
0.94832,0.28425,0
0.9822,0.28425,0
1.0164,0.28425,0
1.051,0.28425,0
1.0859,0.28425,0
1.1211,0.28425,0
1.1568,0.28425,0
1.1927,0.28425,0
1.229,0.28425,0
1.2657,0.28425,0
1.3028,0.28425,0
1.3402,0.28425,0
1.378,0.28425,0
1.4162,0.28425,0
1.4548,0.28425,0
1.4937,0.28425,0
1.533,0.28425,0
1.5728,0.28425,0
1.6129,0.28425,0
1.6534,0.28425,0
1.6944,0.28425,0
1.7357,0.28425,0
1.7774,0.28425,0
1.8196,0.28425,0
1.8622,0.28425,0
1.9052,0.28425,0
1.9487,0.28425,0
1.9926,0.28425,0
2.0369,0.28425,0
2.0817,0.28425,0
2.1269,0.28425,0
2.1725,0.28425,0
2.2187,0.28425,0
2.2652,0.28425,0
2.3123,0.28425,0
2.3598,0.28425,0
2.4078,0.28425,0
2.4563,0.28425,0
2.5053,0.28425,0
2.5547,0.28425,0
2.6046,0.28425,0
2.6551,0.28425,0
2.706,0.28425,0
2.7575,0.28425,0
2.8095,0.28425,0
2.862,0.28425,0
2.915,0.28425,0
2.9685,0.28425,0
3.0226,0.28425,0
3.0772,0.28425,0
3.1324,0.28425,0
3.1881,0.28425,0
3.2444,0.28425,0
3.3013,0.28425,0
3.3587,0.28425,0
3.4166,0.28425,0
3.4752,0.28425,0
3.5344,0.28425,0
3.5941,0.28425,0
3.6544,0.28425,0
3.7154,0.28425,0
3.7769,0.28425,0
3.8391,0.28425,0
3.9019,0.28425,0
3.9653,0.28425,0
4.0294,0.28425,0
4.094,0.28425,0
4.1594,0.28425,0
4.2254,0.28425,0
4.292,0.28425,0
4.3593,0.28425,0
4.4273,0.28425,0
4.496,0.28425,0
4.5654,0.28425,0
0.39273,0.27117,0
0.42106,0.27117,0
0.44966,0.27117,0
0.47856,0.27117,0
0.50774,0.27117,0
0.53722,0.27117,0
0.56699,0.27117,0
0.59706,0.27117,0
0.62742,0.27117,0
0.6581,0.27117,0
0.68907,0.27117,0
0.72036,0.27117,0
0.75196,0.27117,0
0.78388,0.27117,0
0.81612,0.27117,0
0.84868,0.27117,0
0.88156,0.27117,0
0.91478,0.27117,0
0.94832,0.27117,0
0.9822,0.27117,0
1.0164,0.27117,0
1.051,0.27117,0
1.0859,0.27117,0
1.1211,0.27117,0
1.1568,0.27117,0
1.1927,0.27117,0
1.229,0.27117,0
1.2657,0.27117,0
1.3028,0.27117,0
1.3402,0.27117,0
1.378,0.27117,0
1.4162,0.27117,0
1.4548,0.27117,0
1.4937,0.27117,0
1.533,0.27117,0
1.5728,0.27117,0
1.6129,0.27117,0
1.6534,0.27117,0
1.6944,0.27117,0
1.7357,0.27117,0
1.7774,0.27117,0
1.8196,0.27117,0
1.8622,0.27117,0
1.9052,0.27117,0
1.9487,0.27117,0
1.9926,0.27117,0
2.0369,0.27117,0
2.0817,0.27117,0
2.1269,0.27117,0
2.1725,0.27117,0
2.2187,0.27117,0
2.2652,0.27117,0
2.3123,0.27117,0
2.3598,0.27117,0
2.4078,0.27117,0
2.4563,0.27117,0
2.5053,0.27117,0
2.5547,0.27117,0
2.6046,0.27117,0
2.6551,0.27117,0
2.706,0.27117,0
2.7575,0.27117,0
2.8095,0.27117,0
2.862,0.27117,0
2.915,0.27117,0
2.9685,0.27117,0
3.0226,0.27117,0
3.0772,0.27117,0
3.1324,0.27117,0
3.1881,0.27117,0
3.2444,0.27117,0
3.3013,0.27117,0
3.3587,0.27117,0
3.4166,0.27117,0
3.4752,0.27117,0
3.5344,0.27117,0
3.5941,0.27117,0
3.6544,0.27117,0
3.7154,0.27117,0
3.7769,0.27117,0
3.8391,0.27117,0
3.9019,0.27117,0
3.9653,0.27117,0
4.0294,0.27117,0
4.094,0.27117,0
4.1594,0.27117,0
0.47856,0.25781,0
0.50774,0.25781,0
0.53722,0.25781,0
0.56699,0.25781,0
0.59706,0.25781,0
0.62742,0.25781,0
0.6581,0.25781,0
0.68907,0.25781,0
0.72036,0.25781,0
0.75196,0.25781,0
0.78388,0.25781,0
0.81612,0.25781,0
0.84868,0.25781,0
0.88156,0.25781,0
0.91478,0.25781,0
0.94832,0.25781,0
0.9822,0.25781,0
1.0164,0.25781,0
1.051,0.25781,0
1.0859,0.25781,0
1.1211,0.25781,0
1.1568,0.25781,0
1.1927,0.25781,0
1.229,0.25781,0
1.2657,0.25781,0
1.3028,0.25781,0
1.3402,0.25781,0
1.378,0.25781,0
1.4162,0.25781,0
1.4548,0.25781,0
1.4937,0.25781,0
1.533,0.25781,0
1.5728,0.25781,0
1.6129,0.25781,0
1.6534,0.25781,0
1.6944,0.25781,0
1.7357,0.25781,0
1.7774,0.25781,0
1.8196,0.25781,0
1.8622,0.25781,0
1.9052,0.25781,0
1.9487,0.25781,0
1.9926,0.25781,0
2.0369,0.25781,0
2.0817,0.25781,0
2.1269,0.25781,0
2.1725,0.25781,0
2.2187,0.25781,0
2.2652,0.25781,0
2.3123,0.25781,0
2.3598,0.25781,0
2.4078,0.25781,0
2.4563,0.25781,0
2.5053,0.25781,0
2.5547,0.25781,0
2.6046,0.25781,0
2.6551,0.25781,0
2.706,0.25781,0
2.7575,0.25781,0
2.8095,0.25781,0
2.862,0.25781,0
2.915,0.25781,0
2.9685,0.25781,0
3.0226,0.25781,0
3.0772,0.25781,0
3.1324,0.25781,0
3.1881,0.25781,0
3.2444,0.25781,0
3.3013,0.25781,0
3.3587,0.25781,0
3.4166,0.25781,0
3.4752,0.25781,0
3.5344,0.25781,0
3.5941,0.25781,0
3.6544,0.25781,0
3.7154,0.25781,0
3.7769,0.25781,0
3.8391,0.25781,0
0.53722,0.24422,0
0.56699,0.24422,0
0.59706,0.24422,0
0.62742,0.24422,0
0.6581,0.24422,0
0.68907,0.24422,0
0.72036,0.24422,0
0.75196,0.24422,0
0.78388,0.24422,0
0.81612,0.24422,0
0.84868,0.24422,0
0.88156,0.24422,0
0.91478,0.24422,0
0.94832,0.24422,0
0.9822,0.24422,0
1.0164,0.24422,0
1.051,0.24422,0
1.0859,0.24422,0
1.1211,0.24422,0
1.1568,0.24422,0
1.1927,0.24422,0
1.229,0.24422,0
1.2657,0.24422,0
1.3028,0.24422,0
1.3402,0.24422,0
1.378,0.24422,0
1.4162,0.24422,0
1.4548,0.24422,0
1.4937,0.24422,0
1.533,0.24422,0
1.5728,0.24422,0
1.6129,0.24422,0
1.6534,0.24422,0
1.6944,0.24422,0
1.7357,0.24422,0
1.7774,0.24422,0
1.8196,0.24422,0
1.8622,0.24422,0
1.9052,0.24422,0
1.9487,0.24422,0
1.9926,0.24422,0
2.0369,0.24422,0
2.0817,0.24422,0
2.1269,0.24422,0
2.1725,0.24422,0
2.2187,0.24422,0
2.2652,0.24422,0
2.3123,0.24422,0
2.3598,0.24422,0
2.4078,0.24422,0
2.4563,0.24422,0
2.5053,0.24422,0
2.5547,0.24422,0
2.6046,0.24422,0
2.6551,0.24422,0
2.706,0.24422,0
2.7575,0.24422,0
2.8095,0.24422,0
2.862,0.24422,0
2.915,0.24422,0
2.9685,0.24422,0
3.0226,0.24422,0
3.0772,0.24422,0
3.1324,0.24422,0
3.1881,0.24422,0
3.2444,0.24422,0
3.3013,0.24422,0
3.3587,0.24422,0
3.4166,0.24422,0
3.4752,0.24422,0
0.62742,0.23041,0
0.6581,0.23041,0
0.68907,0.23041,0
0.72036,0.23041,0
0.75196,0.23041,0
0.78388,0.23041,0
0.81612,0.23041,0
0.84868,0.23041,0
0.88156,0.23041,0
0.91478,0.23041,0
0.94832,0.23041,0
0.9822,0.23041,0
1.0164,0.23041,0
1.051,0.23041,0
1.0859,0.23041,0
1.1211,0.23041,0
1.1568,0.23041,0
1.1927,0.23041,0
1.229,0.23041,0
1.2657,0.23041,0
1.3028,0.23041,0
1.3402,0.23041,0
1.378,0.23041,0
1.4162,0.23041,0
1.4548,0.23041,0
1.4937,0.23041,0
1.533,0.23041,0
1.5728,0.23041,0
1.6129,0.23041,0
1.6534,0.23041,0
1.6944,0.23041,0
1.7357,0.23041,0
1.7774,0.23041,0
1.8196,0.23041,0
1.8622,0.23041,0
1.9052,0.23041,0
1.9487,0.23041,0
1.9926,0.23041,0
2.0369,0.23041,0
2.0817,0.23041,0
2.1269,0.23041,0
2.1725,0.23041,0
2.2187,0.23041,0
2.2652,0.23041,0
2.3123,0.23041,0
2.3598,0.23041,0
2.4078,0.23041,0
2.4563,0.23041,0
2.5053,0.23041,0
2.5547,0.23041,0
2.6046,0.23041,0
2.6551,0.23041,0
2.706,0.23041,0
2.7575,0.23041,0
2.8095,0.23041,0
2.862,0.23041,0
2.915,0.23041,0
2.9685,0.23041,0
3.0226,0.23041,0
3.0772,0.23041,0
3.1324,0.23041,0
3.1881,0.23041,0
0.68907,0.21643,0
0.72036,0.21643,0
0.75196,0.21643,0
0.78388,0.21643,0
0.81612,0.21643,0
0.84868,0.21643,0
0.88156,0.21643,0
0.91478,0.21643,0
0.94832,0.21643,0
0.9822,0.21643,0
1.0164,0.21643,0
1.051,0.21643,0
1.0859,0.21643,0
1.1211,0.21643,0
1.1568,0.21643,0
1.1927,0.21643,0
1.229,0.21643,0
1.2657,0.21643,0
1.3028,0.21643,0
1.3402,0.21643,0
1.378,0.21643,0
1.4162,0.21643,0
1.4548,0.21643,0
1.4937,0.21643,0
1.533,0.21643,0
1.5728,0.21643,0
1.6129,0.21643,0
1.6534,0.21643,0
1.6944,0.21643,0
1.7357,0.21643,0
1.7774,0.21643,0
1.8196,0.21643,0
1.8622,0.21643,0
1.9052,0.21643,0
1.9487,0.21643,0
1.9926,0.21643,0
2.0369,0.21643,0
2.0817,0.21643,0
2.1269,0.21643,0
2.1725,0.21643,0
2.2187,0.21643,0
2.2652,0.21643,0
2.3123,0.21643,0
2.3598,0.21643,0
2.4078,0.21643,0
2.4563,0.21643,0
2.5053,0.21643,0
2.5547,0.21643,0
2.6046,0.21643,0
2.6551,0.21643,0
2.706,0.21643,0
2.7575,0.21643,0
2.8095,0.21643,0
0.78388,0.20231,0
0.81612,0.20231,0
0.84868,0.20231,0
0.88156,0.20231,0
0.91478,0.20231,0
0.94832,0.20231,0
0.9822,0.20231,0
1.0164,0.20231,0
1.051,0.20231,0
1.0859,0.20231,0
1.1211,0.20231,0
1.1568,0.20231,0
1.1927,0.20231,0
1.229,0.20231,0
1.2657,0.20231,0
1.3028,0.20231,0
1.3402,0.20231,0
1.378,0.20231,0
1.4162,0.20231,0
1.4548,0.20231,0
1.4937,0.20231,0
1.533,0.20231,0
1.5728,0.20231,0
1.6129,0.20231,0
1.6534,0.20231,0
1.6944,0.20231,0
1.7357,0.20231,0
1.7774,0.20231,0
1.8196,0.20231,0
1.8622,0.20231,0
1.9052,0.20231,0
1.9487,0.20231,0
1.9926,0.20231,0
2.0369,0.20231,0
2.0817,0.20231,0
2.1269,0.20231,0
2.1725,0.20231,0
2.2187,0.20231,0
2.2652,0.20231,0
2.3123,0.20231,0
2.3598,0.20231,0
2.4078,0.20231,0
2.4563,0.20231,0
1.051,0.1881,0
1.0859,0.1881,0
1.1211,0.1881,0
1.1568,0.1881,0
1.1927,0.1881,0
1.229,0.1881,0
1.2657,0.1881,0
1.3028,0.1881,0
1.3402,0.1881,0
1.378,0.1881,0
1.4162,0.1881,0
1.4548,0.1881,0
1.4937,0.1881,0
1.533,0.1881,0
1.5728,0.1881,0
1.6129,0.1881,0
1.6534,0.1881,0
1.6944,0.1881,0
1.7357,0.1881,0
1.7774,0.1881,0
1.8196,0.1881,0
1.8622,0.1881,0
1.9052,0.1881,0
1.9487,0.1881,0
1.9926,0.1881,0
2.0369,0.1881,0

谢谢你的帮助,

真挚地

可以使用 SciPy 中的ConvexHull ,此函数与convex_hull_plot_2d一起为提供的数据集生成此结果。 下面是重现图片的代码。 代码末尾的hull.points包含您正在寻找的结果轮廓点集。

凸包结果

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from scipy.spatial import ConvexHull, convex_hull_plot_2d

df = pd.DataFrame([{'x': 0.20215, 'y': 0.29703, 'z': 0},
 {'x': 0.22857, 'y': 0.29703, 'z': 0},
 {'x': 0.25526, 'y': 0.29703, 'z': 0},
 {'x': 0.28221, 'y': 0.29703, 'z': 0},
 {'x': 0.30943, 'y': 0.29703, 'z': 0},
 {'x': 0.33692, 'y': 0.29703, 'z': 0},
 {'x': 0.36469, 'y': 0.29703, 'z': 0},
 {'x': 0.39273, 'y': 0.29703, 'z': 0},
 {'x': 0.42106, 'y': 0.29703, 'z': 0},
 {'x': 0.44966, 'y': 0.29703, 'z': 0},
 {'x': 0.47856, 'y': 0.29703, 'z': 0},
 {'x': 0.50774, 'y': 0.29703, 'z': 0},
 {'x': 0.53722, 'y': 0.29703, 'z': 0},
 {'x': 0.56699, 'y': 0.29703, 'z': 0},
 {'x': 0.59706, 'y': 0.29703, 'z': 0},
 {'x': 0.62742, 'y': 0.29703, 'z': 0},
 {'x': 0.6581, 'y': 0.29703, 'z': 0},
 {'x': 0.68907, 'y': 0.29703, 'z': 0},
 {'x': 0.72036, 'y': 0.29703, 'z': 0},
 {'x': 0.75196, 'y': 0.29703, 'z': 0},
 {'x': 0.78388, 'y': 0.29703, 'z': 0},
 {'x': 0.81612, 'y': 0.29703, 'z': 0},
 {'x': 0.84868, 'y': 0.29703, 'z': 0},
 {'x': 0.88156, 'y': 0.29703, 'z': 0},
 {'x': 0.91478, 'y': 0.29703, 'z': 0},
 {'x': 0.94832, 'y': 0.29703, 'z': 0},
 {'x': 0.9822, 'y': 0.29703, 'z': 0},
 {'x': 1.0164, 'y': 0.29703, 'z': 0},
 {'x': 1.051, 'y': 0.29703, 'z': 0},
 {'x': 1.0859, 'y': 0.29703, 'z': 0},
 {'x': 1.1211, 'y': 0.29703, 'z': 0},
 {'x': 1.1568, 'y': 0.29703, 'z': 0},
 {'x': 1.1927, 'y': 0.29703, 'z': 0},
 {'x': 1.229, 'y': 0.29703, 'z': 0},
 {'x': 1.2657, 'y': 0.29703, 'z': 0},
 {'x': 1.3028, 'y': 0.29703, 'z': 0},
 {'x': 1.3402, 'y': 0.29703, 'z': 0},
 {'x': 1.378, 'y': 0.29703, 'z': 0},
 {'x': 1.4162, 'y': 0.29703, 'z': 0},
 {'x': 1.4548, 'y': 0.29703, 'z': 0},
 {'x': 1.4937, 'y': 0.29703, 'z': 0},
 {'x': 1.533, 'y': 0.29703, 'z': 0},
 {'x': 1.5728, 'y': 0.29703, 'z': 0},
 {'x': 1.6129, 'y': 0.29703, 'z': 0},
 {'x': 1.6534, 'y': 0.29703, 'z': 0},
 {'x': 1.6944, 'y': 0.29703, 'z': 0},
 {'x': 1.7357, 'y': 0.29703, 'z': 0},
 {'x': 1.7774, 'y': 0.29703, 'z': 0},
 {'x': 1.8196, 'y': 0.29703, 'z': 0},
 {'x': 1.8622, 'y': 0.29703, 'z': 0},
 {'x': 1.9052, 'y': 0.29703, 'z': 0},
 {'x': 1.9487, 'y': 0.29703, 'z': 0},
 {'x': 1.9926, 'y': 0.29703, 'z': 0},
 {'x': 2.0369, 'y': 0.29703, 'z': 0},
 {'x': 2.0817, 'y': 0.29703, 'z': 0},
 {'x': 2.1269, 'y': 0.29703, 'z': 0},
 {'x': 2.1725, 'y': 0.29703, 'z': 0},
 {'x': 2.2187, 'y': 0.29703, 'z': 0},
 {'x': 2.2652, 'y': 0.29703, 'z': 0},
 {'x': 2.3123, 'y': 0.29703, 'z': 0},
 {'x': 2.3598, 'y': 0.29703, 'z': 0},
 {'x': 2.4078, 'y': 0.29703, 'z': 0},
 {'x': 2.4563, 'y': 0.29703, 'z': 0},
 {'x': 2.5053, 'y': 0.29703, 'z': 0},
 {'x': 2.5547, 'y': 0.29703, 'z': 0},
 {'x': 2.6046, 'y': 0.29703, 'z': 0},
 {'x': 2.6551, 'y': 0.29703, 'z': 0},
 {'x': 2.706, 'y': 0.29703, 'z': 0},
 {'x': 2.7575, 'y': 0.29703, 'z': 0},
 {'x': 2.8095, 'y': 0.29703, 'z': 0},
 {'x': 2.862, 'y': 0.29703, 'z': 0},
 {'x': 2.915, 'y': 0.29703, 'z': 0},
 {'x': 2.9685, 'y': 0.29703, 'z': 0},
 {'x': 3.0226, 'y': 0.29703, 'z': 0},
 {'x': 3.0772, 'y': 0.29703, 'z': 0},
 {'x': 3.1324, 'y': 0.29703, 'z': 0},
 {'x': 3.1881, 'y': 0.29703, 'z': 0},
 {'x': 3.2444, 'y': 0.29703, 'z': 0},
 {'x': 3.3013, 'y': 0.29703, 'z': 0},
 {'x': 3.3587, 'y': 0.29703, 'z': 0},
 {'x': 3.4166, 'y': 0.29703, 'z': 0},
 {'x': 3.4752, 'y': 0.29703, 'z': 0},
 {'x': 3.5344, 'y': 0.29703, 'z': 0},
 {'x': 3.5941, 'y': 0.29703, 'z': 0},
 {'x': 3.6544, 'y': 0.29703, 'z': 0},
 {'x': 3.7154, 'y': 0.29703, 'z': 0},
 {'x': 3.7769, 'y': 0.29703, 'z': 0},
 {'x': 3.8391, 'y': 0.29703, 'z': 0},
 {'x': 3.9019, 'y': 0.29703, 'z': 0},
 {'x': 3.9653, 'y': 0.29703, 'z': 0},
 {'x': 4.0294, 'y': 0.29703, 'z': 0},
 {'x': 4.094, 'y': 0.29703, 'z': 0},
 {'x': 4.1594, 'y': 0.29703, 'z': 0},
 {'x': 4.2254, 'y': 0.29703, 'z': 0},
 {'x': 4.292, 'y': 0.29703, 'z': 0},
 {'x': 4.3593, 'y': 0.29703, 'z': 0},
 {'x': 4.4273, 'y': 0.29703, 'z': 0},
 {'x': 4.496, 'y': 0.29703, 'z': 0},
 {'x': 4.5654, 'y': 0.29703, 'z': 0},
 {'x': 4.6354, 'y': 0.29703, 'z': 0},
 {'x': 4.7062, 'y': 0.29703, 'z': 0},
 {'x': 4.7776, 'y': 0.29703, 'z': 0},
 {'x': 4.8498, 'y': 0.29703, 'z': 0},
 {'x': 4.9227, 'y': 0.29703, 'z': 0},
 {'x': 0.28221, 'y': 0.28425, 'z': 0},
 {'x': 0.30943, 'y': 0.28425, 'z': 0},
 {'x': 0.33692, 'y': 0.28425, 'z': 0},
 {'x': 0.36469, 'y': 0.28425, 'z': 0},
 {'x': 0.39273, 'y': 0.28425, 'z': 0},
 {'x': 0.42106, 'y': 0.28425, 'z': 0},
 {'x': 0.44966, 'y': 0.28425, 'z': 0},
 {'x': 0.47856, 'y': 0.28425, 'z': 0},
 {'x': 0.50774, 'y': 0.28425, 'z': 0},
 {'x': 0.53722, 'y': 0.28425, 'z': 0},
 {'x': 0.56699, 'y': 0.28425, 'z': 0},
 {'x': 0.59706, 'y': 0.28425, 'z': 0},
 {'x': 0.62742, 'y': 0.28425, 'z': 0},
 {'x': 0.6581, 'y': 0.28425, 'z': 0},
 {'x': 0.68907, 'y': 0.28425, 'z': 0},
 {'x': 0.72036, 'y': 0.28425, 'z': 0},
 {'x': 0.75196, 'y': 0.28425, 'z': 0},
 {'x': 0.78388, 'y': 0.28425, 'z': 0},
 {'x': 0.81612, 'y': 0.28425, 'z': 0},
 {'x': 0.84868, 'y': 0.28425, 'z': 0},
 {'x': 0.88156, 'y': 0.28425, 'z': 0},
 {'x': 0.91478, 'y': 0.28425, 'z': 0},
 {'x': 0.94832, 'y': 0.28425, 'z': 0},
 {'x': 0.9822, 'y': 0.28425, 'z': 0},
 {'x': 1.0164, 'y': 0.28425, 'z': 0},
 {'x': 1.051, 'y': 0.28425, 'z': 0},
 {'x': 1.0859, 'y': 0.28425, 'z': 0},
 {'x': 1.1211, 'y': 0.28425, 'z': 0},
 {'x': 1.1568, 'y': 0.28425, 'z': 0},
 {'x': 1.1927, 'y': 0.28425, 'z': 0},
 {'x': 1.229, 'y': 0.28425, 'z': 0},
 {'x': 1.2657, 'y': 0.28425, 'z': 0},
 {'x': 1.3028, 'y': 0.28425, 'z': 0},
 {'x': 1.3402, 'y': 0.28425, 'z': 0},
 {'x': 1.378, 'y': 0.28425, 'z': 0},
 {'x': 1.4162, 'y': 0.28425, 'z': 0},
 {'x': 1.4548, 'y': 0.28425, 'z': 0},
 {'x': 1.4937, 'y': 0.28425, 'z': 0},
 {'x': 1.533, 'y': 0.28425, 'z': 0},
 {'x': 1.5728, 'y': 0.28425, 'z': 0},
 {'x': 1.6129, 'y': 0.28425, 'z': 0},
 {'x': 1.6534, 'y': 0.28425, 'z': 0},
 {'x': 1.6944, 'y': 0.28425, 'z': 0},
 {'x': 1.7357, 'y': 0.28425, 'z': 0},
 {'x': 1.7774, 'y': 0.28425, 'z': 0},
 {'x': 1.8196, 'y': 0.28425, 'z': 0},
 {'x': 1.8622, 'y': 0.28425, 'z': 0},
 {'x': 1.9052, 'y': 0.28425, 'z': 0},
 {'x': 1.9487, 'y': 0.28425, 'z': 0},
 {'x': 1.9926, 'y': 0.28425, 'z': 0},
 {'x': 2.0369, 'y': 0.28425, 'z': 0},
 {'x': 2.0817, 'y': 0.28425, 'z': 0},
 {'x': 2.1269, 'y': 0.28425, 'z': 0},
 {'x': 2.1725, 'y': 0.28425, 'z': 0},
 {'x': 2.2187, 'y': 0.28425, 'z': 0},
 {'x': 2.2652, 'y': 0.28425, 'z': 0},
 {'x': 2.3123, 'y': 0.28425, 'z': 0},
 {'x': 2.3598, 'y': 0.28425, 'z': 0},
 {'x': 2.4078, 'y': 0.28425, 'z': 0},
 {'x': 2.4563, 'y': 0.28425, 'z': 0},
 {'x': 2.5053, 'y': 0.28425, 'z': 0},
 {'x': 2.5547, 'y': 0.28425, 'z': 0},
 {'x': 2.6046, 'y': 0.28425, 'z': 0},
 {'x': 2.6551, 'y': 0.28425, 'z': 0},
 {'x': 2.706, 'y': 0.28425, 'z': 0},
 {'x': 2.7575, 'y': 0.28425, 'z': 0},
 {'x': 2.8095, 'y': 0.28425, 'z': 0},
 {'x': 2.862, 'y': 0.28425, 'z': 0},
 {'x': 2.915, 'y': 0.28425, 'z': 0},
 {'x': 2.9685, 'y': 0.28425, 'z': 0},
 {'x': 3.0226, 'y': 0.28425, 'z': 0},
 {'x': 3.0772, 'y': 0.28425, 'z': 0},
 {'x': 3.1324, 'y': 0.28425, 'z': 0},
 {'x': 3.1881, 'y': 0.28425, 'z': 0},
 {'x': 3.2444, 'y': 0.28425, 'z': 0},
 {'x': 3.3013, 'y': 0.28425, 'z': 0},
 {'x': 3.3587, 'y': 0.28425, 'z': 0},
 {'x': 3.4166, 'y': 0.28425, 'z': 0},
 {'x': 3.4752, 'y': 0.28425, 'z': 0},
 {'x': 3.5344, 'y': 0.28425, 'z': 0},
 {'x': 3.5941, 'y': 0.28425, 'z': 0},
 {'x': 3.6544, 'y': 0.28425, 'z': 0},
 {'x': 3.7154, 'y': 0.28425, 'z': 0},
 {'x': 3.7769, 'y': 0.28425, 'z': 0},
 {'x': 3.8391, 'y': 0.28425, 'z': 0},
 {'x': 3.9019, 'y': 0.28425, 'z': 0},
 {'x': 3.9653, 'y': 0.28425, 'z': 0},
 {'x': 4.0294, 'y': 0.28425, 'z': 0},
 {'x': 4.094, 'y': 0.28425, 'z': 0},
 {'x': 4.1594, 'y': 0.28425, 'z': 0},
 {'x': 4.2254, 'y': 0.28425, 'z': 0},
 {'x': 4.292, 'y': 0.28425, 'z': 0},
 {'x': 4.3593, 'y': 0.28425, 'z': 0},
 {'x': 4.4273, 'y': 0.28425, 'z': 0},
 {'x': 4.496, 'y': 0.28425, 'z': 0},
 {'x': 4.5654, 'y': 0.28425, 'z': 0},
 {'x': 0.39273, 'y': 0.27117, 'z': 0},
 {'x': 0.42106, 'y': 0.27117, 'z': 0},
 {'x': 0.44966, 'y': 0.27117, 'z': 0},
 {'x': 0.47856, 'y': 0.27117, 'z': 0},
 {'x': 0.50774, 'y': 0.27117, 'z': 0},
 {'x': 0.53722, 'y': 0.27117, 'z': 0},
 {'x': 0.56699, 'y': 0.27117, 'z': 0},
 {'x': 0.59706, 'y': 0.27117, 'z': 0},
 {'x': 0.62742, 'y': 0.27117, 'z': 0},
 {'x': 0.6581, 'y': 0.27117, 'z': 0},
 {'x': 0.68907, 'y': 0.27117, 'z': 0},
 {'x': 0.72036, 'y': 0.27117, 'z': 0},
 {'x': 0.75196, 'y': 0.27117, 'z': 0},
 {'x': 0.78388, 'y': 0.27117, 'z': 0},
 {'x': 0.81612, 'y': 0.27117, 'z': 0},
 {'x': 0.84868, 'y': 0.27117, 'z': 0},
 {'x': 0.88156, 'y': 0.27117, 'z': 0},
 {'x': 0.91478, 'y': 0.27117, 'z': 0},
 {'x': 0.94832, 'y': 0.27117, 'z': 0},
 {'x': 0.9822, 'y': 0.27117, 'z': 0},
 {'x': 1.0164, 'y': 0.27117, 'z': 0},
 {'x': 1.051, 'y': 0.27117, 'z': 0},
 {'x': 1.0859, 'y': 0.27117, 'z': 0},
 {'x': 1.1211, 'y': 0.27117, 'z': 0},
 {'x': 1.1568, 'y': 0.27117, 'z': 0},
 {'x': 1.1927, 'y': 0.27117, 'z': 0},
 {'x': 1.229, 'y': 0.27117, 'z': 0},
 {'x': 1.2657, 'y': 0.27117, 'z': 0},
 {'x': 1.3028, 'y': 0.27117, 'z': 0},
 {'x': 1.3402, 'y': 0.27117, 'z': 0},
 {'x': 1.378, 'y': 0.27117, 'z': 0},
 {'x': 1.4162, 'y': 0.27117, 'z': 0},
 {'x': 1.4548, 'y': 0.27117, 'z': 0},
 {'x': 1.4937, 'y': 0.27117, 'z': 0},
 {'x': 1.533, 'y': 0.27117, 'z': 0},
 {'x': 1.5728, 'y': 0.27117, 'z': 0},
 {'x': 1.6129, 'y': 0.27117, 'z': 0},
 {'x': 1.6534, 'y': 0.27117, 'z': 0},
 {'x': 1.6944, 'y': 0.27117, 'z': 0},
 {'x': 1.7357, 'y': 0.27117, 'z': 0},
 {'x': 1.7774, 'y': 0.27117, 'z': 0},
 {'x': 1.8196, 'y': 0.27117, 'z': 0},
 {'x': 1.8622, 'y': 0.27117, 'z': 0},
 {'x': 1.9052, 'y': 0.27117, 'z': 0},
 {'x': 1.9487, 'y': 0.27117, 'z': 0},
 {'x': 1.9926, 'y': 0.27117, 'z': 0},
 {'x': 2.0369, 'y': 0.27117, 'z': 0},
 {'x': 2.0817, 'y': 0.27117, 'z': 0},
 {'x': 2.1269, 'y': 0.27117, 'z': 0},
 {'x': 2.1725, 'y': 0.27117, 'z': 0},
 {'x': 2.2187, 'y': 0.27117, 'z': 0},
 {'x': 2.2652, 'y': 0.27117, 'z': 0},
 {'x': 2.3123, 'y': 0.27117, 'z': 0},
 {'x': 2.3598, 'y': 0.27117, 'z': 0},
 {'x': 2.4078, 'y': 0.27117, 'z': 0},
 {'x': 2.4563, 'y': 0.27117, 'z': 0},
 {'x': 2.5053, 'y': 0.27117, 'z': 0},
 {'x': 2.5547, 'y': 0.27117, 'z': 0},
 {'x': 2.6046, 'y': 0.27117, 'z': 0},
 {'x': 2.6551, 'y': 0.27117, 'z': 0},
 {'x': 2.706, 'y': 0.27117, 'z': 0},
 {'x': 2.7575, 'y': 0.27117, 'z': 0},
 {'x': 2.8095, 'y': 0.27117, 'z': 0},
 {'x': 2.862, 'y': 0.27117, 'z': 0},
 {'x': 2.915, 'y': 0.27117, 'z': 0},
 {'x': 2.9685, 'y': 0.27117, 'z': 0},
 {'x': 3.0226, 'y': 0.27117, 'z': 0},
 {'x': 3.0772, 'y': 0.27117, 'z': 0},
 {'x': 3.1324, 'y': 0.27117, 'z': 0},
 {'x': 3.1881, 'y': 0.27117, 'z': 0},
 {'x': 3.2444, 'y': 0.27117, 'z': 0},
 {'x': 3.3013, 'y': 0.27117, 'z': 0},
 {'x': 3.3587, 'y': 0.27117, 'z': 0},
 {'x': 3.4166, 'y': 0.27117, 'z': 0},
 {'x': 3.4752, 'y': 0.27117, 'z': 0},
 {'x': 3.5344, 'y': 0.27117, 'z': 0},
 {'x': 3.5941, 'y': 0.27117, 'z': 0},
 {'x': 3.6544, 'y': 0.27117, 'z': 0},
 {'x': 3.7154, 'y': 0.27117, 'z': 0},
 {'x': 3.7769, 'y': 0.27117, 'z': 0},
 {'x': 3.8391, 'y': 0.27117, 'z': 0},
 {'x': 3.9019, 'y': 0.27117, 'z': 0},
 {'x': 3.9653, 'y': 0.27117, 'z': 0},
 {'x': 4.0294, 'y': 0.27117, 'z': 0},
 {'x': 4.094, 'y': 0.27117, 'z': 0},
 {'x': 4.1594, 'y': 0.27117, 'z': 0},
 {'x': 0.47856, 'y': 0.25781, 'z': 0},
 {'x': 0.50774, 'y': 0.25781, 'z': 0},
 {'x': 0.53722, 'y': 0.25781, 'z': 0},
 {'x': 0.56699, 'y': 0.25781, 'z': 0},
 {'x': 0.59706, 'y': 0.25781, 'z': 0},
 {'x': 0.62742, 'y': 0.25781, 'z': 0},
 {'x': 0.6581, 'y': 0.25781, 'z': 0},
 {'x': 0.68907, 'y': 0.25781, 'z': 0},
 {'x': 0.72036, 'y': 0.25781, 'z': 0},
 {'x': 0.75196, 'y': 0.25781, 'z': 0},
 {'x': 0.78388, 'y': 0.25781, 'z': 0},
 {'x': 0.81612, 'y': 0.25781, 'z': 0},
 {'x': 0.84868, 'y': 0.25781, 'z': 0},
 {'x': 0.88156, 'y': 0.25781, 'z': 0},
 {'x': 0.91478, 'y': 0.25781, 'z': 0},
 {'x': 0.94832, 'y': 0.25781, 'z': 0},
 {'x': 0.9822, 'y': 0.25781, 'z': 0},
 {'x': 1.0164, 'y': 0.25781, 'z': 0},
 {'x': 1.051, 'y': 0.25781, 'z': 0},
 {'x': 1.0859, 'y': 0.25781, 'z': 0},
 {'x': 1.1211, 'y': 0.25781, 'z': 0},
 {'x': 1.1568, 'y': 0.25781, 'z': 0},
 {'x': 1.1927, 'y': 0.25781, 'z': 0},
 {'x': 1.229, 'y': 0.25781, 'z': 0},
 {'x': 1.2657, 'y': 0.25781, 'z': 0},
 {'x': 1.3028, 'y': 0.25781, 'z': 0},
 {'x': 1.3402, 'y': 0.25781, 'z': 0},
 {'x': 1.378, 'y': 0.25781, 'z': 0},
 {'x': 1.4162, 'y': 0.25781, 'z': 0},
 {'x': 1.4548, 'y': 0.25781, 'z': 0},
 {'x': 1.4937, 'y': 0.25781, 'z': 0},
 {'x': 1.533, 'y': 0.25781, 'z': 0},
 {'x': 1.5728, 'y': 0.25781, 'z': 0},
 {'x': 1.6129, 'y': 0.25781, 'z': 0},
 {'x': 1.6534, 'y': 0.25781, 'z': 0},
 {'x': 1.6944, 'y': 0.25781, 'z': 0},
 {'x': 1.7357, 'y': 0.25781, 'z': 0},
 {'x': 1.7774, 'y': 0.25781, 'z': 0},
 {'x': 1.8196, 'y': 0.25781, 'z': 0},
 {'x': 1.8622, 'y': 0.25781, 'z': 0},
 {'x': 1.9052, 'y': 0.25781, 'z': 0},
 {'x': 1.9487, 'y': 0.25781, 'z': 0},
 {'x': 1.9926, 'y': 0.25781, 'z': 0},
 {'x': 2.0369, 'y': 0.25781, 'z': 0},
 {'x': 2.0817, 'y': 0.25781, 'z': 0},
 {'x': 2.1269, 'y': 0.25781, 'z': 0},
 {'x': 2.1725, 'y': 0.25781, 'z': 0},
 {'x': 2.2187, 'y': 0.25781, 'z': 0},
 {'x': 2.2652, 'y': 0.25781, 'z': 0},
 {'x': 2.3123, 'y': 0.25781, 'z': 0},
 {'x': 2.3598, 'y': 0.25781, 'z': 0},
 {'x': 2.4078, 'y': 0.25781, 'z': 0},
 {'x': 2.4563, 'y': 0.25781, 'z': 0},
 {'x': 2.5053, 'y': 0.25781, 'z': 0},
 {'x': 2.5547, 'y': 0.25781, 'z': 0},
 {'x': 2.6046, 'y': 0.25781, 'z': 0},
 {'x': 2.6551, 'y': 0.25781, 'z': 0},
 {'x': 2.706, 'y': 0.25781, 'z': 0},
 {'x': 2.7575, 'y': 0.25781, 'z': 0},
 {'x': 2.8095, 'y': 0.25781, 'z': 0},
 {'x': 2.862, 'y': 0.25781, 'z': 0},
 {'x': 2.915, 'y': 0.25781, 'z': 0},
 {'x': 2.9685, 'y': 0.25781, 'z': 0},
 {'x': 3.0226, 'y': 0.25781, 'z': 0},
 {'x': 3.0772, 'y': 0.25781, 'z': 0},
 {'x': 3.1324, 'y': 0.25781, 'z': 0},
 {'x': 3.1881, 'y': 0.25781, 'z': 0},
 {'x': 3.2444, 'y': 0.25781, 'z': 0},
 {'x': 3.3013, 'y': 0.25781, 'z': 0},
 {'x': 3.3587, 'y': 0.25781, 'z': 0},
 {'x': 3.4166, 'y': 0.25781, 'z': 0},
 {'x': 3.4752, 'y': 0.25781, 'z': 0},
 {'x': 3.5344, 'y': 0.25781, 'z': 0},
 {'x': 3.5941, 'y': 0.25781, 'z': 0},
 {'x': 3.6544, 'y': 0.25781, 'z': 0},
 {'x': 3.7154, 'y': 0.25781, 'z': 0},
 {'x': 3.7769, 'y': 0.25781, 'z': 0},
 {'x': 3.8391, 'y': 0.25781, 'z': 0},
 {'x': 0.53722, 'y': 0.24422, 'z': 0},
 {'x': 0.56699, 'y': 0.24422, 'z': 0},
 {'x': 0.59706, 'y': 0.24422, 'z': 0},
 {'x': 0.62742, 'y': 0.24422, 'z': 0},
 {'x': 0.6581, 'y': 0.24422, 'z': 0},
 {'x': 0.68907, 'y': 0.24422, 'z': 0},
 {'x': 0.72036, 'y': 0.24422, 'z': 0},
 {'x': 0.75196, 'y': 0.24422, 'z': 0},
 {'x': 0.78388, 'y': 0.24422, 'z': 0},
 {'x': 0.81612, 'y': 0.24422, 'z': 0},
 {'x': 0.84868, 'y': 0.24422, 'z': 0},
 {'x': 0.88156, 'y': 0.24422, 'z': 0},
 {'x': 0.91478, 'y': 0.24422, 'z': 0},
 {'x': 0.94832, 'y': 0.24422, 'z': 0},
 {'x': 0.9822, 'y': 0.24422, 'z': 0},
 {'x': 1.0164, 'y': 0.24422, 'z': 0},
 {'x': 1.051, 'y': 0.24422, 'z': 0},
 {'x': 1.0859, 'y': 0.24422, 'z': 0},
 {'x': 1.1211, 'y': 0.24422, 'z': 0},
 {'x': 1.1568, 'y': 0.24422, 'z': 0},
 {'x': 1.1927, 'y': 0.24422, 'z': 0},
 {'x': 1.229, 'y': 0.24422, 'z': 0},
 {'x': 1.2657, 'y': 0.24422, 'z': 0},
 {'x': 1.3028, 'y': 0.24422, 'z': 0},
 {'x': 1.3402, 'y': 0.24422, 'z': 0},
 {'x': 1.378, 'y': 0.24422, 'z': 0},
 {'x': 1.4162, 'y': 0.24422, 'z': 0},
 {'x': 1.4548, 'y': 0.24422, 'z': 0},
 {'x': 1.4937, 'y': 0.24422, 'z': 0},
 {'x': 1.533, 'y': 0.24422, 'z': 0},
 {'x': 1.5728, 'y': 0.24422, 'z': 0},
 {'x': 1.6129, 'y': 0.24422, 'z': 0},
 {'x': 1.6534, 'y': 0.24422, 'z': 0},
 {'x': 1.6944, 'y': 0.24422, 'z': 0},
 {'x': 1.7357, 'y': 0.24422, 'z': 0},
 {'x': 1.7774, 'y': 0.24422, 'z': 0},
 {'x': 1.8196, 'y': 0.24422, 'z': 0},
 {'x': 1.8622, 'y': 0.24422, 'z': 0},
 {'x': 1.9052, 'y': 0.24422, 'z': 0},
 {'x': 1.9487, 'y': 0.24422, 'z': 0},
 {'x': 1.9926, 'y': 0.24422, 'z': 0},
 {'x': 2.0369, 'y': 0.24422, 'z': 0},
 {'x': 2.0817, 'y': 0.24422, 'z': 0},
 {'x': 2.1269, 'y': 0.24422, 'z': 0},
 {'x': 2.1725, 'y': 0.24422, 'z': 0},
 {'x': 2.2187, 'y': 0.24422, 'z': 0},
 {'x': 2.2652, 'y': 0.24422, 'z': 0},
 {'x': 2.3123, 'y': 0.24422, 'z': 0},
 {'x': 2.3598, 'y': 0.24422, 'z': 0},
 {'x': 2.4078, 'y': 0.24422, 'z': 0},
 {'x': 2.4563, 'y': 0.24422, 'z': 0},
 {'x': 2.5053, 'y': 0.24422, 'z': 0},
 {'x': 2.5547, 'y': 0.24422, 'z': 0},
 {'x': 2.6046, 'y': 0.24422, 'z': 0},
 {'x': 2.6551, 'y': 0.24422, 'z': 0},
 {'x': 2.706, 'y': 0.24422, 'z': 0},
 {'x': 2.7575, 'y': 0.24422, 'z': 0},
 {'x': 2.8095, 'y': 0.24422, 'z': 0},
 {'x': 2.862, 'y': 0.24422, 'z': 0},
 {'x': 2.915, 'y': 0.24422, 'z': 0},
 {'x': 2.9685, 'y': 0.24422, 'z': 0},
 {'x': 3.0226, 'y': 0.24422, 'z': 0},
 {'x': 3.0772, 'y': 0.24422, 'z': 0},
 {'x': 3.1324, 'y': 0.24422, 'z': 0},
 {'x': 3.1881, 'y': 0.24422, 'z': 0},
 {'x': 3.2444, 'y': 0.24422, 'z': 0},
 {'x': 3.3013, 'y': 0.24422, 'z': 0},
 {'x': 3.3587, 'y': 0.24422, 'z': 0},
 {'x': 3.4166, 'y': 0.24422, 'z': 0},
 {'x': 3.4752, 'y': 0.24422, 'z': 0},
 {'x': 0.62742, 'y': 0.23041, 'z': 0},
 {'x': 0.6581, 'y': 0.23041, 'z': 0},
 {'x': 0.68907, 'y': 0.23041, 'z': 0},
 {'x': 0.72036, 'y': 0.23041, 'z': 0},
 {'x': 0.75196, 'y': 0.23041, 'z': 0},
 {'x': 0.78388, 'y': 0.23041, 'z': 0},
 {'x': 0.81612, 'y': 0.23041, 'z': 0},
 {'x': 0.84868, 'y': 0.23041, 'z': 0},
 {'x': 0.88156, 'y': 0.23041, 'z': 0},
 {'x': 0.91478, 'y': 0.23041, 'z': 0},
 {'x': 0.94832, 'y': 0.23041, 'z': 0},
 {'x': 0.9822, 'y': 0.23041, 'z': 0},
 {'x': 1.0164, 'y': 0.23041, 'z': 0},
 {'x': 1.051, 'y': 0.23041, 'z': 0},
 {'x': 1.0859, 'y': 0.23041, 'z': 0},
 {'x': 1.1211, 'y': 0.23041, 'z': 0},
 {'x': 1.1568, 'y': 0.23041, 'z': 0},
 {'x': 1.1927, 'y': 0.23041, 'z': 0},
 {'x': 1.229, 'y': 0.23041, 'z': 0},
 {'x': 1.2657, 'y': 0.23041, 'z': 0},
 {'x': 1.3028, 'y': 0.23041, 'z': 0},
 {'x': 1.3402, 'y': 0.23041, 'z': 0},
 {'x': 1.378, 'y': 0.23041, 'z': 0},
 {'x': 1.4162, 'y': 0.23041, 'z': 0},
 {'x': 1.4548, 'y': 0.23041, 'z': 0},
 {'x': 1.4937, 'y': 0.23041, 'z': 0},
 {'x': 1.533, 'y': 0.23041, 'z': 0},
 {'x': 1.5728, 'y': 0.23041, 'z': 0},
 {'x': 1.6129, 'y': 0.23041, 'z': 0},
 {'x': 1.6534, 'y': 0.23041, 'z': 0},
 {'x': 1.6944, 'y': 0.23041, 'z': 0},
 {'x': 1.7357, 'y': 0.23041, 'z': 0},
 {'x': 1.7774, 'y': 0.23041, 'z': 0},
 {'x': 1.8196, 'y': 0.23041, 'z': 0},
 {'x': 1.8622, 'y': 0.23041, 'z': 0},
 {'x': 1.9052, 'y': 0.23041, 'z': 0},
 {'x': 1.9487, 'y': 0.23041, 'z': 0},
 {'x': 1.9926, 'y': 0.23041, 'z': 0},
 {'x': 2.0369, 'y': 0.23041, 'z': 0},
 {'x': 2.0817, 'y': 0.23041, 'z': 0},
 {'x': 2.1269, 'y': 0.23041, 'z': 0},
 {'x': 2.1725, 'y': 0.23041, 'z': 0},
 {'x': 2.2187, 'y': 0.23041, 'z': 0},
 {'x': 2.2652, 'y': 0.23041, 'z': 0},
 {'x': 2.3123, 'y': 0.23041, 'z': 0},
 {'x': 2.3598, 'y': 0.23041, 'z': 0},
 {'x': 2.4078, 'y': 0.23041, 'z': 0},
 {'x': 2.4563, 'y': 0.23041, 'z': 0},
 {'x': 2.5053, 'y': 0.23041, 'z': 0},
 {'x': 2.5547, 'y': 0.23041, 'z': 0},
 {'x': 2.6046, 'y': 0.23041, 'z': 0},
 {'x': 2.6551, 'y': 0.23041, 'z': 0},
 {'x': 2.706, 'y': 0.23041, 'z': 0},
 {'x': 2.7575, 'y': 0.23041, 'z': 0},
 {'x': 2.8095, 'y': 0.23041, 'z': 0},
 {'x': 2.862, 'y': 0.23041, 'z': 0},
 {'x': 2.915, 'y': 0.23041, 'z': 0},
 {'x': 2.9685, 'y': 0.23041, 'z': 0},
 {'x': 3.0226, 'y': 0.23041, 'z': 0},
 {'x': 3.0772, 'y': 0.23041, 'z': 0},
 {'x': 3.1324, 'y': 0.23041, 'z': 0},
 {'x': 3.1881, 'y': 0.23041, 'z': 0},
 {'x': 0.68907, 'y': 0.21643, 'z': 0},
 {'x': 0.72036, 'y': 0.21643, 'z': 0},
 {'x': 0.75196, 'y': 0.21643, 'z': 0},
 {'x': 0.78388, 'y': 0.21643, 'z': 0},
 {'x': 0.81612, 'y': 0.21643, 'z': 0},
 {'x': 0.84868, 'y': 0.21643, 'z': 0},
 {'x': 0.88156, 'y': 0.21643, 'z': 0},
 {'x': 0.91478, 'y': 0.21643, 'z': 0},
 {'x': 0.94832, 'y': 0.21643, 'z': 0},
 {'x': 0.9822, 'y': 0.21643, 'z': 0},
 {'x': 1.0164, 'y': 0.21643, 'z': 0},
 {'x': 1.051, 'y': 0.21643, 'z': 0},
 {'x': 1.0859, 'y': 0.21643, 'z': 0},
 {'x': 1.1211, 'y': 0.21643, 'z': 0},
 {'x': 1.1568, 'y': 0.21643, 'z': 0},
 {'x': 1.1927, 'y': 0.21643, 'z': 0},
 {'x': 1.229, 'y': 0.21643, 'z': 0},
 {'x': 1.2657, 'y': 0.21643, 'z': 0},
 {'x': 1.3028, 'y': 0.21643, 'z': 0},
 {'x': 1.3402, 'y': 0.21643, 'z': 0},
 {'x': 1.378, 'y': 0.21643, 'z': 0},
 {'x': 1.4162, 'y': 0.21643, 'z': 0},
 {'x': 1.4548, 'y': 0.21643, 'z': 0},
 {'x': 1.4937, 'y': 0.21643, 'z': 0},
 {'x': 1.533, 'y': 0.21643, 'z': 0},
 {'x': 1.5728, 'y': 0.21643, 'z': 0},
 {'x': 1.6129, 'y': 0.21643, 'z': 0},
 {'x': 1.6534, 'y': 0.21643, 'z': 0},
 {'x': 1.6944, 'y': 0.21643, 'z': 0},
 {'x': 1.7357, 'y': 0.21643, 'z': 0},
 {'x': 1.7774, 'y': 0.21643, 'z': 0},
 {'x': 1.8196, 'y': 0.21643, 'z': 0},
 {'x': 1.8622, 'y': 0.21643, 'z': 0},
 {'x': 1.9052, 'y': 0.21643, 'z': 0},
 {'x': 1.9487, 'y': 0.21643, 'z': 0},
 {'x': 1.9926, 'y': 0.21643, 'z': 0},
 {'x': 2.0369, 'y': 0.21643, 'z': 0},
 {'x': 2.0817, 'y': 0.21643, 'z': 0},
 {'x': 2.1269, 'y': 0.21643, 'z': 0},
 {'x': 2.1725, 'y': 0.21643, 'z': 0},
 {'x': 2.2187, 'y': 0.21643, 'z': 0},
 {'x': 2.2652, 'y': 0.21643, 'z': 0},
 {'x': 2.3123, 'y': 0.21643, 'z': 0},
 {'x': 2.3598, 'y': 0.21643, 'z': 0},
 {'x': 2.4078, 'y': 0.21643, 'z': 0},
 {'x': 2.4563, 'y': 0.21643, 'z': 0},
 {'x': 2.5053, 'y': 0.21643, 'z': 0},
 {'x': 2.5547, 'y': 0.21643, 'z': 0},
 {'x': 2.6046, 'y': 0.21643, 'z': 0},
 {'x': 2.6551, 'y': 0.21643, 'z': 0},
 {'x': 2.706, 'y': 0.21643, 'z': 0},
 {'x': 2.7575, 'y': 0.21643, 'z': 0},
 {'x': 2.8095, 'y': 0.21643, 'z': 0},
 {'x': 0.78388, 'y': 0.20231, 'z': 0},
 {'x': 0.81612, 'y': 0.20231, 'z': 0},
 {'x': 0.84868, 'y': 0.20231, 'z': 0},
 {'x': 0.88156, 'y': 0.20231, 'z': 0},
 {'x': 0.91478, 'y': 0.20231, 'z': 0},
 {'x': 0.94832, 'y': 0.20231, 'z': 0},
 {'x': 0.9822, 'y': 0.20231, 'z': 0},
 {'x': 1.0164, 'y': 0.20231, 'z': 0},
 {'x': 1.051, 'y': 0.20231, 'z': 0},
 {'x': 1.0859, 'y': 0.20231, 'z': 0},
 {'x': 1.1211, 'y': 0.20231, 'z': 0},
 {'x': 1.1568, 'y': 0.20231, 'z': 0},
 {'x': 1.1927, 'y': 0.20231, 'z': 0},
 {'x': 1.229, 'y': 0.20231, 'z': 0},
 {'x': 1.2657, 'y': 0.20231, 'z': 0},
 {'x': 1.3028, 'y': 0.20231, 'z': 0},
 {'x': 1.3402, 'y': 0.20231, 'z': 0},
 {'x': 1.378, 'y': 0.20231, 'z': 0},
 {'x': 1.4162, 'y': 0.20231, 'z': 0},
 {'x': 1.4548, 'y': 0.20231, 'z': 0},
 {'x': 1.4937, 'y': 0.20231, 'z': 0},
 {'x': 1.533, 'y': 0.20231, 'z': 0},
 {'x': 1.5728, 'y': 0.20231, 'z': 0},
 {'x': 1.6129, 'y': 0.20231, 'z': 0},
 {'x': 1.6534, 'y': 0.20231, 'z': 0},
 {'x': 1.6944, 'y': 0.20231, 'z': 0},
 {'x': 1.7357, 'y': 0.20231, 'z': 0},
 {'x': 1.7774, 'y': 0.20231, 'z': 0},
 {'x': 1.8196, 'y': 0.20231, 'z': 0},
 {'x': 1.8622, 'y': 0.20231, 'z': 0},
 {'x': 1.9052, 'y': 0.20231, 'z': 0},
 {'x': 1.9487, 'y': 0.20231, 'z': 0},
 {'x': 1.9926, 'y': 0.20231, 'z': 0},
 {'x': 2.0369, 'y': 0.20231, 'z': 0},
 {'x': 2.0817, 'y': 0.20231, 'z': 0},
 {'x': 2.1269, 'y': 0.20231, 'z': 0},
 {'x': 2.1725, 'y': 0.20231, 'z': 0},
 {'x': 2.2187, 'y': 0.20231, 'z': 0},
 {'x': 2.2652, 'y': 0.20231, 'z': 0},
 {'x': 2.3123, 'y': 0.20231, 'z': 0},
 {'x': 2.3598, 'y': 0.20231, 'z': 0},
 {'x': 2.4078, 'y': 0.20231, 'z': 0},
 {'x': 2.4563, 'y': 0.20231, 'z': 0},
 {'x': 1.051, 'y': 0.1881, 'z': 0},
 {'x': 1.0859, 'y': 0.1881, 'z': 0},
 {'x': 1.1211, 'y': 0.1881, 'z': 0},
 {'x': 1.1568, 'y': 0.1881, 'z': 0},
 {'x': 1.1927, 'y': 0.1881, 'z': 0},
 {'x': 1.229, 'y': 0.1881, 'z': 0},
 {'x': 1.2657, 'y': 0.1881, 'z': 0},
 {'x': 1.3028, 'y': 0.1881, 'z': 0},
 {'x': 1.3402, 'y': 0.1881, 'z': 0},
 {'x': 1.378, 'y': 0.1881, 'z': 0},
 {'x': 1.4162, 'y': 0.1881, 'z': 0},
 {'x': 1.4548, 'y': 0.1881, 'z': 0},
 {'x': 1.4937, 'y': 0.1881, 'z': 0},
 {'x': 1.533, 'y': 0.1881, 'z': 0},
 {'x': 1.5728, 'y': 0.1881, 'z': 0},
 {'x': 1.6129, 'y': 0.1881, 'z': 0},
 {'x': 1.6534, 'y': 0.1881, 'z': 0},
 {'x': 1.6944, 'y': 0.1881, 'z': 0},
 {'x': 1.7357, 'y': 0.1881, 'z': 0},
 {'x': 1.7774, 'y': 0.1881, 'z': 0},
 {'x': 1.8196, 'y': 0.1881, 'z': 0},
 {'x': 1.8622, 'y': 0.1881, 'z': 0},
 {'x': 1.9052, 'y': 0.1881, 'z': 0},
 {'x': 1.9487, 'y': 0.1881, 'z': 0},
 {'x': 1.9926, 'y': 0.1881, 'z': 0},
 {'x': 2.0369, 'y': 0.1881, 'z': 0}])


plt.scatter(data=df, x='x', y='y', label='original_data')
plt.legend()
plt.title('original data')
plt.show()

原始数据

hull = ConvexHull(df[['x', 'y']])
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
convex_hull_plot_2d(hull, ax=ax)
fig.tight_layout()
plt.title('convex hull with points')
plt.show()

凸包结果

hull.points
array([[0.20215, 0.29703],
   [0.22857, 0.29703],
   [0.25526, 0.29703],
   ...,
   [1.9487 , 0.1881 ],
   [1.9926 , 0.1881 ],
   [2.0369 , 0.1881 ]])

凸包是一种很好的方法,尽管它不能解决您所展示的情况(具有内部边界的甜甜圈形状)。

我认为您需要的算法称为“Marching cubes”(或 Marching squares,2D)。 这是一种广泛使用的方法,因此您应该能够轻松地在 python 中找到一些实现它的库。

https://en.wikipedia.org/wiki/Marching_squares

基本上,考虑到 2D 情况,该算法的工作原理如下:

  • 离散化网格中的空间。
  • 计算每个单元格中的点数
  • 对单元格应用阈值,以便最终得到“空”或“填充”单元格
  • 根据每个单元格及其邻居的状态,有一些预定义的情况(2D 中有 16 个)关于边界曲线应该是什么样子。
  • 合并所有小曲线

在 3D 中,想法是相同的,但使用立方体而不是正方形,并且预定义的案例数量更多。

当形状有孔时,其他人提到的凸包方法不起作用(如您的环面示例)。

您要解决的问题称为表面重建。 最终的网格不会有你想要的内部点。

Open3D 为此实现了一些算法,您可以在 Python 中对数据进行处理。

表面重建

将您的 numpy 点云转换为 Open3D 的使用

pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM