当前位置: 首页>>代码示例>>Python>>正文


Python Delaunay.simplices方法代码示例

本文整理汇总了Python中scipy.spatial.Delaunay.simplices方法的典型用法代码示例。如果您正苦于以下问题:Python Delaunay.simplices方法的具体用法?Python Delaunay.simplices怎么用?Python Delaunay.simplices使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在scipy.spatial.Delaunay的用法示例。


在下文中一共展示了Delaunay.simplices方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: wet_circles

# 需要导入模块: from scipy.spatial import Delaunay [as 别名]
# 或者: from scipy.spatial.Delaunay import simplices [as 别名]
def wet_circles(A, B, thetaA, thetaB):
    """Generates a mesh that wets the surface of circles A and B.

    Parameters
    -------------
    A,B : Circle
    theta : list
        the number of radians that the wet covers and number of the points on
        the surface range
    """

    vector = B.center - A.center
    if vector.x > 0:
        angleA = np.arctan(vector.y / vector.x)
        angleB = PI + angleA
    else:
        angleB = np.arctan(vector.y / vector.x)
        angleA = PI + angleB
    # print(vector)
    rA = A.radius
    rB = B.radius

    points = []
    for t in ((np.arange(0, thetaA[1]) / (thetaA[1] - 1) - 0.5) * thetaA[0] +
              angleA):

        x = rA * np.cos(t) + A.center.x
        y = rA * np.sin(t) + A.center.y
        points.append([x, y])

    mid = len(points)
    for t in ((np.arange(0, thetaB[1]) / (thetaB[1] - 1) - 0.5) * thetaB[0] +
              angleB):

        x = rB * np.cos(t) + B.center.x
        y = rB * np.sin(t) + B.center.y
        points.append([x, y])

    points = np.array(points)

    # Triangulate the polygon
    tri = Delaunay(points)

    # Remove extra triangles
    # print(tri.simplices)
    mask = np.sum(tri.simplices < mid, 1)
    mask = np.logical_and(mask < 3, mask > 0)
    tri.simplices = tri.simplices[mask, :]
    # print(tri.simplices)

    m = Mesh()
    for t in tri.simplices:
        m.append(
            Triangle(
                Point([points[t[0], 0], points[t[0], 1]]),
                Point([points[t[1], 0], points[t[1], 1]]),
                Point([points[t[2], 0], points[t[2], 1]])
            )
        )

    return m
开发者ID:tomography,项目名称:phantom,代码行数:63,代码来源:custom.py


注:本文中的scipy.spatial.Delaunay.simplices方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。