मान लीजिए मेरे पास 2d विमान में एक गैर आयताकार आकार की परिधि को परिभाषित करने वाले बिंदुओं का एक सेट है।

मुझे त्रिकोणीय मेशिंग बनाने के लिए एक फ़ंक्शन की आवश्यकता है जहां मैं त्रिभुज कोशिकाओं की संख्या को संशोधित कर सकता हूं और प्रत्येक सेल के निर्देशांक (x, y) को वापस कर सकता हूं।

धन्यवाद।

0
Mahmoud AlBardan 30 मार्च 2020, 12:43
यह एक बड़ा विषय है - स्वचालित जाल पीढ़ी। 1980 के दशक से 2डी त्रिकोणीय मेश का निर्माण अनुसंधान का एक सक्रिय क्षेत्र रहा है। मैं आपको यह देखने के लिए खोज करने की सलाह दूंगा कि आज कौन से पायथन पुस्तकालय उपलब्ध हैं। Google आपका मित्र है: pypi.org/project/MeshPy
 – 
duffymo
30 मार्च 2020, 16:34

2 जवाब

आपको शायद जांचना चाहिए

(मैं dmsh और pygmsh का लेखक हूं।)

3
Nico Schlömer 30 मार्च 2020, 17:17
धन्यवाद निको, मैं इसकी जांच करूंगा और अगर मेरे कुछ प्रश्न हैं तो मैं आपके पास वापस आऊंगा
 – 
Mahmoud AlBardan
31 मार्च 2020, 10:20
3
वाह - आपके गिटहब रेपो को देखा। शापित प्रभावशाली। अगर मैं अभी भी जीवित रहने के लिए एफईए कर रहा था तो मैं आपके पुस्तकालयों का उपयोग करूँगा।
 – 
duffymo
31 मार्च 2020, 15:24

मैंने आखिरकार जो किया वह पोस्ट करता हूं। Python3 के साथ काम करते समय कुछ समस्याएं पाई जाती हैं। मैं GoogleColab पर चलने की सलाह देता हूं.

स्रोत: https://github.com/inducer/meshpy/blob/ मास्टर/उदाहरण/test_triangle.py

अगर आपके पास python3 है और आप python2 में डाउनग्रेड नहीं करना चाहते हैं तो google colab में चलाएँ

!pip install Meshpy
!pip install pybind11
!pip install pyvtk

from __future__ import division
from __future__ import absolute_import

import meshpy.triangle as triangle
import numpy as np
import numpy.linalg as la
from six.moves import range
import matplotlib.pyplot as pt

def round_trip_connect(start, end):
    return [(i, i+1) for i in range(start, end)] + [(end, start)]



points = [(100,400),
          (400,400),
          (400,280),
          (320,270), 
          (320,160), 
          (120,160), 
          (120,250), 
          (100,250)]

facets = round_trip_connect(0, len(points)-1)

circ_start = len(points)
points.extend((3 * np.cos(angle), 3 * np.sin(angle)) for angle in np.linspace(0, 2*np.pi, 30, endpoint=False))

facets.extend(round_trip_connect(circ_start, len(points)-1))


def needs_refinement(vertices, area):
    bary = np.sum(np.array(vertices), axis=0)/3
    max_area = 5 + (la.norm(bary, np.inf)-1)*5
    return bool(area > max_area)

info = triangle.MeshInfo()
info.set_points(points)
info.set_holes([(0, 0)])
info.set_facets(facets)

mesh = triangle.build(info, refinement_func=needs_refinement)

mesh_points = np.array(mesh.points)
mesh_tris = np.array(mesh.elements)


pt.triplot(mesh_points[:, 0], mesh_points[:, 1], mesh_tris)
pt.show()

print (mesh_points)
1
Community 20 जून 2020, 12:12
1
डाउनग्रेड न करने का अच्छा विचार। क्या यह गिटहब रेपो के लिए एक पोर्टिंग समस्या है?
 – 
duffymo
1 अप्रैल 2020, 20:11
1
मैं आपसे अन्य दो को देखने का आग्रह करूंगा। GitHub मॉडल शानदार हैं।
 – 
duffymo
1 अप्रैल 2020, 20:12