Files
mkdocs/doc/meshkernelpy/examples/03_tri_mesh2d_pol.md
T
2026-10-10 21:56:35 +08:00

72 lines
1.8 KiB
Markdown

# 在给定几何区域内生成简单三角网格
本教程介绍如何在给定几何区域内生成二维网格。
首先导入所需的库。
[返回示例目录](index.md)
以下保留原笔记本的代码和已保存输出;转换过程中未重新执行代码。
```python
from pathlib import Path
import matplotlib.pyplot as plt
import numpy as np
from meshkernel import GeometryList, MeshKernel
```
首先,使用 NumPy 从 Deltares 自定义多边形文件 `test.pol` 中加载数据。
注意,需要忽略文件开头的若干行,以跳过 Deltares 特有的头部数据。
```python
polygon_file_path = Path().absolute() / "data_examples" / "test.pol"
polygon_np = np.loadtxt(polygon_file_path, comments="*", skiprows=8, dtype=np.double)
```
提取从文件中加载的数据,并按照 `MeshKernel` 的要求,将其存入 `GeometryList`。
```python
x_coordinates = np.array(polygon_np[:, 0], dtype=np.double)
y_coordinates = np.array(polygon_np[:, 1], dtype=np.double)
polygon = GeometryList(x_coordinates, y_coordinates)
```
导入的多边形如下图所示:
```python
fig, ax = plt.subplots()
ax.plot(x_coordinates, y_coordinates, ".-", color="green");
```
![单元格 7 的绘图输出](images/03_tri_mesh2d_pol_7_0.png)
接着创建一个 `MeshKernel` 实例。
```python
mk = MeshKernel()
```
现在可以调用 `MeshKernel` 的 `mesh2d_make_triangular_mesh_from_polygon` 方法,根据给定多边形生成三角网格。
```python
mk.mesh2d_make_triangular_mesh_from_polygon(polygon)
```
然后从 `MeshKernel` 实例中获取状态。
```python
mesh2d_output_0 = mk.mesh2d_get()
```
绘制生成的网格。
```python
fig, ax = plt.subplots()
mesh2d_output_0.plot_edges(ax, color="black")
```
![单元格 15 的绘图输出](images/03_tri_mesh2d_pol_15_0.png)