exponenta event banner

nearestFace

Поиск граней, ближайших к указанной точке

    Описание

    пример

    FaceID = nearestFace(g,Coords) находит грани, ближайшие к точке с координатами Coords.

    Примеры

    свернуть все

    Поиск граней блока, ближайших к указанным точкам.

    Создайте геометрию блока.

    gm = multicuboid(3,2,1)
    gm = 
      DiscreteGeometry with properties:
    
           NumCells: 1
           NumFaces: 6
           NumEdges: 12
        NumVertices: 8
           Vertices: [8x3 double]
    
    

    Постройте график геометрии с метками граней. Добавьте на график точки с координатами (0 0 0,1), (2 0,9 1) и (1,5 -1 1).

    pdegplot(gm,'FaceLabels','on','FaceAlpha',0.2)
    hold on
    scatter3([0 2 1.5],[0 0.9 -1],[0.1 1 1],'filled','MarkerFaceColor','g')

    Figure contains an axes. The axes contains 4 objects of type quiver, patch, line, scatter.

    Найдите грани, ближайшие к точкам с координатами (0 0 0,1), (2 0,9 1) и (1,5 -1 1). Если несколько граней находятся одинаково близко (в пределах допуска) к точке, nearestFace возвращает идентификатор одной из граней.

    faceIDs = nearestFace(gm,[0 0 0; 2 0.9 1; 1.5 -1 1])
    faceIDs = 1×3
    
         1     3     6
    
    

    Найдите грани Г-образной мембраны, ближайшие к указанным точкам.

    Создайте модель и включите эту геометрию. Геометрия L-образной мембраны описана в файле lshapeg.

    model = createpde();
    gm = geometryFromEdges(model,@lshapeg)
    gm = 
      AnalyticGeometry with properties:
    
           NumCells: 0
           NumFaces: 3
           NumEdges: 10
        NumVertices: 8
           Vertices: [8x2 double]
    
    

    Постройте график геометрии с метками граней. Добавьте на график точки с координатами (0 0), (1,1 -0,2) и (-0,5 0,5).

    pdegplot(gm,'FaceLabels','on')
    hold on
    scatter([0 1.1 -0.5],[0 -0.2 0.5],'filled')

    Figure contains an axes. The axes contains 5 objects of type line, text, scatter.

    Найдите грани, ближайшие к точкам с координатами (0 0), (1,1 -0,2) и (-0,5 0,5). Если несколько граней находятся одинаково близко (в пределах допуска) к точке, nearestFace возвращает идентификатор одной из граней.

    faceIDs = nearestFace(gm,[0 0; 1.1 -0.2; -0.5 0.5])
    faceIDs = 1×3
    
         2     3     1
    
    

    Входные аргументы

    свернуть все

    Геометрия, заданная как DiscreteGeometry или AnalyticGeometry объект.

    Координаты точки, заданные как вектор из 2 или 3 элементов для 2-D или 3-D геометрии соответственно.

    Типы данных: double

    Выходные аргументы

    свернуть все

    Идентификаторы граней, ближайших к указанной точке, возвращаемые как положительное число или вектор положительных чисел.

    Представлен в R2021a