[Python] Como resolver problema da triangulação de Delaunay?

Discussão em 'Python' iniciado por Stack, Novembro 9, 2024.

  1. Stack

    Stack Membro Participativo

    Estou com um problema envolvendo triangulação de Delaunay. Preciso realizar uma triangulação de algumas circunferências. Entretanto, preciso retirar alguns triângulos que são inválidos pra mim, pois a triangulação é feita pelos centros da circunferências e eu preciso que seja feita pela área, para que as retas não passem por dentro das circunferências.

    Segue o meu código:

    # Triângulação dos pontos
    # m_cylinders é um vetor que contem os centros das minhas circunferências
    # m_raios é um vetor que contem os raios das circunferências

    tri = Delaunay(m_cylinders)

    plt.triplot(m_cylinders[:,0], m_cylinders[:,1])
    plt.plot(m_cylinders[:,0], m_cylinders[:,1], 'o')

    np.set_printoptions(suppress=True)

    vetor = tri.simplices
    vetor_2 = m_cylinders[tri.simplices]

    fig, ax = plt.subplots()
    for cir, rai in zip(m_cylinders,m_raios):
    ax.add_patch(plt.Circle((cir[0], cir[1]), rai,fill=False))

    plt.plot([5,15,15,5,5],[0,0,4,4,0], linestyle='-', color='r',linewidth=1.0)
    plt.triplot(m_cylinders[:,0], m_cylinders[:,1])
    ax.set_aspect('equal', adjustable='datalim')
    ax.plot()

    plt.show()


    Saída:

    [​IMG]

    Nas bordas tem muitas circunferências em que as retas passam por dentro e isso pra mim não serve.

    Alguém tem alguma sugestão de como resolver este problema?

    Continue reading...

Compartilhe esta Página