Ore body three-dimensional model roof and floor gridding extraction method and electronic device
By standardizing mesh generation, quadtree iteration, and triangulation rules, the top and bottom plates of the 3D model of the ore body are automatically extracted, solving the problem of low efficiency in existing technologies and realizing real-time synchronous updates of the model and accurate processing of the intersection of multiple models.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-15
- Publication Date
- 2026-03-31
AI Technical Summary
Existing technologies have low efficiency in extracting the top or bottom plate models of ore bodies in mining operations, and they are difficult to handle top and bottom plate models at complex junctions, which can easily lead to logical errors.
The system employs standardized bounding rectangular parametric mesh generation, quadtree iterative refinement, and triangulation rules to automatically extract the top and bottom plate models. By decoupling the design parameters from the ore body model, it achieves dynamic updates and accurate extraction of the boundaries between multiple models.
It achieves automated extraction of top and bottom plate models, improves efficiency, ensures real-time synchronous updates and accuracy of models, avoids logical errors, and supports accurate processing of the boundaries of multiple ore body models.
Smart Images

Figure CN120388146B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of 3D modeling technology, and in particular to a method and electronic device for meshing the top and bottom plates of a 3D model of an ore body. Background Technology
[0002] In the field of mining, a 3D orebody model is a geological model that uses digital technology to visualize the morphology and structure of underground ore bodies in three dimensions. As an important geological tool, the 3D orebody model, particularly its roof or floor model, plays a crucial role in precise mining design, quantitative safety assessment, and efficient production management.
[0003] Currently, the main method used is human-computer interaction to extract the roof or floor model. Specifically, in the window displaying the 3D model of the ore body, the operator needs to select the triangular facets belonging to the roof or floor through human-computer interaction and merge them to form the roof or floor model.
[0004] However, this method has the following drawbacks: (1) Inefficiency. The human-computer interaction method requires a lot of manual operation, which is time-consuming and labor-intensive. Especially when the 3D model of the ore body needs to be dynamically updated, it is difficult to update the top or bottom plate model in a timely manner, which seriously affects the efficiency of mining and the timeliness of decision-making. (2) Insufficient ability to handle complex junctions. The human-computer interaction method is difficult to handle the top and bottom plate models at the junction of multiple ore body models, which can easily lead to logical errors of spatial intersection between the top and bottom plate models at the junction of multiple ore body models. Summary of the Invention
[0005] In view of this, embodiments of this application provide a method and electronic device for meshing and extracting the top and bottom plates of a three-dimensional ore body model, aiming to solve the problems of low efficiency and insufficient ability to handle complex boundaries when extracting the top and bottom plate models.
[0006] The technical solution of this application embodiment is implemented as follows:
[0007] In a first aspect, embodiments of this application provide a method and electronic device for meshing the top and bottom plates of a three-dimensional ore body model, including:
[0008] Multiple 3D models of the ore body are obtained, and the boundary type to be extracted and the design parameters corresponding to the boundary type are determined. The boundary type includes a top plate or a bottom plate, and the design parameters include first grid size data along the ore body strike and second grid size data perpendicular to the ore body.
[0009] Construct the minimum bounding rectangle corresponding to the three-dimensional models of the multiple ore bodies along the ore body direction; and perform standardization processing on the minimum bounding rectangle, wherein the size of the bounding rectangle along the ore body direction is an integer multiple of the first grid size data, and the size of the bounding rectangle perpendicular to the ore body direction is an integer multiple of the second grid size data;
[0010] The standardized minimum bounding rectangle is divided into multiple first grid segments along the ore body direction and into multiple second grid segments perpendicular to the ore body direction. Based on the multiple first grid segments and the multiple second grid segments, an initial grid point set is generated, and the elevation value of each vertex in each initial grid point set is determined.
[0011] Based on the number of external points in the vertices of each grid, the grids in the initial grid point set are classified into boundary grids and non-boundary grids.
[0012] For each initial boundary grid in the initial grid point set, a quadtree iteration is performed to divide the initial boundary grid into multiple sub-boundary grids until the vertex number condition or the iteration count condition is met, and the iteration stops. The leaf node corresponding to the initial boundary grid is determined. The leaf node is the sub-boundary grid of the initial boundary grid that meets the vertex number condition or the iteration count condition.
[0013] If the number of external points of the leaf node is 0, then a triangulation network is constructed for the leaf node based on the triangulation method to generate the first triangulation network corresponding to the initial boundary network; based on each first triangulation network, a boundary model corresponding to the boundary type is generated.
[0014] In some embodiments, classifying the meshes in the initial mesh point set into boundary meshes and non-boundary meshes based on the number of external points in the vertices of each mesh includes:
[0015] For each of the plurality of grids, if it is determined that the number of external points of the grid meets the threshold range, then the grid is classified as a boundary grid, the threshold range is [1,3], and the external points are the vertices of each vertex whose rays along the vertical direction do not intersect with the 3D model of the plurality of ore bodies;
[0016] If the number of external points does not meet the threshold range, the grid is classified as a non-boundary grid.
[0017] In some embodiments, the method further includes:
[0018] For each vertex of each of the multiple grids, a ray is drawn along the vertical direction to intersect with the three-dimensional models of the multiple ore bodies;
[0019] If a ray is drawn from the vertex along the vertical direction and intersects with the three-dimensional models of the multiple ore bodies, then the maximum elevation value corresponding to each intersection point is determined; and the maximum elevation value is taken as the elevation value of the vertex.
[0020] In some embodiments, the vertex number condition is that the number of external points among the four vertices of the initial boundary mesh is 0 or 4, and the iteration number condition is that the quadtree depth of the initial boundary mesh reaches a preset number of boundary fitting iterations.
[0021] In some embodiments, the step of performing quadtree iterations on each initial boundary grid in the initial grid point set, dividing the initial boundary grid into multiple sub-boundary grids, stopping the iteration when the vertex number condition or the iteration count condition is met, and determining the leaf nodes corresponding to the initial boundary grid includes:
[0022] For each initial boundary grid in the initial grid point set, a quadtree iteration is performed based on the iteration rules until the condition of the number of vertices of the boundary grid or the condition of the number of iterations is met, and the iteration stops, and the leaf node corresponding to the initial boundary grid is determined.
[0023] The iteration rules include:
[0024]
[0025] Where Q(c) i′,j′ ) represents the initial boundary mesh c i′,j′ The quadtree representation, where Leaf() represents a leaf node, Node() represents a middle node, and I(c i′,j′ ) represents the initial boundary mesh c i′,j′ The four vertices execute c();
[0026] When the initial boundary mesh c i′,j′ If the vertex count condition or the iteration count condition is met, then Leaf() is generated, and Leaf() is a leaf node; the vertex count condition is the initial boundary mesh c. i′,j′ The number of external points marked among the four vertices is either 0 or 4; the iteration count condition is the initial boundary mesh c. i′,j′ The quadtree depth reaches the preset boundary fitting iteration number n b .
[0027] In some embodiments, the non-boundary mesh further includes: an outer mesh and an inner mesh, and the method further includes:
[0028] Ignore the outer grid; the outer grid is a grid with 4 outer points.
[0029] For each internal grid in the initial grid point set, a triangulation network is constructed based on the triangulation method to generate a second triangulation network corresponding to the internal grid; the internal grid is a grid with 0 external points.
[0030] Based on each of the first triangulation network and each of the second triangulation network, a boundary model corresponding to the boundary type is generated.
[0031] In some embodiments, the method further includes:
[0032] If the number of external points of the leaf node is 1, then determine the three non-external points in the leaf node other than the external points; and construct a triangulation based on the three non-external points to generate the first triangulation corresponding to the initial boundary mesh.
[0033] If the number of external points of the leaf node is 2 to 4, then the leaf node is ignored.
[0034] In some embodiments, the triangulation method includes a diagonal triangulation method and a triangle thinning method based on quadtree depth. The triangulation method is used to construct a triangulation network on the leaf nodes to generate a first triangulation network corresponding to the initial boundary network, including:
[0035] Based on the diagonal triangulation method, a first sub-triangle is constructed by forming a quadrilateral with the four vertices of the sub-boundary mesh corresponding to the leaf node;
[0036] The first sub-triangle is divided based on the diagonal triangulation method to generate the second sub-triangle, and it is determined whether a sub-quadrilateral is generated; if so, the sub-quadrilateral is divided based on the triangulation method to generate the third sub-triangle, until the depth of the quadtree of the third sub-triangle is 0.
[0037] The first triangular mesh is generated based on the second sub-triangle and the third sub-triangle.
[0038] In some embodiments, the diagonal triangulation method includes:
[0039] Determine the first minimum interior angle value of the first candidate triangle group of the quadrilateral and the second minimum interior angle value of the second candidate triangle group of the quadrilateral; the first candidate triangle group is composed of two triangles generated by the first diagonal, and the second candidate triangle group is composed of two triangles generated by the second diagonal;
[0040] Determine whether the first minimum interior angle value is greater than the second minimum interior angle value. If so, construct the first sub-triangle based on the first candidate triangle group.
[0041] If not, then the first sub-triangle is constructed based on the second candidate triangle group.
[0042] In some embodiments, the quadtree depth-based triangle thinning method includes:
[0043] If the quadtree depth of the adjacent sides of the first subtriangle is 0, then the first subtriangle is determined to be the second subtriangle.
[0044] If the quadtree depth of one of the adjacent sides of the first subtriangle is 0, then the first subtriangle is divided into the second subtriangle.
[0045] If the quadtree depths of the adjacent sides of the first sub-triangle are not all 0, then the side with the higher quadtree depth will be determined as the target side; and the midpoint of the target side will be connected to the vertex of the opposite side of the target side to generate the second sub-triangle and the sub-quadrilateral.
[0046] In a second aspect, embodiments of this application provide an electronic device, including: a processor and a memory for storing a computer program capable of running on the processor, wherein, when the processor is used to run the computer program, it executes the steps of the method described in the first aspect of embodiments of this application.
[0047] The technical solution provided in this application embodiment is a method for meshing and extracting the top and bottom plates of a 3D ore body model, comprising: acquiring multiple 3D ore body models corresponding to the ore body, and determining the boundary type to be extracted and the design parameters corresponding to the boundary type; wherein, the boundary type includes a top plate or a bottom plate, and the design parameters include first grid size data along the ore body direction and second grid size data perpendicular to the ore body; constructing minimum bounding rectangles corresponding to multiple 3D ore body models along the ore body direction; and standardizing the minimum bounding rectangles, wherein the size of the bounding rectangle along the ore body direction is an integer multiple of the first grid size data, and the size of the bounding rectangle perpendicular to the ore body direction is an integer multiple of the second grid size data; dividing the standardized minimum bounding rectangles into multiple first grid segments along the ore body direction and into multiple second grid segments perpendicular to the ore body direction; and based on the multiple first grid segments... Multiple second grid segments are generated to form an initial grid point set, and the elevation values of each vertex in each initial grid point set are determined. Based on the number of external points in the vertices of each grid, the grids in the initial grid point set are classified into boundary grids and non-boundary grids. For each initial boundary grid in the initial grid point set, a quadtree iteration is performed to divide the initial boundary grid into multiple sub-boundary grids until the vertex number condition or the iteration count condition is met, at which point the iteration stops, and the leaf nodes corresponding to the initial boundary grids are determined. The leaf nodes are the sub-boundary grids of the initial boundary grids that meet the vertex number condition or the iteration count condition. If the number of external points in a leaf node is 0, a triangulation method is used to construct a triangulation network for the leaf node to generate the first triangulation network corresponding to the initial boundary grid. Based on each first triangulation network, a boundary model corresponding to the boundary type is generated.
[0048] Thus, the embodiments of this application can achieve (1) automation and efficiency improvement. By standardizing the outsourced rectangular parametric mesh division, quadtree iterative refinement and triangulation rules, the boundary model can be extracted automatically, solving the problem of time-consuming, labor-intensive and inefficient human-computer interactive extraction of the top and bottom plates; (2) dynamic update support. This application decouples the design parameters (mesh size, iteration number) from the ore body model. When the ore body 3D model is updated, only the mesh division and quadtree iterative process need to be re-executed based on the new model. No manual intervention is required, ensuring that the top and bottom plate models are synchronized in real time. This ensures that the top and bottom plate models can be updated in real time, maintaining the timeliness and accuracy of the model; (3) support for processing the extraction of top and bottom plate models at the intersection of multiple ore body models and avoids logical errors of spatial intersection of top and bottom plate models. The ore body boundary is accurately identified by external points. At the same time, the boundary mesh is recursively divided by quadtree refinement. Finally, a continuous triangular mesh is constructed by triangulation method, avoiding the model intersection or hole problem caused by mesh misalignment at the intersection of multiple ore body models. Attached Figure Description
[0049] Figure 1A schematic flowchart illustrating the method for meshing the top and bottom plates of a ore body from a 3D model provided in this application embodiment;
[0050] Figure 2 A flowchart illustrating the method for meshing the top and bottom plates of a ore body 3D model provided as an application example of this application;
[0051] Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0052] The present application will now be described in further detail with reference to the accompanying drawings and embodiments.
[0053] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.
[0054] This application provides a method for meshing and extracting the top and bottom plates of a three-dimensional ore body model, such as... Figure 1 As shown, the method includes the following steps:
[0055] Step 110: Obtain multiple 3D models of the ore body, and determine the boundary type to be extracted and the design parameters corresponding to the boundary type; wherein, the boundary type includes the top plate or the bottom plate, and the design parameters include the first grid size data along the ore body direction and the second grid size data perpendicular to the ore body.
[0056] In this embodiment, the input data extracted from the top and bottom plates of the ore body three-dimensional model includes multiple ore body three-dimensional models.
[0057] In this embodiment, the 3D model of the ore body is a digital model constructed using geological exploration, borehole data, or 3D scanning technology, used to represent the three-dimensional spatial morphology and distribution of the ore body. In practical applications, multiple 3D models correspond to a single ore body.
[0058] In this embodiment, the boundary type of the ore body includes a top plate or a bottom plate. It can be understood that the top plate is the upper surface of the ore body, representing the interface between the ore body and the overlying strata. The bottom plate is the lower surface of the ore body, representing the interface between the ore body and the basement strata.
[0059] The direction of the ore body's extension (i.e., the direction of its long axis) can be determined based on geological exploration data and corresponds to the X-axis in a three-dimensional coordinate system; while the direction perpendicular to the strike of the ore body, i.e., the direction perpendicular to the strike of the ore body, corresponds to the Y-axis.
[0060] In this embodiment, the first grid size (along the ore body strike) defines the grid's subdivision precision in the ore body's extension direction (e.g., the X-axis). The second grid size (perpendicular to the ore body strike) defines the grid's subdivision precision in the direction perpendicular to the ore body's extension direction (e.g., the Y-axis).
[0061] For example, the design parameters extracted from the top and bottom plates of the ore body 3D model include the first grid size data e along the strike of the ore body. x The second grid size data e perpendicular to the ore body strike y .
[0062] Step 120: Construct minimum bounding rectangles corresponding to multiple 3D models of the ore body along the ore body direction; and standardize the minimum bounding rectangles so that the size of the bounding rectangle along the ore body direction is an integer multiple of the size of the first grid, and the size of the bounding rectangle perpendicular to the ore body direction is an integer multiple of the size of the second grid.
[0063] Understandably, the minimum bounding rectangle is the smallest area rectangle that contains a set of geometric objects (such as a 3D model of an ore body). Its sides are aligned with a preset coordinate system (such as the X-axis of the ore body strike direction and the Y-axis of the vertical direction). This ensures that all ore body models are completely contained within the rectangle, providing a reference range for subsequent meshing and standardization.
[0064] In this embodiment, multiple minimum bounding rectangles of ore body models can be constructed along the ore body strike (X-axis) to cover the spatial range of all ore bodies.
[0065] Understandably, standardization refers to adjusting the size of the outer rectangle to an integer multiple of the grid size to ensure the regularity of subsequent grid division.
[0066] In this embodiment, the dimensions of the outer rectangle extending along the ore body are adjusted to integer multiples of the first grid size, and the dimensions perpendicular to the ore body are adjusted to integer multiples of the second grid size. This ensures the regularity of the grid division, avoids the appearance of non-integer multiple remainder regions, and simplifies the subsequent processing flow.
[0067] For example, the first grid size e along the strike of the ore body x The second grid size e perpendicular to the ore body strike y Construct the minimum rectangular enclosure of multiple 3D models of the ore bodies along their strike, and let the dimension of the minimum rectangular enclosure along the strike be b. x The vertical dimension is b y The dimensions of the minimum rectangular enclosure are standardized so that the dimensions of the minimum rectangular enclosure along the strike of the ore body are equal to the first grid size e. x The minimum value that is an integer multiple of the grid size, with the vertical dimension being the second grid size e. y The minimum value that is an integer multiple of the given value. The dimension of the normalized minimum rectangle extending outwards is e.x ×ceil(b x / e x The vertical dimension is e y ×ceil(b y / e y ).
[0068] It should be noted that the design parameters in this application (such as mesh size, number of iterations, etc.) are independent of the 3D ore body model itself and do not depend on a specific ore body model. This decoupled design allows the design parameters to be flexibly adjusted without being bound to specific details of the ore body model. In addition, this application ensures that the design parameters are independent of the size of the ore body model through standardization processing (such as adjusting the size of the outer rectangle to an integer multiple of the mesh size).
[0069] The independence of design parameters (such as mesh size, number of iterations, etc.) means that these parameters do not need to be readjusted when the 3D model of the ore body is updated, thus supporting dynamic updates. For example, the mesh size can be set to a fixed value (such as 1 meter × 1 meter), regardless of how the size or shape of the ore body model changes. Decoupled design allows design parameters to remain unchanged when the ore body model changes, or to be easily adjusted to adapt to the new model, supporting dynamic updates.
[0070] Step 130: Divide the standardized minimum bounding rectangle into multiple first grid segments along the ore body direction and into multiple second grid segments perpendicular to the ore body direction; based on the multiple first grid segments and the multiple second grid segments, generate an initial grid point set and determine the elevation value of each vertex in each initial grid point set.
[0071] Understandably, mesh generation refers to the process of uniformly dividing a standardized outer rectangle into multiple mesh cells along the X and Y axes.
[0072] In this embodiment, the strike of the standardized minimum rectangular outer ore body is divided into multiple m = ceil(b) x / e x The first grid segment is divided into n = ceil(b) perpendicular to the ore body strike. y / e y The second grid segment is divided into ) equal parts. The grids after equal division are constructed into a grid set, and any grid is denoted as c. i,j Each grid cell consists of the following four vertices:
[0073] P i,j P i+1,j P i,j+1 and P i+1,j+1
[0074] Where, the value of i ranges from [1, ceil(b)] to [1, ceil(b)]. x / ex The value range of j is [1, ceil(b)]. y / e y )]
[0075] Understandably, the standardization process has ensured that the outer rectangle's size is e. x ×m and e y Since the remainder region is ×n, the mesh division does not require processing of the remainder region.
[0076] In addition, the elevation values of each vertex in each initial grid point set can be determined.
[0077] Step 140: Based on the number of external points in the vertices of each grid, classify the grids in the initial grid point set into boundary grids and non-boundary grids.
[0078] It is understandable that external points refer to points located outside the boundary of the ore body. Boundary grids refer to grids located near the top or bottom of the ore body, mainly used to construct the boundary model of the ore body, while non-boundary grids are grids located inside the ore body or other non-boundary areas.
[0079] This embodiment determines the type of each grid in the initial grid point set by counting the number of external points in the grid vertices, classifying the grids in the initial grid point set into boundary grids and non-boundary grids. This effectively identifies grids near the roof or floor of the ore body, providing a foundation for subsequent boundary model extraction.
[0080] Step 150: For each initial boundary grid in the initial grid point set, perform quadtree iteration to divide the initial boundary grid into multiple sub-boundary grids until the vertex number condition or iteration count condition is met, and stop the iteration. Then determine the leaf node corresponding to the initial boundary grid. The leaf node is the sub-boundary grid of the initial boundary grid that meets the vertex number condition or iteration count condition.
[0081] Understandably, a quadtree is a spatial subdivision algorithm that progressively refines the boundary mesh by continuously dividing it into four sub-mesh areas, thereby improving the accuracy of the boundary model. Each iteration checks whether a termination condition is met, such as a vertex count condition or an iteration count condition, to ensure the iteration process remains within a reasonable range. When the termination condition is met, the sub-boundary meshes of the initial boundary mesh that satisfy the vertex count or iteration count condition are marked as leaf nodes. These leaf nodes represent the final detailed parts of the boundary model, providing the basic units for subsequent triangulation construction.
[0082] In this way, by iteratively refining the initial boundary mesh through quadtrees, the local mesh iterative refinement can meet the boundary fitting accuracy without manual intervention. At the same time, it can also avoid logical errors, handle the intersection of multiple models, ensure the mesh refinement at the intersection of multiple ore body models, and avoid model intersection or hole problems.
[0083] Step 160: If the number of external points of the leaf node is 0, then construct a triangulation network for the leaf node based on the triangulation method to generate the first triangulation network corresponding to the initial boundary network; based on each first triangulation network, generate the boundary model corresponding to the boundary type.
[0084] Understandably, triangulation is a technique that connects spatial data points into a network of triangles. It is widely used in terrain modeling, building surface representation, and computer graphics to construct complex graphics and models. Boundary models are used to represent the three-dimensional model of the top or bottom plate of an ore body, accurately reflecting the boundary shape and spatial distribution of the ore body.
[0085] In this embodiment, leaf nodes are sub-boundary meshes of the initial boundary mesh that satisfy the vertex number condition or iteration number condition during the quadtree iteration process. These leaf nodes are the foundation for triangulation construction. By connecting leaf nodes into triangles to form a continuous and smooth boundary surface, triangulation is constructed, thereby generating boundary models corresponding to the boundary type.
[0086] Understandably, if there are external points in the leaf nodes, including these external points in the triangulation construction may lead to errors or inaccuracies in the boundary model. For example, external points may cause breaks, intersections, or other logical errors on the boundary surface, thus affecting the accuracy and usability of the boundary model. Based on this, if the number of external points in the leaf nodes is 0, then a triangulation method is used to construct a triangulation for the leaf nodes, generating the first triangulation corresponding to the initial boundary mesh; based on each first triangulation, the boundary model corresponding to the boundary type is generated.
[0087] This allows for automated construction of triangulation networks to generate boundary models, reducing manual construction work and improving efficiency. Furthermore, by ensuring that leaf nodes are free of external points during triangulation construction, model errors caused by external points are avoided, ensuring the continuity and smoothness of the boundary model.
[0088] Thus, the embodiments of this application can achieve (1) automation and efficiency improvement. By standardizing the outsourced rectangular parametric mesh division, quadtree iterative refinement and triangulation rules, the boundary model can be extracted automatically, solving the problem of time-consuming, labor-intensive and inefficient human-computer interactive extraction of the top and bottom plates; (2) dynamic update support. This application decouples the design parameters (mesh size, iteration number) from the ore body model. When the ore body 3D model is updated, only the mesh division and quadtree iterative process need to be re-executed based on the new model. No manual intervention is required, ensuring that the top and bottom plate models are synchronized in real time. This ensures that the top and bottom plate models can be updated in real time, maintaining the timeliness and accuracy of the model; (3) support for processing the extraction of top and bottom plate models at the intersection of multiple ore body models and avoids logical errors of spatial intersection of top and bottom plate models. The ore body boundary is accurately identified by external points. At the same time, the boundary mesh is recursively divided by quadtree refinement. Finally, a continuous triangular mesh is constructed by triangulation method, avoiding the model intersection or hole problem caused by mesh misalignment at the intersection of multiple ore body models.
[0089] In some embodiments, based on the number of external points in the vertices of each mesh, the meshes in the initial mesh point set are classified into boundary meshes and non-boundary meshes, including:
[0090] For each of the multiple grids, if the number of external points of the grid satisfies the threshold range, the grid is classified as a boundary grid with a threshold range of [1,3]. External points are the vertices of each vertex whose rays along the vertical direction do not intersect with the three-dimensional models of the multiple ore bodies.
[0091] If the number of external points does not meet the threshold range, the grid is classified as a non-boundary grid.
[0092] In this embodiment, in order to accurately identify the grid near the top or bottom plate of the ore body, it is necessary to classify the grid type to ensure that the subsequent boundary model extraction is based on the correct grid, thereby improving the accuracy and reliability of the model.
[0093] In this embodiment, the mesh can be classified as a boundary mesh or a non-boundary mesh based on the number of external points among its vertices. External points refer to vertices in the mesh whose rays along the vertical direction do not intersect with any of the ore body's 3D model points. This means that these vertices are located outside the ore body's 3D model and are not within the boundary range of the ore body.
[0094] In this embodiment, for each grid, its classification is determined by checking the number of external points in its vertices. If the number of external points in a grid is within the threshold range [1, 3], then the grid is classified as a boundary grid. This indicates that the grid is located near the boundary of the ore body, because some of its vertices are inside the ore body, while others are outside. If the number of external points is not in this range (i.e., 0 or 4), then the grid is a non-boundary grid. This indicates that the grid is either completely inside or completely outside the ore body. Thus, by checking the number of external points in each grid and classifying it according to a preset threshold range, boundary grids and non-boundary grids can be effectively distinguished.
[0095] For example, for any vertex P in the grid i,j Draw a ray in the vertical direction and calculate all intersection points of this ray with the 3D models of multiple ore bodies. When the number of intersection points is 0, point P is removed. i,j Marked as an external point. For any grid c i,j When grid c i,j When the number of external points marked among the four vertices is between 1 and 3, then the mesh c i,j For boundary grids.
[0096] In some embodiments, the method further includes:
[0097] For each vertex of each grid in multiple grids, a ray is drawn along the vertical direction to intersect with the three-dimensional models of multiple ore bodies;
[0098] If a ray is drawn from the vertex along the vertical direction and intersects with multiple 3D models of ore bodies, then the maximum elevation value corresponding to each intersection point is determined; and the maximum elevation value is taken as the elevation value of the vertex.
[0099] In this embodiment, for each vertex of each of the multiple grids, a ray is drawn vertically. It is then determined whether this ray intersects with multiple 3D models of the ore body. This means the ray may pass through one or more faces of the ore body model. If the ray intersects with the ore body model, the elevation values of all intersection points are determined. These elevation values reflect the height of the location where the ray passes through the ore body model. The highest elevation value among all intersection points is selected as the elevation value of that vertex. This ensures the accuracy of the vertex elevation values, accurately reflecting the height of the ore body boundaries (such as the top or bottom plate).
[0100] It should be noted that if a vertex's ray along the vertical direction does not intersect with the 3D model of the ore body, the vertex is marked as an external point. This indicates that the vertex is located outside the ore body model and is not within the boundary of the ore body.
[0101] For example, define method c(P) i,j ), indicating that for any vertex P i,jDraw a ray in the vertical direction, calculate all intersection points of the ray with multiple 3D models of ore bodies, and find the elevation value h of the point with the highest elevation among all intersection points. max Assigning vertex P i,j The vertex P is about to be reached. i,j The elevation is set to h max .
[0102] In some embodiments, the vertex number condition is that the number of external points among the four vertices of the initial boundary mesh is 0 or 4, and the iteration number condition is that the quadtree depth of the initial boundary mesh reaches a preset number of boundary fitting iterations.
[0103] In this embodiment, during the quadtree iteration process, whenever a boundary mesh satisfies the vertex count condition or the iteration count condition, further subdivision of that mesh is stopped. At this point, the mesh is marked as a leaf node. Leaf nodes are the final nodes in the quadtree that are no longer subdivided, representing the final detailed parts of the boundary model. These leaf nodes will be used for subsequent triangulation construction.
[0104] In this embodiment, the vertex count condition is defined as follows: of the four vertices of the boundary mesh, the number of external vertices must be 0 or 4. If the number of external vertices is 0, it means that all four vertices are within the boundary of the ore body. This means that the mesh is entirely within the boundary range of the ore body and can be used for subsequent triangulation construction. When the number of external vertices is 4, it indicates that all four vertices are outside the boundary of the ore body. This means that the mesh is entirely outside the ore body and is not within the boundary range of the ore body, and can be ignored.
[0105] In this embodiment, the iteration count condition refers to the number of boundary fitting iterations the quadtree depth of the boundary mesh reaches. A quadtree is a spatial subdivision algorithm that divides the mesh into four sub-mesh units in each iteration. The quadtree depth represents the number of iterations; the greater the depth, the finer the mesh subdivision. The preset number of boundary fitting iterations is a pre-set parameter used to control the fineness of the iterations. When the quadtree depth reaches this preset value, further iterations stop to avoid over-subdivision.
[0106] In some embodiments, for each initial boundary grid in the initial grid point set, a quadtree iteration is performed to divide the initial boundary grid into multiple sub-boundary grids until the vertex count condition or the iteration count condition is met, at which point the iteration stops, and the leaf nodes corresponding to the initial boundary grids are determined, including:
[0107] For each initial boundary grid in the initial grid point set, a quadtree iteration is performed based on the iteration rules until the condition of the number of vertices of the boundary grid or the number of iterations is met, at which point the iteration stops and the leaf nodes corresponding to the initial boundary grid are determined.
[0108] The iteration rules include:
[0109]
[0110] Where Q(c) i′,j′ ) represents the initial boundary mesh c i′,j′ The quadtree representation, where Leaf() represents a leaf node, Node() represents a middle node, and I(c i′,j′ ) represents the initial boundary mesh c i′,j′ The four vertices execute c().
[0111] When the initial boundary mesh c i′,j′ If the vertex count condition or the iteration count condition is met, then Leaf() is generated, and Leaf() is a leaf node; the vertex count condition is the initial boundary mesh c. i′,j′ The number of external points marked among the four vertices is either 0 or 4; the iteration count condition is the initial boundary mesh c. i′,j′ The quadtree depth reaches the preset boundary fitting iteration number n b .
[0112] For example, when the initial boundary mesh c i′,j′ When the vertex count condition or iteration count condition is met, generate Leaf() and directly return Leaf(I(c i′,j′ Otherwise, continue recursively applying the formula to c. i′,j′ The four subgrids c i′,j′,1 ,c i′,j′,2 ,c i′,j′,3 ,c i′,j′,4 Perform the same operation and combine the results into an intermediate node Node().
[0113] In some embodiments, the non-boundary mesh further includes: an outer mesh and an inner mesh, and the method further includes:
[0114] Ignore the outer grid; the outer grid is a grid with 4 outer points.
[0115] For each internal grid in the initial grid point set, a triangulation method is used to construct a triangulation network for the internal grid, generating a second triangulation network corresponding to the internal grid; the internal grid is a grid with 0 external points.
[0116] Based on each first triangulation network and each second triangulation network, a boundary model corresponding to the boundary type is generated.
[0117] In this embodiment, the non-boundary mesh is further divided into external meshes and internal meshes. An external mesh is defined as a mesh where all four vertices are external points (i.e., the number of external points is 4). These meshes are completely outside the boundary of the ore body and therefore can be ignored and not involved in the subsequent modeling process. An internal mesh is defined as a mesh where none of its four vertices are external points (i.e., the number of external points is 0).
[0118] For example, for each grid c i,j Modeling is performed separately, when mesh c i,j If 4 out of the 4 vertices are marked as external points, the grid is an external grid, and this grid is ignored; when grid c i,j If the number of external points among the four vertices is 0, the mesh is an internal mesh, and a triangulation method is used to construct the triangulation mesh.
[0119] In some embodiments, the method further includes:
[0120] If the number of external points in a leaf node is 1, then determine the three non-external points in the leaf node besides the external points; and construct a triangulation based on the three non-external points to generate the first triangulation corresponding to the initial boundary mesh.
[0121] If the number of external points of a leaf node is 2 to 4, then the leaf node is ignored.
[0122] For example, when grid c i,j When the number of external points marked among the four vertices is 1 to 3, the mesh is the initial boundary mesh c. i,j At this point, for the initial boundary mesh c i,j All leaf nodes c of the quadtree i″,j″ Modeling is performed separately:
[0123] When grid c i″,j″ When the number of external points marked among the four vertices is 2 to 4, the grid is ignored;
[0124] When grid c i″,j″ When the number of external points marked among the four vertices is 1, then the mesh c i″,j″ There are 3 non-external vertices in the triangle; these 3 vertices can be used to directly construct a triangulation.
[0125] When grid c i″,j″ When the number of external points marked among the four vertices is 0, then the mesh c i″,j″ Four of the vertices are non-external points, and the triangulation method T2(c) is used. i″,j″ Construct a triangular network.
[0126] In some embodiments, the triangulation method includes a diagonal triangulation method and a triangle thinning method based on quadtree depth. The triangulation method is used to construct a triangulated mesh on the leaf nodes, generating a first triangulated mesh corresponding to the initial boundary mesh, including:
[0127] The first sub-triangle is constructed by forming a quadrilateral with the four vertices of the sub-boundary mesh corresponding to the leaf node using the diagonal triangulation method.
[0128] The first sub-triangle is divided using the diagonal triangulation method to generate the second sub-triangle, and it is determined whether a sub-quadrilateral is generated. If so, the sub-quadrilateral is divided using the triangulation method to generate the third sub-triangle, until the depth of the quadtree of the third sub-triangle is 0.
[0129] The first triangulation is generated based on the second and third sub-triangles.
[0130] In this embodiment, the diagonal triangulation method is a method for dividing a quadrilateral into two triangles. By selecting the diagonal of the quadrilateral, it is divided into two triangles. In practical applications, the diagonal triangulation method is applied to the quadrilateral formed by the four vertices of the sub-boundary mesh corresponding to the leaf node to generate the first sub-triangle.
[0131] In this embodiment, the triangle thinning method is a method of further subdividing triangles based on the quadtree depth to improve the accuracy of the triangulation. In practical applications, the generated first sub-triangle is further subdivided to generate finer-grained triangles (second sub-triangles), and it is checked whether sub-quadrilaterals have been generated. If so, the sub-quadrilaterals are further subdivided based on the triangulation method until the quadtree depth of the triangle is 0.
[0132] In this embodiment, a diagonal triangulation method is used to divide the quadrilateral formed by the four vertices of the sub-boundary mesh corresponding to the leaf node into two triangles, generating the first sub-triangle. Based on the diagonal triangulation method, the first sub-triangle is further divided to generate a finer-grained triangle (the second sub-triangle). It is then determined whether a sub-quadrilateral has been generated. If so, the diagonal triangulation method is used again to divide the sub-quadrilateral, generating the third sub-triangle. This process is repeated until the depth of the quadtree of the generated triangle is 0. All generated sub-triangles (the second and third sub-triangles) are combined to form the first triangular mesh corresponding to the initial boundary mesh.
[0133] Thus, by combining the diagonal triangulation method and the quadtree-based depth-based triangle refinement method, a continuous and smooth triangular mesh can be generated, thereby ensuring that the boundary shape and spatial distribution of the ore body can be accurately reflected.
[0134] In some embodiments, the diagonal triangulation method includes:
[0135] Determine the first minimum interior angle value of the first candidate triangle group of the quadrilateral and the second minimum interior angle value of the second candidate triangle group of the quadrilateral; the first candidate triangle group consists of two triangles generated by the first diagonal, and the second candidate triangle group consists of two triangles generated by the second diagonal;
[0136] Determine whether the first minimum interior angle value is greater than the second minimum interior angle value. If so, construct the first sub-triangle based on the first candidate triangle group.
[0137] If not, then construct the first sub-triangle based on the second candidate triangle group.
[0138] For example, a diagonal triangulation method T2(S) is defined. R ), S R Composed of P1P2P3P4, S R Let S be a quadrilateral, with P1, P2, P3, and P4 being the four vertices of the quadrilateral. R In other words, it includes the first diagonal and the second diagonal.
[0139] For example, suppose the first diagonal divides the triangle into two triangles {(ΔP1P2P4),(ΔP2P3P4)}. The second diagonal divides the triangle into two triangles T2(S R = {T1(ΔP1P2P3), T1(ΔP1P3P4)}. Let the minimum interior angle of ΔP1P2P4 be α1, the minimum interior angle of ΔP2P3P4 be α2, the minimum interior angle of ΔP1P2P3 be α3, and the minimum interior angle of ΔP1P3P4 be α4. Determine the first minimum interior angle value of the first candidate triangle group of the quadrilateral and the second minimum interior angle value of the second candidate triangle group of the quadrilateral; determine whether the first minimum interior angle value is greater than the second minimum interior angle value. When min{α1,α2}≥min{α3,α4}, construct the first sub-triangle T2(S) based on the first candidate triangle group. R )={T1(ΔP1P2P4),T1(ΔP2P3P4)}; otherwise, construct the first sub-triangle T2(S) based on the second candidate triangle group. R )={T1(ΔP1P2P3),T1(ΔP1P3P4)}.
[0140] In some embodiments, the triangle thinning method based on quadtree depth includes:
[0141] If the quadtree depth of the adjacent sides of the first subtriangle is 0, then the first subtriangle is determined to be the second subtriangle.
[0142] If the quadtree depth of one of the adjacent sides of the first subtriangle is 0, then the first subtriangle is divided into the second subtriangle.
[0143] If the quadtree depths of the adjacent sides of the first subtriangle are not all 0, then the side with the higher quadtree depth will be determined as the target side; and the midpoint of the target side will be connected to the vertex of the opposite side of the target side to generate the second subtriangle and the subquadrilateral.
[0144] For example, a triangle thinning method T1(ΔABC) based on quadtree depth is defined. Let the first sub-triangle be ΔABC, whose adjacent sides include sides AB and AC. Let the quadtree depth on side AB be n1, and the quadtree depth on side AC be n2.
[0145] (1) When n1=n2=0, the triangulation result is ΔABC; that is, if the quadtree depth of the adjacent sides of the first subtriangle is 0, then the first subtriangle is determined to be the second subtriangle.
[0146] (2) When n1 = 0 or n2 = 0, taking n1 = 0 as an example, connect point B with all the intermediate points on side AC, so that ΔABC is divided into n2×2-1 sub-triangles. The triangulation result is n2×2-1 sub-triangles. That is, if the quadtree depth of one of the adjacent sides of the first sub-triangle is 0, then the first sub-triangle is divided into the second sub-triangle.
[0147] (3) When n1≠0 and n2≠0, if the quadtree depths of the adjacent sides of the first subtriangle are not 0, then the side with the higher quadtree depth will be determined as the target side; and the midpoint of the target side will be connected to the vertex of the opposite side of the target side to generate the second subtriangle and the subquadrilateral:
[0148] If n1 ≥ n2, then determine the side with higher depth in the quadtree as edge AC, and connect all the midpoints on edge AC to the corresponding points on AB, thereby dividing ΔABC into sub-triangles S. T and n2×2-1 sub-quadrilaterals Triangulate each of the n2×2-1 sub-quadrilaterals.
[0149] Otherwise, determine the side with the higher depth of the quadtree as edge AB, and connect all the midpoints on edge AB to the corresponding points on AC, thus dividing ΔABC into sub-triangles S. T′ and n1×2-1 sub-quadrilaterals Triangulate each of the n1×2-1 sub-quadrilaterals.
[0150] The following is a detailed explanation of this application with reference to an application example.
[0151] A 3D model of an ore body is a geological model that uses digital technology to visualize the morphology and structure of an underground ore body in three dimensions. The top or bottom plate model of the 3D ore body plays a crucial role in precise mining design, quantitative safety assessment, and efficient production management.
[0152] The current main method for extracting the top or bottom plate model from a 3D ore body model is through human-computer interaction. This involves selecting triangular facets belonging to the top or bottom plate within the ore body's 3D model display window and merging them to form the top or bottom plate model. This method has several significant drawbacks. First, it is time-consuming, labor-intensive, and inefficient; the top or bottom plate model cannot be updated promptly after the ore body's 3D model is dynamically updated. Second, it struggles to handle the top and bottom plate models at the boundaries of multiple ore body models, easily leading to logical errors such as spatial overlap between the top and bottom plate models at these intersections.
[0153] Based on this, this application example proposes a method for meshing the top and bottom plates of a 3D ore body model. This method enables convenient and efficient meshing of the top and bottom plates of the 3D ore body model according to design parameters, thereby achieving the following technical effects:
[0154] 1. Solve the problems of time-consuming, labor-intensive, and inefficient human-computer interactive extraction of the top and bottom plates, while also ensuring that the top or bottom plate model can be updated in a timely manner after the dynamic update of the ore body 3D model;
[0155] 2. Supports the extraction of top and bottom plate models at the junction of multiple ore body models, while avoiding logical errors of spatial intersection of top and bottom plate models at the junction of multiple ore body models.
[0156] In this application example, the principle of extracting the top plate of the 3D model of the ore body is similar to that of extracting the bottom plate. The following will combine... Figure 2 The following is a detailed explanation using the extraction of the top slab as an example. Figure 2 This is a flowchart illustrating the method for meshing the top and bottom plates of a 3D model of an ore body.
[0157] Step 201: Obtain the design parameters and input data extracted from the top and bottom plates of the ore body 3D model.
[0158] Here, the design parameters extracted from the top and bottom plates of the ore body 3D model include the grid size along the ore body strike (i.e., the first grid size data). x , Grid size perpendicular to the ore body strike (i.e., the second grid setting size) e y Number of boundary fitting iterations n b The input data for extracting the top and bottom plates of the ore body 3D model includes multiple ore body 3D models.
[0159] Step 202: Construct a grid point set (i.e., the initial grid point set) based on the 3D model of the ore body.
[0160] Here, the minimum rectangular enclosure of multiple 3D models of ore bodies is constructed along the strike of the ore body. Let the dimension of the minimum rectangular enclosure along the strike be b. x The vertical dimension is b y .
[0161] The dimensions of the minimum rectangular enclosure are standardized so that the dimension of the minimum rectangular enclosure along the ore body is e. x The minimum value that is an integer multiple of the given value has a vertical dimension of e. y The minimum value that is an integer multiple of the given value. The dimension of the normalized minimum rectangle extending outwards is e. x ×ceil(b x / e x The vertical dimension is e y ×ceil(b y / e y ).
[0162] The strike of the standardized minimum rectangular outer ore body is divided into ceil(b) x / e x ) portions, perpendicular to the strike of the ore body, are all divided into ceil(b) y / e y The vertices of the equally divided grid are used to construct a grid point set. Let any grid be c. i,j The value range of i is [1, ceil(b)]. x / e x The value range of j is [1, ceil(b)]. y / e y )], grid c i,j The four vertices of P are i,j P i+1,j P i,j+1 and P i+1,j+1 .
[0163] Define method c(P) i,j ), indicating that for any point P i,j Draw a ray in the vertical direction, calculate all intersection points of the ray with multiple 3D models of ore bodies, and find the elevation value h of the point with the highest elevation among all intersection points. max Assign point P i,j P is about to be clicked. i,j The elevation is set to h max When the number of intersection points is 0, point P is... i,j Mark it as an external point.
[0164] Step 203: Iterative refinement of the local mesh to meet the boundary fitting accuracy.
[0165] For any grid c i,j When grid c i,j When the number of external points marked among the four vertices is between 1 and 3, then the mesh c i,j For the boundary mesh (for each of the plurality of meshes, if the number of external points of the mesh meets a threshold range, the mesh is classified as a boundary mesh, the threshold range is [1,3], and the external points are the vertices of each vertex whose rays along the vertical direction do not intersect with the 3D model of the plurality of ore bodies), iterative refinement is performed according to the following steps:
[0166] Define the data structure Q(c) i′,j′ ), Q(c i′,j′ ) is c i′,j′ The quadtree representation.
[0167]
[0168] Where Leaf() represents a leaf node of the quadtree, Node() represents a middle node of the quadtree, and I(c i′,j′ ) indicates that for mesh c i′,j′ The four vertices execute c().
[0169] When c i′,j′ c is satisfied if one of the following conditions is met. i′,j′ Leaf nodes:
[0170] (1) grid c i′,j′ The number of external vertices among the four vertices is either 0 or 4 (vertices count condition);
[0171] (2) grid c i′,j′ The quadtree depth reaches n b (Iteration count condition).
[0172] Step 204: Construct the top plate model based on the mesh point set after iterative refinement of the local mesh.
[0173] I. Define the triangulation method T1(ΔABC) (a triangulation and thinning method based on quadtree depth), where the quadtree depth on edge AB is n1 and the quadtree depth on edge AC is n2:
[0174] (1) When n1=n2=0, the triangulation result is ΔABC;
[0175] (2) When n1 = 0 or n2 = 0, taking n1 = 0 as an example, connect point B with all the intermediate points on side AC, so that ΔABC is divided into n2×2-1 sub-triangles. The triangulation result is n2×2-1 sub-triangles.
[0176] (3) When n1≠0 and n2≠0:
[0177] If n1 ≥ n2, connect all the midpoints on side AC to the corresponding points on AB, thus dividing ΔABC into sub-triangles S. T and n2×2-1 sub-quadrilaterals Triangulate each of the n2×2-1 sub-quadrilaterals. Otherwise, connect all the midpoints on side AB to their corresponding points on AC, thus dividing ΔABC into sub-triangles S. T′ and n1×2-1 sub-quadrilaterals Triangulate each of the n1×2-1 sub-quadrilaterals.
[0178] II. Define the triangulation method T2(S) R (Diagonal triangulation method), S R It consists of P1P2P3P4. Let the smallest interior angle of ΔP1P2P4 be α1, the smallest interior angle of ΔP2P3P4 be α2, the smallest interior angle of ΔP1P2P3 be α3, and the smallest interior angle of ΔP1P3P4 be α4.
[0179] When min{α1,α2}≥min{α3,α4}, T2(S R )={T1(ΔP1P2P4),T1(ΔP2P3P4)};
[0180] Otherwise T2(S R )={T1(ΔP1P2P3),T1(ΔP1P3P4)}.
[0181] III. The following can be based on the above triangulation method for each mesh c. i,j Modeling is performed separately:
[0182] (1) When grid c i,j When the number of external points among the four vertices is four, the grid is ignored (an external grid is a grid with four external points);
[0183] (2) When grid c i,j When the number of external points marked among the four vertices is 1 to 3, for mesh c i,j All leaf nodes c of the quadtree i″,j″ Modeling is performed separately:
[0184] (2.1) When the grid c i″,j″ When the number of external points marked among the four vertices is 2 to 4, the grid is ignored;
[0185] (2.2) When the grid c i″,j″When the number of external points marked among the four vertices is 1, then the mesh c i″,j″ There are 3 non-external vertices in the triangle; these 3 vertices can be used to directly construct a triangulation.
[0186] (2.3) When the grid c i″,j″ When the number of external points marked among the four vertices is 0, then the mesh c i″,j″ Four of the vertices are non-external points, and the triangulation method T2(c) is used. i″,j″ Construct a triangular network;
[0187] (3) When c i,j The number of external vertices among the four vertices is 0. Triangulation method T2(c) is used. i,j Constructing a triangulated mesh (for each internal mesh in the initial mesh point set, constructing a triangulated mesh for the internal mesh based on the triangulation method, generating a second triangulated mesh corresponding to the internal mesh; the internal mesh is a mesh with 0 external points).
[0188] To implement the methods of the embodiments of this application, the embodiments of this application also provide an electronic device. Figure 3 The diagram shows only an exemplary structure of the electronic device, not the entire structure; implementation is possible as needed. Figure 3 The diagram shows part or all of the structure. For example... Figure 3 As shown, the electronic device 300 provided in this application embodiment includes: at least one processor 301, a memory 302, a user interface 303, and at least one network interface 304. The various components in the electronic device 300 are coupled together via a bus system 305. It can be understood that the bus system 305 is used to implement communication between these components. In addition to a data bus, the bus system 305 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 3 The general designated all buses as Bus System 305.
[0189] The user interface 303 may include a monitor, keyboard, mouse, trackball, click wheel, buttons, touchpad, or touch screen.
[0190] The memory 302 in this embodiment is used to store various types of data to support the operation of the electronic device. Examples of such data include any computer program used to operate on the electronic device.
[0191] The method for meshing the top and bottom plates of a 3D model of an electronic device for extracting ore bodies disclosed in this application can be applied to or implemented by the processor 301. The processor 301 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the method for meshing the top and bottom plates of a 3D model of an electronic device for extracting ore bodies can be completed by integrated logic circuits in the hardware or by instructions in the software form of the processor 301. The processor 301 can be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 301 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in memory 302. The processor 301 reads the information in memory 302 and, in conjunction with its hardware, completes the steps of the method for meshing the top and bottom plates of the ore body three-dimensional model of the electronic device provided in this application embodiment.
[0192] In an exemplary embodiment, the electronic device may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
[0193] It is understood that memory 302 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or... Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM). The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memory.
[0194] In an exemplary embodiment, this application also provides a computer storage medium, specifically a computer-readable storage medium storing a computer program thereon. This computer program can be executed by a processor to complete the steps of the method described in this application embodiment. The computer-readable storage medium can be a memory such as ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.
[0195] In an exemplary embodiment, this application also provides a computer program product, including a computer program that can be executed by a processor 301 of an electronic device to perform the steps described in the method of this application embodiment.
[0196] It should be noted that terms such as "first" and "second" are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.
[0197] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0198] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for extracting a roof and floor grid of a three-dimensional model of a mineral body, characterized in that, The method comprises the following steps: obtaining a plurality of ore body three-dimensional models corresponding to an ore body, and determining a boundary type to be extracted and design parameters corresponding to the boundary type to be extracted; wherein the boundary type comprises a roof or a floor, and the design parameters comprise first grid size data along the strike of the ore body and second grid size data perpendicular to the ore body; constructing a minimum bounding rectangle corresponding to the plurality of ore body three-dimensional models along the strike of the ore body, and performing standardization processing on the minimum bounding rectangle, wherein the size of the bounding rectangle along the strike of the ore body is an integer multiple of the first grid size data, and the size of the bounding rectangle perpendicular to the strike of the ore body is an integer multiple of the second grid size data; dividing the standardized minimum bounding rectangle into a plurality of first grid segments along the strike of the ore body and a plurality of second grid segments perpendicular to the strike of the ore body; generating an initial grid point set based on the plurality of first grid segments and the plurality of second grid segments, and determining the elevation values of each vertex in each of the initial grid point sets; classifying the grids in the initial grid point set into boundary grids and non-boundary grids based on the number of external points in each vertex of the grids; for each initial boundary grid in the initial grid point set, performing quadtree iteration to divide the initial boundary grid into a plurality of sub-boundary grids until the iteration is stopped when a vertex number condition or an iteration number condition is met, and determining a leaf node corresponding to the initial boundary grid, wherein the leaf node is a sub-boundary grid of the initial boundary grid that meets the vertex number condition or the iteration number condition; if the number of external points of the leaf node is 0, performing triangular mesh construction on the leaf node based on a triangulation method to generate a first triangular mesh corresponding to the initial boundary grid; and generating a boundary model corresponding to the boundary type based on each of the first triangular meshes; the method further comprises: for each vertex of each grid in the plurality of grids, performing ray intersection along the vertical direction with the plurality of ore body three-dimensional models. ; wherein, is an initial bounding grid of a quadtree representation, shows a leaf node of the quadtree, shows an intermediate node of the quadtree, shows performing a 4-point operation on the 4 vertices of the initial bounding grid of the quadtree representation, When the initial boundary mesh satisfies a vertex number condition or an iteration number condition, then generating , a leaf node; the vertex number condition is that the number of the initial boundary mesh four vertices marked as external points is 0 or 4; the iteration number condition is that the quadtree depth of the initial boundary mesh reaches a preset boundary fitting iteration number .
2. The method of claim 1, wherein, 3. The method of claim 1, wherein, If a ray is emitted along a vertical direction from the vertex and intersects with the plurality of ore body three-dimensional models, a maximum elevation value corresponding to each intersection point is determined; and the maximum elevation value is taken as the elevation value of the vertex.
4. The method of claim 1, wherein, The vertex quantity condition is that the number of external points in four vertices of the initial boundary grid is 0 or 4, and the iteration number condition is that the quadtree depth of the initial boundary grid reaches a preset boundary fitting iteration number.
5. The method of claim 1, wherein, The non-boundary grid further comprises an external grid and an internal grid, and the method further comprises: ignoring the external grid; the external grid is a grid with four external points; for each internal grid in the initial grid point set, performing triangulation on the internal grid based on a triangulation method to generate a second triangular mesh corresponding to the internal grid; the internal grid is a grid with no external points; based on each first triangular mesh and each second triangular mesh, a boundary model corresponding to the boundary type is generated.
6. The method of claim 1, wherein, The method further comprises: if the number of external points in the leaf node is 1, three non-external points in the leaf node except the external point are determined; and a first triangular mesh corresponding to the initial boundary grid is generated by performing triangulation based on the three non-external points; if the number of external points in the leaf node is 2 to 4, the leaf node is ignored.
7. The method of claim 1, wherein, The triangulation method comprises a diagonal triangulation method and a quadtree depth-based triangular refinement method, and the triangulation method is used to perform triangulation on the leaf node to generate a first triangular mesh corresponding to the initial boundary grid, comprising: based on the diagonal triangulation method, a first sub-triangle is constructed for a quadrilateral formed by four vertices of a sub-boundary grid corresponding to the leaf node; based on the diagonal triangulation method, a second sub-triangle is generated by dividing the first sub-triangle, and it is determined whether to generate a sub-quadrilateral; if yes, a third sub-triangle is generated by dividing the sub-quadrilateral based on the triangulation method, until the edge quadtree depth of the third sub-triangle is 0; based on the second sub-triangle and the third sub-triangle, the first triangular mesh is generated.
8. The method of claim 7, wherein, The diagonal triangulation method comprises: determining a first minimum internal angle value of a first candidate triangle group of the quadrilateral and a second minimum internal angle value of a second candidate triangle group of the quadrilateral; the first candidate triangle group is composed of two triangles generated by dividing a first diagonal, and the second candidate triangle group is composed of two triangles generated by dividing a second diagonal; determining whether the first minimum internal angle value is greater than the second minimum internal angle value; if yes, the first sub-triangle is constructed based on the first candidate triangle group; if not, the first sub-triangle is constructed based on the second candidate triangle group.
9. The method of claim 7, wherein, The quadtree depth-based triangular refinement method comprises: if the quadtree depth of adjacent edges of the first sub-triangle is all 0, the first sub-triangle is determined as the second sub-triangle; if the quadtree depth of one of the adjacent edges of the first sub-triangle is 0, the first sub-triangle is divided into the second sub-triangle; If the four-tree depth of the adjacent edges of the first sub-triangle is not 0, a target edge with high four-tree depth is determined; and a middle point on the target edge and a vertex of the opposite edge of the target edge are connected to generate the second sub-triangle and the sub-quadrilateral.
10. An electronic device, comprising: Comprising: A processor and a memory for storing a computer program capable of running on the processor, wherein, The processor is configured to execute the steps of the method of any one of claims 1 to 9 when running the computer program.
Citation Information
Patent Citations
Three-dimensional reconstruction method, device and equipment and computer readable storage medium
CN111862343A
Method and system for generating contour line of three-dimensional model
CN117952998A