Method and device for real-time mutual updating of profile map and complex geological model
Through three-dimensional discretization and engineering constraints sectional diagrams and real-time update methods for complex geological models, the problem of only simple geological surfaces in the existing technology is solved, and the automation optimization and analysis time of complex geological surfaces are achieved.
Patent Information
- Application Number
- CN202510527527.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-25
- Publication Date
- 2025-08-08
AI Technical Summary
The existing profile analysis can only deal with simple geological surfaces, but cannot effectively analyze complex geological surfaces, and the analysis process is slow and optimization is difficult.
By obtaining the projected curve segment set, three-dimensional discretization and normalization are performed, combined with engineering constraints and DSI interpolation, the projected surface is smoothly and uniformized, real-time update of the profile diagram and complex geological models.
Automatic optimization of complex geological surfaces has been achieved, the geological operation analysis cycle has been shortened, and the types of geological surfaces analyzed by section maps have been expanded.
Smart Images

Figure CN120449559A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the fields of geological mapping analysis and mathematical geological modeling optimization, and in particular to a method and device for real-time mutual updating of a cross-section diagram and a complex geological model. Background Art
[0002] Analyzing geological surfaces using profiles is an important method of analysis in the geological field. The general process of analyzing geological surfaces using profiles is to project multiple cutting polylines of different directions onto a single z-value surface, then convert the projected polylines into polylines on the profile to analyze the local undulation characteristics of the surface. The geological surface is reconstructed by observing the local characteristics on the profile. The surface is regenerated and the profile is observed repeatedly until the surface projection result displayed by the profile is satisfactory. Therefore, simplifying and automating the process of analyzing geological surfaces using profiles is crucial for geological operations and can effectively shorten the geological operation analysis cycle.
[0003] In the current process of analyzing surfaces using profiles, local optimization of the surface has no direct connection with the profiles, and only simple geological surfaces can be analyzed. For complex geological surfaces, such as folds and geological bodies with clear stratigraphic sequences, projection analysis and optimization cannot be performed. The cutting line and projection direction are generally simple vertical projections of polylines. These factors combined have greatly limited the role of profiles in analyzing geological surfaces. Summary of the Invention
[0004] The purpose of the present invention is to provide a method and device for real-time mutual updating of profiles and complex geological models in order to solve the problem that existing profile geological surfaces can only analyze simple geological surfaces, and the process is slow and difficult to optimize.
[0005] In order to achieve the above object, the technical solution adopted by the present invention is as follows:
[0006] S1: Obtain a set of projection curve segments; transform the two-dimensional cutting curve into a three-dimensional discrete cutting curve according to the virtual viewpoint position, construct a ray detection structure of the projected surface, and perform projection calculation to obtain a set of projection curve segments;
[0007] S2: Accumulate the path lengths of the projection curve segment set to obtain the total path length of the projection curve segment set, round up the maximum value of the elevation of the three-dimensional projection curve segment set to a certain integer, and round down the minimum value to a certain integer to obtain the display maximum value of the profile curve segment set about the axis representing the elevation direction, and normalize the projection curve segment set according to the total path length of the projection curve segment set and the rounded maximum elevation value to obtain the profile curve segment set;
[0008] S3: Update the profile curve segment set after adding a new engineering profile constraint to the profile curve segment set;
[0009] S4: using the profile graph and mapping relationship to denormalize the profile curve segment set into a new projected curve segment set;
[0010] S5: The new projected curve segment set is used as the exact constraint of the projected surface. Combined with the range influence factor, DSI interpolation and grid homogenization are used to smooth and homogenize the area around the projected curve segment set in the projected surface.
[0011] Preferably, step S1 includes:
[0012] S11: Convert the two-dimensional cutting curve into a three-dimensional cutting curve according to the virtual projection view angle position. The formula is:
[0013]
[0014] Where x, y, and z represent the three-dimensional coordinates of the curve; f(x, y) represents the two-dimensional section curve, and f(x, y, z) represents the three-dimensional section curve; z eye Indicates the z-axis coordinate of the virtual perspective position;
[0015] The virtual projection perspective can be projected from the outside of the geological surface into the surface, or from the inside to the outside of the surface in a circular projection. This is mainly used to observe the geological features at a certain depth of the coupled geological body. Therefore, the first step is to locate the reference elevation of the projection.
[0016] S12: Discretize the continuous three-dimensional cutting curve. The calculation formula is:
[0017]
[0018] Where t represents the parameter of the continuous curve; i represents the vertex index of the discretized continuous curve; n represents the number of vertices after the discretization of the continuous curve; the range of i is [0, n-1]; the range of t is [t0, t n-1 ]; t0 represents the parameter value of the left boundary of the continuous curve, t n-1 The parameter value representing the right boundary of the continuous curve;
[0019] Among them, continuous curves are generally polycurves or splines. For polycurves and splines, they are both a set of continuous curve segments. When sampling, each curve segment must sample a point except the boundary points. After removing the required points, sampling is performed based on the sampling accuracy. When sampling, only the most critical parameters that affect the curve path change are retained to ensure the anisotropic characteristics of the curve.
[0020] S13: Sort by the centroids of all triangles on the projected surface and construct a fast ray detection structure:
[0021] Calculate the centroid of each triangle of the projected surface using the following formula:
[0022]
[0023] Among them, v represents the three-dimensional coordinates of each triangular vertex in the surface, v barycenter Represents the barycentric coordinates of the triangle;
[0024] The barycentric coordinate arrays of all triangles are divided in order according to one of the axes X, Y, and Z, and a binary tree is recursively constructed based on this. The division coordinate axes are:
[0025] axis splitter =depth%3
[0026] Among them, axis splitter Indicates the partition axis, depth indicates the depth of the subtree, axis=0 indicates the X axis is used as the partition axis, axis=1 indicates the Y axis is used as the partition axis, and axis=2 indicates the Z axis is used as the partition axis;
[0027] The root node of the binary tree is the mean of the barycentric coordinate arrays of all triangles of the projected surface. It is recursively constructed from bottom to top, and the AABB bounding box, the index of all triangles associated with the bounding box, and the barycentric coordinate information are stored in the child nodes for fast retrieval.
[0028] Among them, the binary tree leaf node stores the AABB bounding box of each triangle face, and its calculation formula is:
[0029] AABB i ={(x,y,z)|min x ≤x≤max x ,min y ≤y≤max y ,min z ≤z≤max z}
[0030] min x =min(A x ,B x ,C x )
[0031] max x =max(A x ,B x ,C x )
[0032] min y =min(A y ,B y ,C y )
[0033] max y=max(A y ,B y ,C y )
[0034] min z =min(A z ,B z ,C z )
[0035] max z =max(A z ,B z ,C z )
[0036] Among them, A(A x ,A y ,A z ), B(B x ,B y ,B z ) and C(C x ,C y ,C z ) represents the coordinates of the three vertices of the triangle; min x , min y , min z Indicates the minimum value of the X, Y, and Z axes of the three vertices of the triangle. x , max y , max z Indicates the maximum value of the X, Y, and Z axes of the three vertices of the triangle; i represents the index of the triangle face; AABB i Represents the AABB bounding box of a certain triangle face; max means finding the maximum value of the set, and min means finding the minimum value of the set;
[0037] The sub-bounding box is calculated for non-leaf nodes of the binary tree except the root node. The calculation formula is:
[0038] AABB child,j ={(x,y,z)|P min,x ≤x≤P max,x ,P min,y ≤y≤P max,y ,P min,z ≤z≤P max,z}
[0039] P min =(min(x1,x2,...x n ),min(y1,y2,...y n ),min(z1,z2,...z n ))
[0040] P max=(max(x1,x2,...x n ),max(y1,y2,...y n ),max(z1,z2,...z n ))
[0041] Among them, j represents the index of the AABB binary tree child node; childr,j Represents the AABB bounding box of the jth non-leaf node in the binary tree except the root node; n represents the number of child nodes under the jth child node; x1, x2, ... x n Indicates the x-axis coordinate value of the next child node of the j-th child node; y1, y2, ...y n Indicates the y-axis coordinate value of the child node under the j-th child node; z1,z2,...z n Indicates the z-axis coordinate value of the child node under the j-th child node;
[0042] Among them, P min (P min,x ,P min,y ,P min,z ) represents the three-dimensional coordinates of the minimum value of the AABB bounding box of the jth non-leaf node in the binary tree except the root node, P max (P max,x ,P max,y ,P max,z ) represents the three-dimensional coordinates of the maximum value of the AABB bounding box of the j-th non-leaf node in the binary tree except the root node;
[0043] Among them, the AABB tree is a simple binary tree compared to other detection trees. By caching the center of gravity and bounding box nodes on the three-dimensional projection, in addition to being fast, it can handle floating-point errors in spatial calculations. In particular, the boundaries of large geological surfaces are often not projected onto the surface due to floating-point errors. After caching the center of gravity coordinates, the projection results can be fine-tuned by the center of gravity coordinates to achieve the purpose of successful projection.
[0044] S14: Calculate whether the projection point set of each discrete point of the 3D discrete cutting curve on the projected surface is valid. The calculation formula is:
[0045]
[0046] Where, O=(o x ,o y ,o z ) represents the three-dimensional coordinates of each discrete point, t represents the distance from the ray at the vertex of the polyline, D = (d x ,d y ,d z ) represents the virtual line of sight direction; the ray calculation formula is:
[0047] p(t)=O+tD
[0048] Where p(t) represents any point on the ray;
[0049] in, Respectively represent the minimum value of the x-axis, y-axis, and z-axis components of the ray distance emitted from each vertex position of the three-dimensional discrete cutting curve; They represent the maximum value of the x-axis, y-axis, and z-axis components of the ray emitted from each vertex position of the three-dimensional discrete cutting curve; t enter Indicates t min The maximum value in t exit Indicates t max The minimum value in ; when t enter ≤t exit And t enter ≥0, the ray intersects with the AABB, and the binary tree used for fast ray detection is recursively searched from top to bottom to calculate the minimum AABB bounding box of the triangle where the projected vertex is located;
[0050] For closed surfaces with multiple z values, when a discrete point is projected within the bounding box of a child node, all bounding boxes of the child nodes of this child node are traversed; when a ray has multiple projection points, the results are combined into a projection vertex set; if it is determined that they do not intersect, the projection of the next discrete point is calculated according to the vertex order of the three-dimensional discrete section curve;
[0051] Projection validity check is performed for two situations: one is when the projected point is outside the boundary, in which case the projected line segment needs to be linearly clipped to remove the excess part; the other is when there is a floating point error. After the projection is invalid, the distance to the nearest triangle edge needs to be calculated. If the error is within the allowable range, the projection is projected onto the nearest edge.
[0052] S15: Intersect the ray constructed by projecting the three-dimensional discrete cutting curve with the associated triangular faces in the AABB bounding box to obtain the projected vertex set of the three-dimensional discrete cutting curve vertices. The calculation formula is:
[0053]
[0054] P=O+tD
[0055] Among them, A, B, and C represent the coordinates of the three vertices of the triangle; N represents the normal vector of the triangle; O represents the coordinates of the starting point of the ray, D represents the unit direction vector of the ray; t represents the distance the ray is emitted; P represents the coordinates of the intersection of the ray and the triangle; after calculating the coordinates of the intersection, it is necessary to check whether it is within the triangle. The calculation formula is:
[0056]
[0057] Among them, (u, v, w) represents the centroid coordinates of the intersection point p relative to the triangles A, B, and C. When u ≥ 0, v ≥ 0, and w ≥ 0, it means that the intersection point value is acceptable within the triangle. If it is not acceptable, the projection of the next discrete point is calculated in sequence.
[0058] S16: Calculate the projected vertex set generated in the middle of each segment of the 3D discrete cutting curve. The calculation formula is:
[0059]
[0060] Among them, (x, y, z) represents the three-dimensional coordinates of the projection vertex generated in the middle of each segment of the three-dimensional discrete cutting curve; A(A x ,A y ,A z ), B(B x ,B y ,B z ) and C(C x ,C y ,C z ) represents the coordinates of the three vertices of the triangle; M(M x ,M y ,M z ), N(N x ,N y ,N z ) represents the two endpoints of a segment on the 3D discrete cutting curve; t represents the parameters of the segment parametric equation after a certain edge of the triangle is projected onto the reference intersection plane; u represents the parameters of the segment parametric equation after the segment on the 3D discrete cutting curve is projected onto the reference intersection plane; the range of u is [0,1], and the range of t is [0,1];
[0061] Among them, the line segment formed by a certain side of the triangle and each segment of the three-dimensional discrete cutting curve need to be projected onto the reference intersection plane. The calculation formula is:
[0062]
[0063] Among them, P start , P start Represents the two endpoints of the line segment before projection; P start,proj , P end,proj Represents the two endpoints of the projected line segment; D represents the projection direction; Q represents a point on the reference intersection plane. The mean of the midpoints of the two line segments can be selected as the point on the plane. The calculation formula is:
[0064]
[0065] Among them, edge abc Represents an edge on a triangle; MN middle Represents the midpoint of the three-dimensional discrete section curve segment MN;
[0066] In vertical projection, the reference intersection plane is the z=0 plane. The reference intersection plane is used to avoid errors in the intersection of three-dimensional line segments and to avoid complex projections. Vertical projection is the simplest case. For annular or oblique projection, the intersection plane is composed of multiple oblique or vertical projection planes.
[0067] Traverse each segment of the 3D discrete cutting curve, start the calculation with the projection point of the starting point of the segment as the initial triangle face, and use the triangle face where the projection point of the end point of the segment is located as the triangle face where the calculation ends. Project the three sides of the triangle face onto the reference intersection plane respectively, and intersect with the projection line segment of the current segment of the 3D discrete cutting curve onto the reference intersection plane in turn. The side opposite to the side where the intersection point is located is the next triangle face that needs to be projected and calculated; project the remaining two sides of the next triangle face onto the reference intersection plane and intersect with the current segment of the 3D discrete cutting curve to obtain the next intersection point, then determine the triangle face where the side opposite to the intersection point is located, and continue searching and intersecting in this way until the triangle face where the calculation ends is traversed;
[0068] Among them, when the intersection point is on the vertex of a triangle, the remaining triangles associated with the vertex are projected and intersected with the current line segment of the three-dimensional discrete cutting curve in turn to obtain the triangle where the new intersection point is located;
[0069] When a hole or connectivity interruption occurs on the surface, the next segment of the 3D discrete section curve is traversed to calculate the set of projected vertices generated in the middle of the segment and mark the interrupted part. Based on the marking of the projection interruption, the complete set of projected points of each segment of the 3D discrete section curve is obtained.
[0070] When multiple projection line segments are calculated for each segment of the 3D discrete cutting curve, multiple discrete projection curve segment sets are grouped respectively. After the traversal is completed, a complete discrete curve segment set of the 3D discrete cutting curve projected onto the surface is formed.
[0071] Preferably, step S2 includes:
[0072] S21: The total path length of the projected curve segment set is obtained by adding up the lengths of each path segment of the projected curve segment set. The calculation formula is:
[0073]
[0074] Among them, Curve project Represents a set of projected curve segments; Length(Curve project ) represents the total path length of the projected curve segment set; n represents the number of sub-curve segments in the projected curve segment set; m represents the number of vertices of each sub-curve in the projected curve segment set; c represents the cth sub-curve in the projected curve segment set; i represents the i-th vertex of each sub-curve in the projected curve segment set; edge i,i+1It is represented by the length of each segment of each sub-curve; v represents the vertex on the projected curve segment set; x, y, z represent the X, Y, and Z axis coordinates of the vertex on the projected curve segment set respectively;
[0075] S22: Calculate the maximum display value of the profile curve segment set about the elevation direction axis based on the vertex coordinates on the projected curve segment set. The calculation formula is:
[0076]
[0077] Among them, Curve project Represents a set of projected curve segments; Elvation max Indicates the maximum elevation displayed on the profile, Elvation min Indicates the minimum elevation displayed on the profile; v indicates the vertex on the shadow curve segment set; z (Curve project ,v) represents the z-axis coordinate value of the vertex on the projection curve segment set; MajorTick represents the major scale of the profile coordinate axis;
[0078] S23: Normalize the projected curve segment set to the profile graph. The formula is:
[0079]
[0080] Among them, (x profile ,y profile ,z profile ) represents the three-dimensional coordinate value of the vertex on the projection curve segment set mapped to the cross-section; Ratio profile Indicates the display scale of the profile; d(v(x,y),v(x0,y0)) represents the path length from a vertex on the projected curve segment set to the initial vertex of the curve, and the calculation formula is:
[0081]
[0082] Where i represents the vertex index on the projected curve segment set; k represents the index of the k+1th vertex on the projected curve segment set; v represents the vertex on the projected curve segment set; x, y, z represent the X, Y, and Z coordinates of the vertex on the projected curve segment set respectively; x0, y0, z0 represent the X, Y, and Z coordinates of the initial vertex on the projected curve segment set respectively; the range of i is [0, k];
[0083] z profile =0 means that the cross-section is a two-dimensional cross-section in three-dimensional space; profile, The default value is usually 0. The discontinuous middle part between the sub-curves of the projection curve is not included in the total path length of the normalized profile curve.
[0084] Preferably, step S3 includes:
[0085] S31: Update the vertex positions of the profile curve segment set according to the new position constraint. The calculation formula is:
[0086]
[0087] Among them, x' represents the X-axis coordinate of a vertex position constraint; y' represents the Y-axis coordinate of a vertex position constraint; z represents the z-axis coordinate of the vertex of the profile curve set;
[0088] S32: Update the local accuracy of the profile curve segment set based on Gaussian interpolation. The formula is:
[0089]
[0090] Where N represents the number of vertices in the local range of the sub-curve segment on the profile curve segment set; i represents the vertex index in the local range of the updated sub-curve segment in the profile curve segment set; x represents the coordinate value of the newly inserted point in the length direction axis of the profile curve path, and y represents the coordinate value of the newly inserted point in the elevation direction axis of the profile; x represents the coordinate value of the newly inserted point in the elevation direction axis of the profile; i Indicates the coordinate value of the i-th vertex in the local range of the updated sub-curve segment in the profile curve segment set in the length direction of the curve path; y i Indicates the coordinate value of the i-th vertex in the elevation direction axis within the local range of the updated sub-curve segment in the profile curve segment set; Indicates the true coordinate value of the i-th vertex in the elevation direction axis within the local range of the updated sub-curve segment in the profile curve segment set; ω i (x) represents the vertex (x) in the local range of the updated sub-curve segment in the profile curve segment concentration. i ,y i ,z i ) for the weight of the newly inserted point, σ represents the vertex (x i ,y i ,z i ) in the path length direction and the standard deviation of the distance between the newly inserted point, μ represents the vertex (x i ,y i ,z i ) the mean distance between the axis and the newly inserted point in the direction of the path length;
[0091] Among them, the local accuracy of the curve is used to measure the length of the curve segment and the number of data points contained in the local range of the curve. The calculation formula is:
[0092]
[0093] Among them, Curve accIndicates the local accuracy index of the curve; a represents the vertex index of the left boundary of the local range of the curve, b represents the vertex index of the right boundary of the local range of the curve; i represents the vertex index of the local range of the curve; edge i,i+1 Represents the length of the i-th line segment in the local range of the curve; N represents the number of data points in the local range of the profile curve set; the size of N is updated according to the new accuracy constraint, and the calculation formula is:
[0094]
[0095] When a curve is divided into multiple sub-curve segments, N ≤ the number of vertices of the sub-curve segments;
[0096] Based on Gaussian sampling, N new data points are sampled and old data points are deleted at the same time, and the corresponding connection relationships are updated;
[0097] S33: Add curvature change constraints locally to the profile curve set to control surface mutations. The formula is:
[0098]
[0099] Where i represents the index of the i-th vertex in the local range of the sub-curve segment on the profile curve segment set, N represents the number of vertices in the local range of the sub-curve segment on the profile curve segment set; P i-1 represents the i-1th vertex in the local range of the sub-curve segment on the profile curve segment set, P i+1 represents the i+1th vertex in the local range of the sub-curve segment on the profile curve segment set; θ i k represents the angle between the i-th vertex and the line segment formed by the two adjacent vertices in the local range of the sub-curve segment on the profile curve segment set; i k represents the approximate local curvature of the i-th vertex in the local range of the sub-curve segment on the profile curve segment set; i Represents the local curvature maximum of the vertex in the local range of the sub-curve segment on the profile curve segment set; the range of i does not include the endpoint index in the local range of the sub-curve segment on the profile curve segment set; θ i is a radian value.
[0100] Preferably, step S4 includes:
[0101] S41: Denormalize the updated sub-curve segments on the profile curve segment set to obtain updated three-dimensional discrete projection sub-curve segments. The calculation formula is:
[0102]
[0103] d segment_start,v0 =d(v(x segment_start ,y segment_start ,z segment_start),v(x0,y0,z0))
[0104]
[0105] D segment =v(x segment_end ,y segment_end ,z segment_end )-v(x segment_start ,y segment_start ,z segment_start )
[0106] Among them, (x', y', z') represents the three-dimensional coordinates of the vertices on the projection curve segment set corresponding to the updated vertices on the profile curve segment set after denormalization; min Indicates the minimum value of the elevation coordinate axis on the profile; R indicates the display scale of the profile; (x profile_zero ,y profile ,0) represents the origin coordinate of the coordinate axis on the cross-section; (x profile ,y profile ,0) represents the vertex coordinates of the profile curve segment set; v(x0,y0,z0) represents the three-dimensional coordinates of the initial vertex of the projection curve segment set; v(x segment_start ,y segment_start ,z segment_start ) represents the three-dimensional coordinates of the vertex on the projected curve segment set corresponding to the starting point of the updated line segment in the profile curve segment set after denormalization, v(x segment_end ,y segment_end ,z segment_end ) represents the three-dimensional coordinates of the vertex on the projected curve segment set corresponding to the end point of the updated profile curve segment set after denormalization; D segment Indicates the direction vector of the line segment where the profile curve segment is concentratedly updated; || D segment || indicates the modulus of the direction vector of the line segment where the profile curve segment is concentratedly updated; D segment (x) means taking D segment The X-axis coordinate value of the vector, D segment (y) means taking D segment The Y-axis coordinate value of the vector, D segment (z) means taking D segment Vector Z-axis coordinate value;
[0107] Among them, d segment,v0 and d(v(x segment_start ,y segment_start ,z segment_start ), v(x0, y0, z0)) all represent the length of the curve path from the starting point of the updated line segment in the projected curve segment set to the initial vertex of the projected curve segment set; Indicates the z-axis coordinate of the vertex on the projected curve segment set after denormalization of the updated vertex on the profile curve segment set, projected onto the original line segment; R represents the length of the curve path between the vertex on the projected curve segment set after the anti-normalization of the vertex on the profile curve segment set, the vertex projected on the original line segment and the initial vertex of the projected curve segment set; v,segment_start It represents the ratio of the distance between the updated vertex on the profile curve segment set and the vertex on the corresponding projection curve segment set after denormalization and the starting point of the original segment to the total path length of the original segment; R v,segment_start (x) represents taking R v,segment_start The X-axis coordinate value of the vector, R v,segment_start (y) means taking R v,segment_start The Y-axis coordinate value of the vector.
[0108] For changes to the surface due to non-profile constraints, the profile is updated first and then the normalization calculation is performed. In the denormalization calculation, since the surface does not change from the normalization stage to the denormalization stage, and the surface profile constraints generally only change a certain part, the denormalization calculation is performed in parallel for each part of the profile where the curve segment set is modified.
[0109] Preferably, step S5 includes:
[0110] S51: Determine the surface triangulation range affected by the projection curve segment set based on the projection curve segment set and the range influence factor. The calculation formula is:
[0111] {T k |T k insideAABB j}
[0112]
[0113] u=[|p x -b x |,|p y -b y |]-[x max -x min ,y max -y min ]
[0114] Where n represents the number of line segments in the 3D projection curve segment set; i represents the index of the circle generated with the line segment as the diameter in the 3D projection curve segment set; j represents the index of the AABB bounding box in the surface AABB binary tree; k represents the index of the triangle face in the surface; C i represents a circle generated by the i-th line segment as the diameter in the three-dimensional projected curve segment set; Represents the union of all circles generated by the line segments in a 3D projected curve segment set; AABBj Represents the j-th AABB bounding box in the AABB tree; T k Represents all AABB j Associated triangles; r i Indicates the radius of the i-th circle; (p x ,p y ) represents the coordinates of the center of the i-th circle; (b x ,b y ) represents the center coordinates of the jth AABB bounding box; (x, y) represents the XY axis coordinates of the circle generated with the i-th line segment as the diameter in the three-dimensional projection curve segment set; (x 2i-1 ,y 2i-1 ) represents the XY coordinates of the starting point of the i-th line segment in the three-dimensional projection curve segment set; (x 2i ,y 2i ) represents the XY coordinates of the endpoint of the i-th line segment in the three-dimensional projected curve segment set; Indicates whether the union of circles generated by all line segments in the 3D projected curve segment set intersects with the j-th AABB bounding box on the AABB tree; u(u x ,u y ) represents the vector difference between the center of the i-th circle and the center point of the j-th AABB bounding box in the XY plane; X max Indicates the maximum value of the j-th bounding box X axis, X min Indicates the minimum value of the X axis of the j-th bounding box; Y max Indicates the maximum value of the Y axis of the j-th bounding box, Y min Indicates the minimum value of the Y axis of the j-th bounding box;
[0115] Among them, the connectivity of the surface does not affect the intersection calculation between the relevant circle and the triangle face associated with the AABB bounding box;
[0116] The range of influence is to find the union of the circles formed by the diameters of the line segments. When solving the influence range for areas where the local curvature of the surface changes significantly, the minimum enveloping circle of the union of the circles formed by the diameters of the line segments is finally added. The minimum enveloping circle is intersected with the surface to obtain the affected surface area.
[0117] S52: adding the vertices and edges of the three-dimensional projected curve segment to the projected surface;
[0118] For the case where it is not the first time to add a 3D projection curve segment set to the projection surface and the number of 3D projection curve vertices is reduced, the projection surface first deletes the corresponding redundant vertices and associated edges;
[0119] The three-dimensional projected curve segments and the range boundary are used as constraint edges. Three operations are performed iteratively: splitting long edges, folding short edges, and reversing edges to balance vertex degrees. The triangular faces within the range are made as uniform as possible. The target uniform edge length is the mean of the edge lengths of all surfaces within the range. The constraint for stopping the iteration is that the difference between the edges within the range other than the constraint edges and the mean does not exceed 1%.
[0120] Among them, the basis for judging the long side is the side length Target side length; the short side is determined based on the side length Target side length; the target side length is the average side length within the original influence range;
[0121] Among them, in the reverse edge operation, the target degree of non-boundary vertices is 6, and the target degree of boundary vertices is 4;
[0122] S53: Perform constrained interpolation on the triangulated network within the affected range. The calculation formula is:
[0123] W II ·Φ I =-W IL ·Φ L
[0124] W=μ(k)·v(k)·v(k) T
[0125]
[0126] d 2 (a,k)=[x(a)-x(k)] T ·D(k)·[x(a)-x(k)]
[0127] Where I represents the index of the update point in the surface, L represents the index of the known constraint point in the surface; W represents the Laplace operator; W II Represents the Laplace weight between unknown points; W IL represents the Laplace weight between the unknown point and the known point; μ(k) represents the global smooth weight of vertex k; v(k) represents the weight vector of vertex k; v a (k) represents the weight value of vertex a with respect to vertex k; ∧(k) represents the number of neighboring vertices of vertex k that do not include k; |∧(k)| represents the number of neighboring vertices of vertex k that do not include k; d(a,k) represents the anisotropic distance between vertex a and vertex k; D(k) represents the anisotropic weight; x() represents the position or curvature of the vertex;
[0128] Among them, μ(k) generally defaults to 1, that is, the global contribution of each vertex is consistent. If the global contribution needs to be adjusted, it can be applied to the value of μ(k) based on the Euclidean distance from the vertex or the curvature difference.
[0129] Gaussian weights have significant advantages over harmonic weights in anisotropy, closed surfaces, and curvature changes, but the computational cost is also much higher than that of harmonic weights. In the selection of anisotropic weights, the vertex Euclidean distance and curvature change are generally considered. The vertex Euclidean distance weight is selected for smooth areas, the curvature change is selected for non-smooth areas, and the weighted sum of the two is selected for intersection areas, generally 0.5 for each.
[0130] A computer device includes a processor, a memory, a user interface, and a network interface. The memory is used to store instructions, and the user interface and the network interface are used to communicate with other devices, so that the processor is used to execute the instructions in the memory, so that the computer device performs a method for real-time mutual updating of a cross-section image and a complex geological model.
[0131] A computer-readable storage medium stores instructions. When the computer program is executed by a processor, the processor executes a method for real-time mutual updating of a cross-section diagram and a complex geological model.
[0132] The beneficial effects of the solution provided by this application are:
[0133] By projecting general curves onto various complex geological surfaces, the resulting projected line segment sets are converted into curve segment sets on the profile. Engineering constraints are then added to the profile curve segment sets, which are then denormalized into constrained curve segment sets on the surface, automatically optimizing the geological surface. This invention can automatically optimize the surface based on the engineering constraints imposed on the section lines and profiles, while also synchronously updating the profiles. This significantly reduces the time required to analyze geological surfaces using profiles and expands the types of geological surfaces that can be analyzed using profiles. BRIEF DESCRIPTION OF THE DRAWINGS
[0134] The present application will be further described below with reference to the accompanying drawings and embodiments, in which:
[0135] Figure 1 It is a step diagram in the embodiment of the present application;
[0136] Figure 2 It is a three-dimensional view of the projected geological surface;
[0137] Figure 3 It is a schematic diagram of the first projection line segment set of the section line on the geological surface;
[0138] Figure 4 It is a schematic diagram of the second projection line segment set of the section line on the geological surface;
[0139] Figure 5It is a normalized schematic diagram of the projected line segment set on the profile diagram;
[0140] Figure 6 This is the schematic diagram of the first projected line segment set in the cross-section before local constraints are added;
[0141] Figure 7 This is the schematic diagram after the local constraints are added to the first projected line segment set in the cross-section diagram;
[0142] Figure 8 It is a schematic diagram of the geological surface after the cross-section constraint curve set is denormalized;
[0143] Figure 9 This is a comparison diagram of the surface before and after optimization after adding constraints;
[0144] Figure 10 It is a schematic diagram of the computer device structure in an embodiment of the present application. DETAILED DESCRIPTION
[0145] In order to make the objectives, technical solutions and advantages of this application more clear, the specific implementation methods of this application are described in detail with reference to the accompanying drawings.
[0146] The embodiments of the present application provide a method for real-time updating of a cross-section image and a complex geological model.
[0147] Please refer to Figure 1 , Figure 1 This is a step diagram of a method for real-time updating of a cross-section image and a complex geological model in an embodiment of the present application, including:
[0148] S1: Obtain a set of projection curve segments; transform the two-dimensional cutting curve into a three-dimensional discrete cutting curve according to the virtual viewpoint position, construct a ray detection structure of the projected surface, and perform projection calculation to obtain a set of projection curve segments;
[0149] Step S1 includes:
[0150] S11: Convert the two-dimensional cutting curve into a three-dimensional cutting curve according to the virtual projection view angle position. The formula is:
[0151]
[0152] Where x, y, and z represent the three-dimensional coordinates of the curve; f(x, y) represents the two-dimensional section curve, and f(x, y, z) represents the three-dimensional section curve; z eye Indicates the z-axis coordinate of the virtual perspective position;
[0153] Specifically, in the embodiment provided in this application, the two-dimensional cutting curve is a spline curve, and the control points are (-80, 0), (-58.406-53.979), (80, 0), z eyeTake 150;
[0154] S12: Discretize the continuous three-dimensional cutting curve. The calculation formula is:
[0155]
[0156] Where t represents the parameter of the continuous curve; i represents the vertex index of the discretized continuous curve; n represents the number of vertices after the discretization of the continuous curve; the range of i is [0, n-1]; the range of t is [t0, t n-1 ]; t0 represents the parameter value of the left boundary of the continuous curve, t n-1 The parameter value representing the right boundary of the continuous curve;
[0157] Specifically, in the embodiments provided in this application, n is 10;
[0158] S13: Sort by the centroids of all triangles on the projected surface and construct a fast ray detection structure:
[0159] Calculate the centroid of each triangle of the projected surface using the following formula:
[0160]
[0161] Among them, v represents the three-dimensional coordinates of each triangular vertex in the surface, v barycenter Represents the coordinates of the center of the triangle;
[0162] The barycentric coordinate arrays of all triangles are divided in order according to one of the axes X, Y, and Z, and a binary tree is recursively constructed based on this. The division coordinate axes are:
[0163] axis splitter =depth%3
[0164] Among them, axis splitter Indicates the partition axis, depth indicates the depth of the subtree, axis=0 indicates the X axis is used as the partition axis, axis=1 indicates the Y axis is used as the partition axis, and axis=2 indicates the Z axis is used as the partition axis;
[0165] The root node of the binary tree is the mean of the barycentric coordinate arrays of all triangles of the projected surface. It is recursively constructed from bottom to top, and the AABB bounding box, the index of all triangles associated with the bounding box, and the barycentric coordinate information are stored in the child nodes for fast retrieval.
[0166] Among them, the binary tree leaf node stores the AABB bounding box of each triangle face, and its calculation formula is:
[0167] AABB i ={(x,y,z)|min x≤x≤max x ,min y ≤y≤max y ,min z ≤z≤max z}
[0168] min x =min(A x ,B x ,C x )
[0169] max x =max(A x ,B x ,C x )
[0170] min y =min(A y ,B y ,C y )
[0171] max y =max(A y ,B y ,C y )
[0172] min z =min(A z ,B z ,C z )
[0173] max z =max(A z ,B z ,C z )
[0174] Among them, A(A x ,A y ,A z ), B(B x ,B y ,B z ) and C(C x ,C y ,C z ) represents the coordinates of the three vertices of the triangle; min x , min y , min z Indicates the minimum value of the X, Y, and Z axes of the three vertices of the triangle. x , max y , max z Indicates the maximum value of the X, Y, and Z axes of the three vertices of the triangle; i represents the index of the triangle face; AABB iRepresents the AABB bounding box of a certain triangle face; max means finding the maximum value of the set, and min means finding the minimum value of the set;
[0175] The sub-bounding box is calculated for non-leaf nodes of the binary tree except the root node. The calculation formula is:
[0176] AABB child,j ={(x,y,z)|P min,x ≤x≤P max,x ,P min,y ≤y≤P max,y ,P min,z ≤z≤P max,z}
[0177] P min =(min(x1,x2,...x n ),min(y1,y2,...y n ),min(z1,z2,...z n ))
[0178] P max =(max(x1,x2,...x n ),max(y1,y2,...y n ),max(z1,z2,...z n ))
[0179] Among them, j represents the index of the AABB binary tree child node; childr,j Represents the AABB bounding box of the jth non-leaf node in the binary tree except the root node; n represents the number of child nodes under the jth child node; x1, x2, ... x n Indicates the x-axis coordinate value of the next child node of the j-th child node; y1, y2, ...y n Indicates the y-axis coordinate value of the child node under the j-th child node; z1,z2,...z n Indicates the z-axis coordinate value of the next child node of the j-th child node; P min (P min,x ,P min,y ,P min,z ) represents the three-dimensional coordinates of the minimum value of the AABB bounding box of the jth non-leaf node in the binary tree except the root node, P max (P max,x ,P max,y ,P max,z ) represents the three-dimensional coordinates of the maximum value of the AABB bounding box of the j-th non-leaf node in the binary tree except the root node;
[0180] Specifically, in the embodiment provided in this application, the projected surface is an implicit surface that simulates a mine pit using two frustums perpendicular to the XY plane. The parameters of the outer frustum are an upper surface radius of 100, an upper surface elevation of 100, a lower surface radius of 50, and a lower surface elevation of 0. The parameters of the inner frustum are an upper surface radius of 70, a lower surface radius of 20, an upper surface elevation of 100, and a lower surface elevation of 30. Figure 2 As shown;
[0181] S14: Calculate whether the projection point set of each discrete point of the 3D discrete cutting curve on the projected surface is valid. The calculation formula is:
[0182]
[0183] Where, O=(o x ,o y ,o z ) represents the three-dimensional coordinates of each discrete point, t represents the distance from the ray at the vertex of the polyline, D = (d x ,d y ,d z ) represents the virtual line of sight direction; the ray calculation formula is:
[0184] p(t)=O+tD
[0185] Where p(t) represents any point on the ray;
[0186] in, Respectively represent the minimum value of the x-axis, y-axis, and z-axis components of the ray distance emitted from each vertex position of the three-dimensional discrete cutting curve; They represent the maximum value of the x-axis, y-axis, and z-axis components of the ray emitted from each vertex position of the three-dimensional discrete cutting curve; t enter Indicates t min The maximum value in t exit Indicates t max The minimum value in ; when t enter ≤t exit And t enter ≥0, the ray intersects with the AABB, and the binary tree used for fast ray detection is recursively searched from top to bottom to calculate the minimum AABB bounding box of the triangle where the projected vertex is located;
[0187] For closed surfaces with multiple z values, when a discrete point is projected within the bounding box of a child node, all bounding boxes of the child nodes of this child node are traversed; when a ray has multiple projection points, the results are combined into a projection vertex set; if it is determined that they do not intersect, the projection of the next discrete point is calculated according to the vertex order of the three-dimensional discrete section curve;
[0188] Specifically, in the embodiments provided in this application, the section line is projected vertically downward;
[0189] S15: Intersect the ray constructed by projecting the three-dimensional discrete cutting curve with the associated triangular faces in the AABB bounding box to obtain the projected vertex set of the three-dimensional discrete cutting curve vertices. The calculation formula is:
[0190]
[0191] Among them, A, B, and C represent the coordinates of the three vertices of the triangle; N represents the normal vector of the triangle; O represents the coordinates of the starting point of the ray, D represents the unit direction vector of the ray; t represents the distance the ray is emitted; P represents the coordinates of the intersection of the ray and the triangle; after calculating the coordinates of the intersection, it is necessary to check whether it is within the triangle. The calculation formula is:
[0192]
[0193] Among them, (u, v, w) represents the centroid coordinates of the intersection point p relative to the triangles A, B, and C. When u ≥ 0, v ≥ 0, and w ≥ 0, it means that the intersection point value is acceptable within the triangle. If it is not acceptable, the projection of the next discrete point is calculated in sequence.
[0194] S16: Calculate the projected vertex set generated in the middle of each segment of the 3D discrete cutting curve. The calculation formula is:
[0195]
[0196] Among them, (x, y, z) represents the three-dimensional coordinates of the projection vertex generated in the middle of each segment of the three-dimensional discrete cutting curve; A(A x ,A y ,A z ), B(B x ,B y ,B z ) and C(C x ,C y ,C z ) represents the coordinates of the three vertices of the triangle; M(M x ,M y ,M z ), N(N x ,N y ,N z ) represents the two endpoints of a segment on the 3D discrete cutting curve; t represents the parameters of the segment parametric equation after a certain edge of the triangle is projected onto the reference intersection plane; u represents the parameters of the segment parametric equation after the segment on the 3D discrete cutting curve is projected onto the reference intersection plane; the range of u is [0,1], and the range of t is [0,1];
[0197] Among them, the line segment formed by a certain side of the triangle and each segment of the three-dimensional discrete cutting curve need to be projected onto the reference intersection plane. The calculation formula is:
[0198]
[0199] Among them, P start , P start Represents the two endpoints of the line segment before projection; P start,proj , P end,proj Represents the two endpoints of the projected line segment; D represents the projection direction; Q represents a point on the reference intersection plane. The mean of the midpoints of the two line segments can be selected as the point on the plane. The calculation formula is:
[0200]
[0201] Among them, edge abc Represents an edge on a triangle; MN middle Represents the midpoint of the three-dimensional discrete section curve segment MN;
[0202] When projecting vertically, the reference intersection plane is directly taken as the z = 0 plane;
[0203] Traverse each segment of the 3D discrete cutting curve, start the calculation with the projection point of the starting point of the segment as the initial triangle face, and use the triangle face where the projection point of the end point of the segment is located as the triangle face where the calculation ends. Project the three sides of the triangle face onto the reference intersection plane respectively, and intersect with the projection line segment of the current segment of the 3D discrete cutting curve onto the reference intersection plane in turn. The side opposite to the side where the intersection point is located is the next triangle face that needs to be projected and calculated; project the remaining two sides of the next triangle face onto the reference intersection plane and intersect with the current segment of the 3D discrete cutting curve to obtain the next intersection point, then determine the triangle face where the side opposite to the intersection point is located, and continue searching and intersecting in this way until the triangle face where the calculation ends is traversed;
[0204] Among them, when the intersection point is on the vertex of a triangle, the remaining triangles associated with the vertex are projected and intersected with the current line segment of the three-dimensional discrete cutting curve in turn to obtain the triangle where the new intersection point is located;
[0205] When a hole or connectivity interruption occurs on the surface, the next segment of the 3D discrete section curve is traversed to calculate the set of projected vertices generated in the middle of the segment and mark the interrupted part. Based on the marking of the projection interruption, the complete set of projected points of each segment of the 3D discrete section curve is obtained.
[0206] When multiple projection line segments are calculated for each segment of the 3D discrete cutting curve, multiple discrete projection curve segment sets are grouped respectively. After the traversal is completed, a complete discrete curve segment set of the 3D discrete cutting curve projected onto the surface is formed.
[0207] Specifically, in the embodiment provided in this application, two uninterrupted projected curve segment sets are generated; wherein the first projected curve segment set is as follows: Figure 3 As shown, the second projected line segment set is as follows Figure 4 As shown;
[0208] S2: Accumulate the path lengths of the projection curve segment set to obtain the total path length of the projection curve segment set, round up the maximum value of the elevation of the three-dimensional projection curve segment set to a certain integer, and round down the minimum value to a certain integer to obtain the display maximum value of the profile curve segment set about the axis representing the elevation direction, and normalize the projection curve segment set according to the total path length of the projection curve segment set and the rounded maximum elevation value to obtain the profile curve segment set;
[0209] Step S2 includes:
[0210] S21: The total path length of the projected curve segment set is obtained by adding up the lengths of each path segment of the projected curve segment set. The calculation formula is:
[0211]
[0212] Among them, Curve project Represents a set of projected curve segments; Length(Curve project ) represents the total path length of the projected curve segment set; n represents the number of sub-curve segments in the projected curve segment set; m represents the number of vertices of each sub-curve in the projected curve segment set; c represents the cth sub-curve in the projected curve segment set; i represents the i-th vertex of each sub-curve in the projected curve segment set; edge i,i+1 It is represented by the length of each segment of each sub-curve; v represents the vertex on the projected curve segment set; x, y, z represent the X, Y, and Z axis coordinates of the vertex on the projected curve segment set respectively;
[0213] S22: Calculate the maximum display value of the profile curve segment set about the elevation direction axis based on the vertex coordinates on the projected curve segment set. The calculation formula is:
[0214]
[0215] Among them, Curve project Represents a set of projected curve segments; Elvation max Indicates the maximum elevation displayed on the profile, Elvation min Indicates the minimum elevation displayed on the profile; v indicates the vertex on the shadow curve segment set; z (Curve project ,v) represents the z-axis coordinate value of the vertex on the projection curve segment set; MajorTick represents the major scale of the profile coordinate axis;
[0216] Specifically, in the examples provided in this application, MajorTick is 20;
[0217] S23: Normalize the projected curve segment set to the profile graph. The formula is:
[0218]
[0219] Among them, (x profile ,y profile ,z profile ) represents the three-dimensional coordinate value of the vertex on the projection curve segment set mapped to the cross-section; Ratio profile Indicates the display scale of the profile; d(v(x,y),v(x0,y0)) represents the path length from a vertex on the projected curve segment set to the initial vertex of the curve, and the calculation formula is:
[0220]
[0221] Where i represents the vertex index on the projected curve segment set; k represents the index of the k+1th vertex on the projected curve segment set; v represents the vertex on the projected curve segment set; x, y, z represent the X, Y, and Z axis coordinates of the vertex on the projected curve segment set respectively; x0, y0, z0 represent the X, Y, and Z axis coordinates of the initial vertex on the projected curve segment set respectively; the range of i is [0, k]; z profile =0 means that the cross-section is a two-dimensional cross-section in a three-dimensional space.
[0222] Specifically, in the embodiments provided in this application, profile =0,(x profile ,y profile ,z profile ) Take any XY plane coordinate that is not within the surface range, such as Figure 5 As shown;
[0223] S3: Update the profile curve segment set after adding a new engineering profile constraint to the profile curve segment set;
[0224] Step S3 includes:
[0225] S31: Update the vertex positions of the profile curve segment set according to the new position constraint. The calculation formula is:
[0226]
[0227] Among them, x' represents the X-axis coordinate of a vertex position constraint; y' represents the Y-axis coordinate of a vertex position constraint; z represents the z-axis coordinate of the vertex of the profile curve set;
[0228] Specifically, in the embodiment provided in this application, the first projected curve segment concentrates the local features from the 31st vertex to the 76th vertex, such as Figure 6As shown in the figure, the elevation of the 31st vertex is constrained from 100 to 88, and the elevation of the 54th vertex is constrained from 100 to 92. Figure 7 As shown;
[0229] S32: Update the local accuracy of the profile curve segment set based on Gaussian interpolation. The formula is:
[0230]
[0231] Where N represents the number of vertices in the local range of the sub-curve segment on the profile curve segment set; i represents the vertex index in the local range of the updated sub-curve segment in the profile curve segment set; x represents the coordinate value of the newly inserted point in the length direction axis of the profile curve path, and y represents the coordinate value of the newly inserted point in the elevation direction axis of the profile; x represents the coordinate value of the newly inserted point in the elevation direction axis of the profile; i Indicates the coordinate value of the i-th vertex in the local range of the updated sub-curve segment in the profile curve segment set in the length direction of the curve path; y i Indicates the coordinate value of the i-th vertex in the elevation direction axis within the local range of the updated sub-curve segment in the profile curve segment set; Indicates the true coordinate value of the i-th vertex in the elevation direction axis within the local range of the updated sub-curve segment in the profile curve segment set; ω i (x) represents the vertex (x) in the local range of the updated sub-curve segment in the profile curve segment concentration. i ,y i ,z i ) for the weight of the newly inserted point, σ represents the vertex (x i ,y i ,z i ) in the path length direction and the standard deviation of the distance between the newly inserted point, μ represents the vertex (x i ,y i ,z i ) the mean distance between the axis and the newly inserted point in the direction of the path length;
[0232] Among them, the local accuracy of the curve is used to measure the length of the curve segment and the number of data points contained in the local range of the curve. The calculation formula is:
[0233]
[0234] Among them, Curve acc Indicates the local accuracy index of the curve; a represents the vertex index of the left boundary of the local range of the curve, b represents the vertex index of the right boundary of the local range of the curve; i represents the vertex index of the local range of the curve; edge i,i+1Represents the length of the i-th line segment in the local range of the curve; N represents the number of data points in the local range of the profile curve set; the size of N is updated according to the new accuracy constraint, and the calculation formula is:
[0235]
[0236] When a curve is divided into multiple sub-curve segments, N ≤ the number of vertices of the sub-curve segments;
[0237] Based on Gaussian sampling, N new data points are sampled and old data points are deleted at the same time, and the corresponding connection relationships are updated;
[0238] Specifically, in the embodiment provided in this application, the portion between the 31st vertex and the 76th vertex in the first projection curve segment is simplified by 40%, such as Figure 7 As shown;
[0239] S33: Add curvature change constraints locally to the profile curve set to control surface mutations. The formula is:
[0240]
[0241] Where i represents the index of the i-th vertex in the local range of the sub-curve segment on the profile curve segment set, N represents the number of vertices in the local range of the sub-curve segment on the profile curve segment set; P i-1 represents the i-1th vertex in the local range of the sub-curve segment on the profile curve segment set, P i+1 represents the i+1th vertex in the local range of the sub-curve segment on the profile curve segment set; θ i k represents the angle between the i-th vertex and the line segment formed by the two adjacent vertices in the local range of the sub-curve segment on the profile curve segment set; i k represents the approximate local curvature of the i-th vertex in the local range of the sub-curve segment on the profile curve segment set; i Represents the local curvature maximum of the vertex in the local range of the sub-curve segment on the profile curve segment set; the range of i does not include the endpoint index in the local range of the sub-curve segment on the profile curve segment set; θ i is a radian value.
[0242] S4: using the profile graph and mapping relationship to denormalize the profile curve segment set into a new projected curve segment set;
[0243] Step S4 includes:
[0244] S41: Denormalize the updated sub-curve segments on the profile curve segment set to obtain updated three-dimensional discrete projection sub-curve segments. The calculation formula is:
[0245]
[0246] dsegment_start,v0 =d(v(x segment_start ,y segment_start ,z segment_start ),v(x0,y0,z0))
[0247]
[0248] D segment =v(x segment_end ,y segment_end ,z segment_end )-v(x segment_start ,y segment_start ,z segment_start )
[0249] Among them, (x', y', z') represents the three-dimensional coordinates of the vertices on the projection curve segment set corresponding to the updated vertices on the profile curve segment set after denormalization; min Indicates the minimum value of the elevation coordinate axis on the profile; R indicates the display scale of the profile; (x profile_zero ,y profile ,0) represents the origin coordinate of the coordinate axis on the cross-section;
[0250] (x profile ,y profile ,0) represents the vertex coordinates of the profile curve segment set; v(x0,y0,z0) represents the three-dimensional coordinates of the initial vertex of the projection curve segment set; v(x segment_start ,y segment_start ,z segment_start ) represents the three-dimensional coordinates of the vertex on the projected curve segment set corresponding to the starting point of the updated line segment in the profile curve segment set after denormalization, v(x segment_end ,y segment_end ,z segment_end ) represents the three-dimensional coordinates of the vertex on the projected curve segment set corresponding to the end point of the updated profile curve segment set after denormalization; D segment Indicates the direction vector of the line segment where the profile curve segment is concentratedly updated; || D segment || indicates the modulus of the direction vector of the line segment where the profile curve segment is concentratedly updated; D segment (x) means taking D segment The X-axis coordinate value of the vector, D segment (y) means taking D segment The Y-axis coordinate value of the vector, D segment (z) means taking D segment Vector Z-axis coordinate value;
[0251] Among them, d segment,v0 and d(v(x segment_start ,y segment_start ,z segment_start), v(x0, y0, z0)) all represent the length of the curve path from the starting point of the updated line segment in the projected curve segment set to the initial vertex of the projected curve segment set; Indicates the z-axis coordinate of the vertex on the projected curve segment set after denormalization of the updated vertex on the profile curve segment set, projected onto the original line segment; R represents the length of the curve path between the vertex on the projected curve segment set after the anti-normalization of the vertex on the profile curve segment set, the vertex projected on the original line segment and the initial vertex of the projected curve segment set; v,segment_start It represents the ratio of the distance between the updated vertex on the profile curve segment set and the vertex on the corresponding projection curve segment set after denormalization and the starting point of the original segment to the total path length of the original segment; R v,segment_start (x) represents taking R v,segment_start The X-axis coordinate value of the vector, R v,segment_start (y) means taking R v,segment_start The Y-axis coordinate value of the vector.
[0252] S5: The new projected curve segment set is used as the precise constraint of the projected surface. Combined with the range influence factor, Gaussian-weighted DSI interpolation and grid homogenization are used to smooth and homogenize the area around the projected curve segment set in the projected surface.
[0253] Step S5 includes:
[0254] S51: Determine the surface triangulation range affected by the projection curve segment set based on the projection curve segment set and the range influence factor. The calculation formula is:
[0255] {T k |T k insideAABB j}
[0256]
[0257] u=[|p x -b x |,|p y -b y |]-[x max -x min ,y max -y min ]
[0258] Where n represents the number of line segments in the 3D projection curve segment set; i represents the index of the circle generated with the line segment as the diameter in the 3D projection curve segment set; j represents the index of the AABB bounding box in the surface AABB binary tree; k represents the index of the triangle face in the surface; C i represents a circle generated by the i-th line segment as the diameter in the three-dimensional projected curve segment set; Represents the union of all circles generated by the line segments in a 3D projected curve segment set; AABB j Represents the j-th AABB bounding box in the AABB tree; T k Represents all AABB j Associated triangles; r i Indicates the radius of the i-th circle; (p x ,p y ) represents the coordinates of the center of the i-th circle; (b x ,b y ) represents the center coordinates of the jth AABB bounding box; (x, y) represents the XY axis coordinates of the circle generated with the i-th line segment as the diameter in the three-dimensional projection curve segment set; (x 2i-1 ,y 2i-1 ) represents the XY coordinates of the starting point of the i-th line segment in the three-dimensional projection curve segment set; (x 2i ,y 2i ) represents the XY coordinates of the endpoint of the i-th line segment in the three-dimensional projected curve segment set; Indicates whether the union of circles generated by all line segments in the 3D projected curve segment set intersects with the j-th AABB bounding box on the AABB tree; u(u x ,u y ) represents the vector difference between the center of the i-th circle and the center point of the j-th AABB bounding box in the XY plane; X max Indicates the maximum value of the j-th bounding box X axis, X min Indicates the minimum value of the X axis of the j-th bounding box; Y max Indicates the maximum value of the Y axis of the j-th bounding box, Y min Indicates the minimum value of the Y axis of the j-th bounding box;
[0259] Among them, the connectivity of the surface does not affect the intersection calculation between the relevant circle and the triangle face associated with the AABB bounding box;
[0260] Specifically, in the embodiment of the present application, the range is 20;
[0261] S52: adding the vertices and edges of the three-dimensional projected curve segment to the projected surface;
[0262] For the case where it is not the first time to add a 3D projection curve segment set to the projection surface and the number of 3D projection curve vertices is reduced, the projection surface first deletes the corresponding redundant vertices and associated edges;
[0263] The three-dimensional projected curve segments and the range boundary are used as constraint edges. Three operations are performed iteratively: splitting long edges, folding short edges, and reversing edges to balance vertex degrees. The triangular faces within the range are made as uniform as possible. The target uniform edge length is the mean of the edge lengths of all surfaces within the range. The constraint for stopping the iteration is that the difference between the edges within the range other than the constraint edges and the mean does not exceed 1%.
[0264] Among them, the basis for judging the long side is the side length Target side length; the short side is determined based on the side length Target side length; the target side length is the average side length within the original influence range;
[0265] Among them, in the reverse edge operation, the target degree of non-boundary vertices is 6, and the target degree of boundary vertices is 4;
[0266] Specifically, in the embodiment of the present application, the curve segment set corresponding to the first projected curve segment set on the cross-section is denormalized and embedded in the geological surface and the local edges are uniformed as shown in the following figure: Figure 8 As shown;
[0267] S53: Perform constrained interpolation on the triangulated network within the affected range. The calculation formula is:
[0268] W II ·Φ I =-W IL ·Φ L
[0269] W=μ(k)·v(k)·v(k) T
[0270]
[0271] d 2 (a,k)=[x(a)-x(k)] T ·D(k)·[x(a)-x(k)]
[0272] Where I represents the index of the update point in the surface, L represents the index of the known constraint point in the surface; W represents the Laplace operator; W II Represents the Laplace weight between unknown points; W IL represents the Laplace weight between the unknown point and the known point; μ(k) represents the global smooth weight of vertex k; v(k) represents the weight vector of vertex k; v a (k) represents the weight value of vertex a with respect to vertex k; ∧(k) represents the number of neighboring vertices of vertex k that do not include k; |^(k)| represents the number of neighboring vertices of vertex k that do not include k; d(a,k) represents the anisotropic distance between vertex a and vertex k; D(k) represents the anisotropic weight; x() represents the position or curvature of the vertex;
[0273] Specifically, in the embodiment of the present application, the anisotropy weight is a weighted value of the vertex position and the curvature, wherein the weight is 0.5 for each;
[0274] This application also discloses a computer device, referring to Figure 10 , including a memory and a processor, the memory stores instructions, and when the computer program is executed by the processor, the processor performs the steps of the above method.
[0275] The present application also discloses a computer-readable storage medium storing instructions. When the computer program is executed by a processor, the processor executes the steps of the above method.
[0276] The above are merely exemplary embodiments of the present disclosure and are not intended to limit the scope of the present disclosure. In other words, any equivalent changes and modifications made according to the teachings of the present disclosure are still within the scope of the present disclosure. After considering the disclosure of the specification and the truth of practice, those skilled in the art will easily conceive of other implementation plans of the present disclosure.
[0277] This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art not described herein. The description and examples are to be considered as exemplary only, and the scope and spirit of the present disclosure are to be determined by the claims.
Claims
1. A method for real-time mutual updating of a cross-section diagram and a complex geological model, characterized by: The method comprises the following steps, S1: Obtain a set of projection curve segments; transform the two-dimensional cutting curve into a three-dimensional discrete cutting curve according to the virtual viewpoint position, construct a ray detection structure of the projected surface, and perform projection calculation to obtain a set of projection curve segments; S2: Accumulate the path lengths of the projection curve segment set to obtain the total path length of the projection curve segment set, round up the maximum value of the elevation of the three-dimensional projection curve segment set to a certain integer, and round down the minimum value to a certain integer to obtain the display maximum value of the profile curve segment set about the axis representing the elevation direction, and normalize the projection curve segment set according to the total path length of the projection curve segment set and the rounded maximum elevation value to obtain the profile curve segment set; S3: Update the profile curve segment set after adding a new engineering profile constraint to the profile curve segment set; S4: using the profile graph and mapping relationship to denormalize the profile curve segment set into a new projected curve segment set; S5: The new projected curve segment set is used as the precise constraint of the projected surface. Combined with the range influence factor, Gaussian-weighted DSI interpolation and grid homogenization are used to smooth and homogenize the area around the projected curve segment set in the projected surface.
2. A method for real-time updating of a cross-section diagram and a complex geological model according to claim 1, characterized in that: Step S1 includes: S11: Convert the two-dimensional cutting curve into a three-dimensional cutting curve according to the virtual projection view angle position. The formula is: Where x, y, and z represent the three-dimensional coordinates of the curve; f(x, y) represents the two-dimensional section curve, and f(x, y, z) represents the three-dimensional section curve; z eye Indicates the z-axis coordinate of the virtual perspective position; S12: Discretize the continuous 3D cutting curve. The calculation formula is: Where t represents the parameter of the continuous curve; i represents the vertex index of the discretized continuous curve; n represents the number of vertices after the discretization of the continuous curve; the range of i is [0, n-1]; the range of t is [t0, t n-1 ]; t0 represents the parameter value of the left boundary of the continuous curve, t n-1 The parameter value representing the right boundary of the continuous curve; S13: Sort by the centroids of all triangles on the projected surface and construct a fast ray detection structure: Calculate the centroid of each triangle of the projected surface using the following formula: Among them, v represents the three-dimensional coordinates of each triangular vertex in the surface, v barycenter Represents the barycentric coordinates of the triangle; The centroid coordinate arrays of all triangles are divided in order according to one of the axes X, Y, and Z, and a binary tree is recursively constructed based on this. The division coordinate axes are: axis splitter =depth%3 Among them, axis splitter Indicates the partition axis, depth indicates the depth of the subtree, axis=0 indicates the X axis is used as the partition axis, axis=1 indicates the Y axis is used as the partition axis, and axis=2 indicates the Z axis is used as the partition axis; The root node of the binary tree is the mean of the barycentric coordinate arrays of all triangles of the projected surface. It is recursively constructed from bottom to top, and the AABB bounding box, the index of all triangles associated with the bounding box, and the barycentric coordinate information are stored in the child nodes for fast retrieval. Among them, the binary leaf node stores the AABB bounding box of each triangle face, and its calculation formula is: AABB i ={(x,y,z)∣min x ≤x≤max x ,my y ≤y≤max y ,my z ≤z≤max z } my x =min(A x ,B x ,C x ) max x =max(A x ,B x ,C x ) my y =min(A y ,B y ,C y ) max y =max(A y ,B y ,C y ) my z =min(A z ,B z ,C z ) max z =max(A z ,B z ,C z ) Among them, A(A x ,A y ,A z ), B(B x ,B y ,B z ) and C(C x ,C y ,C z ) represents the coordinates of the three vertices of the triangle; min x , min y , min z Indicates the minimum value of the X, Y, and Z axes of the three vertices of the triangle. x , max y , max z Indicates the maximum value of the X, Y, and Z axes of the three vertices of the triangle; i represents the index of the triangle face; AABB i Represents the AABB bounding box of a certain triangle face; max means finding the maximum value of the set, and min means finding the minimum value of the set; The sub-bounding box is calculated for non-leaf nodes of the binary tree except the root node. The calculation formula is: AABB child,j ={(x,y,z)∣P min,x ≤x≤P max,x ,P min,y ≤y≤P max,y ,P min,z ≤z≤P max,z } P min =(min(x1,x2,…x n ),min(y1,y2,…y n ),min(z1,z2,…z n )) P max =(max(x1,x2,...x n ),max(y1,y2,...y n ),max(z1,z2,...z n )) Among them, j represents the index of the AABB binary tree child node; childr ,j represents the AABB bounding box of the jth non-leaf node in the binary tree except the root node; n represents the number of child nodes under the jth child node; x1,x2,...x n Indicates the x-axis coordinate value of the next child node of the j-th child node; y1, y2, ...y n Indicates the y-axis coordinate value of the child node under the j-th child node; z1,z2,...z n Indicates the z-axis coordinate value of the child node under the j-th child node; P min (P min,x ,P min,y ,P min,z ) represents the three-dimensional coordinates of the minimum value of the AABB bounding box of the jth non-leaf node in the binary tree except the root node, P max (P max,x ,P max,y ,P max,z ) represents the three-dimensional coordinates of the maximum value of the AABB bounding box of the j-th non-leaf node in the binary tree except the root node; S14: Calculate whether the projection point set of each discrete point of the 3D discrete cutting curve on the projected surface is valid. The calculation formula is: Where, O=(o x ,o y ,o z ) represents the three-dimensional coordinates of each discrete point, t represents the distance from the ray at the vertex of the polyline, D = (d x ,d y ,d z ) represents the virtual line of sight direction; the ray calculation formula is: p(t)=O+tD Where p(t) represents any point on the ray; in, Respectively represent the minimum value of the x-axis, y-axis, and z-axis components of the ray distance emitted from each vertex position of the three-dimensional discrete cutting curve; They represent the maximum value of the x-axis, y-axis, and z-axis components of the ray emitted from each vertex position of the three-dimensional discrete cutting curve; t enter Indicates t min The maximum value in t exit Indicates t max The minimum value in ; when t enter ≤t exit And t enter ≥0, the ray intersects with the AABB, and the binary tree used for fast ray detection is recursively searched from top to bottom to calculate the minimum AABB bounding box of the triangle where the projected vertex is located; For closed surfaces with multiple z values, when a discrete point is projected within the bounding box of a child node, all bounding boxes of the child nodes of this child node are traversed; when a ray has multiple projection points, the results are combined into a projection vertex set; if it is determined that they do not intersect, the projection of the next discrete point is calculated according to the vertex order of the three-dimensional discrete section curve; S15: Intersect the ray constructed by projecting the three-dimensional discrete cutting curve with the associated triangular faces in the AABB bounding box to obtain the projected vertex set of the three-dimensional discrete cutting curve vertices. The calculation formula is: P=O+tD Among them, A, B, and C represent the coordinates of the three vertices of the triangle; N represents the normal vector of the triangle; O represents the coordinates of the starting point of the ray, D represents the unit direction vector of the ray; t represents the distance the ray is emitted; P represents the coordinates of the intersection of the ray and the triangle; after calculating the coordinates of the intersection, it is necessary to check whether it is within the triangle. The calculation formula is: Among them, (u, v, w) represents the centroid coordinates of the intersection point p relative to the triangles A, B, and C. When u ≥ 0, v ≥ 0, and w ≥ 0, it means that the intersection point value is acceptable within the triangle. If it is not acceptable, the projection of the next discrete point is calculated in sequence. S16: Calculate the projection vertex set generated in the middle of each segment of the 3D discrete cutting curve. The calculation formula is: Among them, (x, y, z) represents the three-dimensional coordinates of the projection vertex generated in the middle of each segment of the three-dimensional discrete cutting curve; A(A x ,A y ,A z ), B(B x ,B y ,B z ) and C(C x ,C y ,C z ) represents the coordinates of the three vertices of the triangle; M(M x ,M y ,M z ), N(N x ,N y ,N z ) represents the two endpoints of a segment on the 3D discrete cutting curve; t represents the parameters of the segment parametric equation after a certain edge of the triangle is projected onto the reference intersection plane; u represents the parameters of the segment parametric equation after the segment on the 3D discrete cutting curve is projected onto the reference intersection plane; the range of u is [0,1], and the range of t is [0,1]; Among them, the line segment formed by a certain side of the triangle and each segment of the three-dimensional discrete cutting curve need to be projected onto the reference intersection plane. The calculation formula is: Among them, P start , P start Represents the two endpoints of the line segment before projection; P start,proj , P end,proj Represents the two endpoints of the projected line segment; D represents the projection direction; Q represents a point on the reference intersection plane. The mean of the midpoints of the two line segments can be selected as the point on the plane. The calculation formula is: Among them, edge abc Represents an edge on a triangle; MN middle Represents the midpoint of the three-dimensional discrete section curve segment MN; When projecting vertically, the reference intersection plane is directly taken as the z = 0 plane; Traverse each segment of the 3D discrete cutting curve, start the calculation with the projection point of the starting point of the segment as the initial triangle face, and use the triangle face where the projection point of the end point of the segment is located as the triangle face where the calculation ends. Project the three sides of the triangle face onto the reference intersection plane respectively, and intersect with the projection line segment of the current segment of the 3D discrete cutting curve onto the reference intersection plane in turn. The side opposite to the side where the intersection point is located is the next triangle face that needs to be projected and calculated; project the remaining two sides of the next triangle face onto the reference intersection plane and intersect with the current segment of the 3D discrete cutting curve to obtain the next intersection point, then determine the triangle face where the side opposite to the intersection point is located, and continue searching and intersecting in this way until the triangle face where the calculation ends is traversed; Among them, when the intersection point is on the vertex of a triangle, the remaining triangles associated with the vertex are projected and intersected with the current line segment of the three-dimensional discrete cutting curve in turn to obtain the triangle where the new intersection point is located; When a hole or connectivity interruption occurs on the surface, the next segment of the 3D discrete section curve is traversed to calculate the set of projected vertices generated in the middle of the segment and mark the interrupted part. Based on the marking of the projection interruption, the complete set of projected points of each segment of the 3D discrete section curve is obtained. When multiple projection line segments are calculated for each segment of the 3D discrete cutting curve, multiple discrete projection curve segment sets are grouped respectively. After the traversal is completed, a complete discrete curve segment set of the 3D discrete cutting curve projected onto the surface is formed.
3. The method for real-time updating of a cross-section diagram and a complex geological model according to claim 1, characterized in that: Step S2 includes: S21: The total path length of the projected curve segment set is obtained by adding up the lengths of each path segment of the projected curve segment set. The calculation formula is: Among them, Curve project Represents a set of projected curve segments; Length(Curve project ) represents the total path length of the projected curve segment set; n represents the number of sub-curve segments in the projected curve segment set; m represents the number of vertices of each sub-curve in the projected curve segment set; c represents the cth sub-curve in the projected curve segment set; i represents the i-th vertex of each sub-curve in the projected curve segment set; edge i,i+1 It is represented by the length of each segment of each sub-curve; v represents the vertex on the projected curve segment set; x, y, z represent the X, Y, and Z axis coordinates of the vertex on the projected curve segment set respectively; S22: Calculate the maximum display value of the profile curve segment set about the elevation direction axis based on the vertex coordinates on the projected curve segment set. The calculation formula is: Among them, Curve project Represents a set of projected curve segments; Elvation max Indicates the maximum elevation displayed on the profile, Elvation min Indicates the minimum elevation displayed on the profile; v indicates the vertex on the shadow curve segment set; z (Curve project ,v) represents the z-axis coordinate value of the vertex on the projection curve segment set; MajorTick represents the major scale of the profile coordinate axis; S23: Normalize the projected curve segment set to the profile graph. The formula is: Among them, (x profile ,y profile ,z profile ) represents the three-dimensional coordinate value of the vertex on the projection curve segment set mapped to the cross-section; Ratio profile Indicates the display scale of the profile; d(v(x,y),v(x0,y0)) represents the path length from a vertex on the projected curve segment set to the initial vertex of the curve, and the calculation formula is: Where i represents the vertex index on the projected curve segment set; k represents the index of the k+1th vertex on the projected curve segment set; v represents the vertex on the projected curve segment set; x, y, z represent the X, Y, and Z coordinates of the vertex on the projected curve segment set respectively; x0, y0, z0 represent the X, Y, and Z coordinates of the initial vertex on the projected curve segment set respectively; the range of i is [0, k]; z profile =0 means that the cross-section is a two-dimensional cross-section in a three-dimensional space.
4. The method for real-time updating of a cross-section diagram and a complex geological model according to claim 1, wherein: Step S3 includes: S31: Update the vertex positions of the profile curve segment set according to the new position constraint. The calculation formula is: Among them, x' represents the X-axis coordinate of a vertex position constraint; y' represents the Y-axis coordinate of a vertex position constraint; z represents the z-axis coordinate of the vertex of the profile curve set; S32: Update the local accuracy of the profile curve segment set based on Gaussian interpolation. The formula is: Where N represents the number of vertices in the local range of the sub-curve segment on the profile curve segment set; i represents the vertex index in the local range of the updated sub-curve segment in the profile curve segment set; x represents the coordinate value of the newly inserted point in the length direction axis of the profile curve path, and y represents the coordinate value of the newly inserted point in the elevation direction axis of the profile; x represents the coordinate value of the newly inserted point in the elevation direction axis of the profile; i Indicates the coordinate value of the i-th vertex in the local range of the updated sub-curve segment in the profile curve segment set in the length direction of the curve path; y i Indicates the coordinate value of the i-th vertex in the elevation direction axis within the local range of the updated sub-curve segment in the profile curve segment set; Indicates the true coordinate value of the i-th vertex in the elevation direction axis within the local range of the updated sub-curve segment in the profile curve segment set; ω i (x) represents the vertex (x) in the local range of the updated sub-curve segment in the profile curve segment concentration. i ,y i ,z i ) for the weight of the newly inserted point, σ represents the vertex (x i ,y i ,z i ) in the path length direction and the standard deviation of the distance between the newly inserted point, μ represents the vertex (x i ,y i ,z i ) the mean distance between the axis and the newly inserted point in the direction of the path length; Among them, the local accuracy of the curve is used to measure the length of the curve segment and the number of data points contained in the local range of the curve. The calculation formula is: Among them, Curve acc Indicates the local accuracy index of the curve; a represents the vertex index of the left boundary of the local range of the curve, b represents the vertex index of the right boundary of the local range of the curve; i represents the vertex index of the local range of the curve; edge i,i+1 Represents the length of the i-th line segment in the local range of the curve; N represents the number of data points in the local range of the profile curve set; the size of N is updated according to the new accuracy constraint, and the calculation formula is: When a curve is divided into multiple sub-curve segments, N ≤ the number of vertices of the sub-curve segments; Based on Gaussian sampling, N new data points are sampled and old data points are deleted at the same time, and the corresponding connection relationships are updated; S33: Add curvature change constraints locally to the profile curve set to control surface mutations. The formula is: Where i represents the index of the i-th vertex in the local range of the sub-curve segment on the profile curve segment set, N represents the number of vertices in the local range of the sub-curve segment on the profile curve segment set; P i-1 represents the i-1th vertex in the local range of the sub-curve segment on the profile curve segment set, P i+1 represents the i+1th vertex in the local range of the sub-curve segment on the profile curve segment set; θ i k represents the angle between the i-th vertex and the line segment formed by the two adjacent vertices in the local range of the sub-curve segment on the profile curve segment set; i k represents the approximate local curvature of the i-th vertex in the local range of the sub-curve segment on the profile curve segment set; i Represents the local curvature maximum of the vertex in the local range of the sub-curve segment on the profile curve segment set; the range of i does not include the endpoint index in the local range of the sub-curve segment on the profile curve segment set; θ i is a radian value.
5. The method for real-time updating of a cross-section diagram and a complex geological model according to claim 1, wherein: Step S4 includes: S41: Denormalize the updated sub-curve segments on the profile curve segment set to obtain updated three-dimensional discrete projection sub-curve segments. The calculation formula is: d segment_start,v0 =d(v(x segment_start ,y segment_start ,z segment_start ),v(x0,y0,z0)) D segment =v(x segment_end ,y segment_end ,z segment_end )-v(x segment_start ,y segment_start ,z segment_start ) Among them, (x', y', z') represents the three-dimensional coordinates of the vertices on the projection curve segment set corresponding to the updated vertices on the profile curve segment set after denormalization; min Indicates the minimum value of the elevation coordinate axis on the profile; R indicates the display scale of the profile; (x profile_zero ,y pr ofile,0) represents the origin coordinate of the coordinate axis on the cross-section diagram; (x profile ,y profile ,0) represents the vertex coordinates of the profile curve segment set; v(x0,y0,z0) represents the three-dimensional coordinates of the initial vertex of the projection curve segment set; v(x segment_start ,y segment_start ,z segment_start ) represents the three-dimensional coordinates of the vertex on the projected curve segment set corresponding to the starting point of the updated line segment in the profile curve segment set after denormalization, v(x segment_end ,y segment_end ,z segment_end ) represents the three-dimensional coordinates of the vertex on the projected curve segment set corresponding to the end point of the updated profile curve segment set after denormalization; D segment Indicates the direction vector of the line segment where the profile curve segment is concentratedly updated; || D segment || indicates the modulus of the direction vector of the line segment where the profile curve segment is concentratedly updated; D segment (x) means taking D segment The X-axis coordinate value of the vector, D segment (y) means taking D segment The Y-axis coordinate value of the vector, D segment (z) means taking D segment Vector Z-axis coordinate value; Among them, d segment,v0 and d(v(x segment_start ,y segment_start ,z segment_start ), v(x0, y0, z0)) all represent the length of the curve path from the starting point of the updated line segment in the projected curve segment set to the initial vertex of the projected curve segment set; Indicates the z-axis coordinate of the vertex on the projected curve segment set after denormalization of the updated vertex on the profile curve segment set, projected onto the original line segment; R represents the length of the curve path between the vertex on the projected curve segment set after the anti-normalization of the vertex on the profile curve segment set, the vertex projected on the original line segment and the initial vertex of the projected curve segment set; v,segment_start It represents the ratio of the distance between the updated vertex on the profile curve segment set and the vertex on the corresponding projection curve segment set after denormalization and the starting point of the original segment to the total path length of the original segment; R v,segment_start (x) represents taking R v,segment_start The X-axis coordinate value of the vector, R v,segment_start (y) means taking R v,segment_start The Y-axis coordinate value of the vector.
6. The method for real-time updating of a cross-section diagram and a complex geological model according to claim 1, wherein: Step S5 includes: S51: Determine the surface triangulation range affected by the projection curve segment set based on the projection curve segment set and the range influence factor. The calculation formula is: {T k |T k insideAABB j } u=[|p x -b x |,|p y -b y |]-[x max -x min ,y max -y min ] Where n represents the number of line segments in the 3D projection curve segment set; i represents the index of the circle generated with the line segment as the diameter in the 3D projection curve segment set; j represents the index of the AABB bounding box in the surface AABB binary tree; k represents the index of the triangle face in the surface; C i represents a circle generated by the i-th line segment as the diameter in the three-dimensional projected curve segment set; Represents the union of all circles generated by the line segments in a 3D projected curve segment set; AABB j Represents the j-th AABB bounding box in the AABB tree; T k Represents all AABB j Associated triangles; r i Indicates the radius of the i-th circle; (p x ,p y ) represents the coordinates of the center of the i-th circle; (b x ,b y ) represents the center coordinates of the jth AABB bounding box; (x, y) represents the XY axis coordinates of the circle generated with the i-th line segment as the diameter in the three-dimensional projection curve segment set; (x 2i-1 ,y 2i-1 ) represents the XY coordinates of the starting point of the i-th line segment in the three-dimensional projection curve segment set; (x 2i ,y 2i ) represents the XY coordinates of the endpoint of the i-th line segment in the three-dimensional projected curve segment set; Indicates whether the union of circles generated by all line segments in the 3D projected curve segment set intersects with the j-th AABB bounding box on the AABB tree; u(u x ,u y ) represents the vector difference between the center of the i-th circle and the center point of the j-th AABB bounding box in the XY plane; X max Indicates the maximum value of the X axis of the j-th bounding box, X min Indicates the minimum value of the X axis of the j-th bounding box; Y max Indicates the maximum value of the Y axis of the j-th bounding box, Y min Indicates the minimum value of the Y axis of the j-th bounding box; Among them, the connectivity of the surface does not affect the intersection calculation between the relevant circle and the triangle face associated with the AABB bounding box; S52: adding the vertices and edges of the three-dimensional projected curve segment to the projected surface; For the case where it is not the first time to add a 3D projection curve segment set to the projection surface and the number of 3D projection curve vertices is reduced, the projection surface first deletes the corresponding redundant vertices and associated edges; The three-dimensional projected curve segments and the range boundary are used as constraint edges. Three operations are performed iteratively: splitting long edges, folding short edges, and reversing edges to balance vertex degrees. The triangular faces within the range are made as uniform as possible. The target uniform edge length is the mean of the edge lengths of all surfaces within the range. The constraint for stopping the iteration is that the difference between the edges within the range other than the constraint edges and the mean does not exceed 1%. Among them, the basis for judging the long side is the side length *Target side length; the short side is determined based on the side length *Target side length; the target side length is the average side length within the original influence range; Among them, in the reverse edge operation, the target degree of non-boundary vertices is 6, and the target degree of boundary vertices is 4; S53: Perform constrained interpolation on the triangulated network within the affected range. The calculation formula is: W II ·F I =-W IL ·F L W=μ(k)·v(k)·v(k) T d 2 (a,k)=[x(a)-x(k)] T ·D(k)·[x(a)-x(k)] Where I represents the index of the update point in the surface, L represents the index of the known constraint point in the surface; W represents the Laplace operator; W II Represents the Laplace weight between unknown points; W IL represents the Laplace weight between the unknown point and the known point; μ(k) represents the global smooth weight of vertex k; v(k) represents the weight vector of vertex k; v a (k) represents the weight value of vertex a with respect to vertex k; ∧(k) represents the number of neighboring vertices of vertex k that does not include k; |∧(k)| represents the number of neighboring vertices of vertex k that does not include k; d(a,k) represents the anisotropic distance between vertex a and vertex k; D(k) represents the anisotropic weight; x() represents the position or curvature of the vertex.
7. A computer device, characterized in that: The computer device comprises a memory (201), a processor (202), a user interface (203) and a network interface (204), wherein the memory (201) stores instructions, the user interface (203) and the network interface (204) are used to communicate with other devices, and the processor (202) is used to execute the instructions stored in the memory (201), so that the computer device performs the steps of the method according to any one of claims 1 to 6.
8. A computer-readable storage medium, characterized in that The computer program stores instructions, and when the computer program is executed by a processor, the processor executes the method according to any one of claims 1 to 6.