Runway truncation analysis method based on C # original ecological function
By using C# original ecological function to perform polygonal graphical processing and regional combination of the pits or convexes of the runway in the runway cutoff analysis method, the problem of discrete processing in the existing technology affecting the calculation efficiency and authenticity is solved, and a more efficient and accurate runway cutoff analysis is achieved.
Patent Information
- Application Number
- CN202510042129.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-10
- Publication Date
- 2025-04-29
- Estimated Expiration
- 2045-01-10
AI Technical Summary
When the existing runway cutoff analysis method discretes the pit or raised edges, the degree of sparseness affects the calculation efficiency and the authenticity of the results.
The runway cutoff analysis method based on C# original ecological function is adopted, discrete points are selected by setting the edges of the circular area in equal proportions, and the equilateral polygonal figure is constructed, and the Union function is used to perform regional joints, and a three-layer calculation cycle is established to determine whether the minimum take-off and landing rectangle is inside the runway and intersects with a pit or a convex complex.
It effectively solves the calculation time problem or information loss caused by the discretization of pits or protrusions, and improves the calculation efficiency and authenticity of the results.
Smart Images

Figure CN119904509A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of damage assessment, and in particular relates to a runway truncation analysis method based on C# native functions. Background Art
[0002] When a runway is damaged, there will be large and small pits or bumps on the road surface for aircraft takeoff and landing. It is necessary to analyze whether the damaged runway has been cut off to determine whether the aircraft has the ability to take off and land on the runway.
[0003] The existing runway truncation analysis method has the following defects:
[0004] Existing methods generally require discretization of the edges of pits or bumps. The sparseness of the discretization of the pit or bump edges will have a certain impact on the calculation results. If the edge discretization is too dense, the calculation efficiency will be reduced, and more calculation time will be consumed; if the edge discretization is too sparse, the real information of the pit or bump part will be lost, which will affect the authenticity of the final calculation result. Summary of the invention
[0005] In order to solve the problems raised in the above background technology, the present invention provides a runway truncation analysis method based on C# native functions to solve the calculation time problem or information loss problem caused by the discretization of pits or bumps in the existing runway truncation analysis method.
[0006] To achieve the above object, the present invention provides the following technical solutions:
[0007] A runway truncation analysis method based on C# native functions includes the following steps:
[0008] S1: Assume that each pit or protrusion in the runway is a circular area, discretize the edge of the circular area according to the coordinates and radius of the center point of the pit or protrusion, and select a preset number of discrete points on the edge of the circular area in equal proportion;
[0009] S2: Based on the discrete points on the edge of the pit or bulge, use the C# native function GraphicsPath to construct the equilateral polygonal graphic region_i corresponding to each pit or bulge;
[0010] S3: Use the C# native function Union to combine the equilateral polygons region_i corresponding to all the pits or bumps on the runway to obtain the combined region region_all corresponding to all the pits or bumps on the runway;
[0011] S4: Establish three-layer calculation loops and a minimum take-off and landing rectangle. The first layer of calculation loop uses the width of the runway as a loop variable, the second layer of calculation loop uses the length of the runway as a loop variable, and the third layer of calculation loop uses the deflection angle of the minimum take-off and landing rectangle as a loop variable. Set loop ranges and loop spacings for all loop variables.
[0012] S5: Perform cyclic calculation, specifically:
[0013] S5.1: respectively use the loop variables of the first-layer calculation loop, the second-layer calculation loop, and the third-layer calculation loop as the abscissa of the center point of the minimum take-off and landing rectangle, the ordinate of the center point, and the skew angle;
[0014] S5.2: Calculate the coordinates of the four vertices of the minimum take-off and landing rectangle based on the coordinates of the center point, the skew angle, the length and the width of the minimum take-off and landing rectangle;
[0015] S5.3: Determine whether the minimum take-off and landing rectangle is completely inside the runway. If it is, proceed to S5.4. If it is not, assign new values to the loop variables according to the loop interval in a preset manner and return to S5.1.
[0016] S5.4: Use the C# native function GraphicsPath to construct the quadrilateral graph region_min corresponding to the minimum take-off and landing rectangle;
[0017] S5.5: Use the C# native function Intersect to determine whether the quadrilateral graph region_min corresponding to the minimum take-off and landing rectangle intersects with the joint region region_all. If so, determine whether the loop is over. If the loop is not over, assign new values to the loop variables according to the loop interval in a preset manner and return to S5.1. If the loop is over, output the result of whether the runway is truncated. If the quadrilateral graph region_min does not intersect with the joint region region_all, exit the current loop calculation and output the result of whether the runway is not truncated.
[0018] Preferably, in S1, 16 discrete points are selected in equal proportion on the edge of the circular area.
[0019] Preferably, S4 is specifically as follows: assuming that the width and length of the runway are W and H respectively, the width and length of the minimum take-off and landing rectangle are w and h respectively, the first layer of calculation loop uses the width of the runway as the loop variable, the loop range is [1, W], and the loop spacing is The second-level calculation loop uses the length of the runway as the loop variable, the loop range is [1,H], and the loop spacing is The third-level calculation loop uses the deflection angle φ of the minimum take-off and landing rectangle as the loop variable, and the loop range is [φ min ,φ max], the cycle spacing is 1°, where the minimum value of the deflection angle φ min and the maximum value φ max The calculation formula is:
[0020] .
[0021] Preferably, the horizontal coordinate of the center point of the minimum take-off and landing rectangle is represented by x oj , the vertical axis is represented by y oj The deflection angle is represented by φ j , in S5.2, the four vertices of the minimum take-off and landing rectangle (x j1 ,y j1 )、(x j2 ,y j2 )、(x j3 ,y j3 )、(x j4 ,y j4 ) is calculated as follows:
[0022] .
[0023] Preferably, in S5.3, the specific method for determining whether the minimum take-off and landing rectangle is completely inside the runway is:
[0024] Determine whether the four vertices of the minimum take-off and landing rectangle are all inside the runway. If so, it is considered that the minimum take-off and landing rectangle is inside the runway. If not, it is considered that the minimum take-off and landing rectangle is not inside the runway. The method for determining whether each vertex of the minimum take-off and landing rectangle is inside the runway is as follows:
[0025] Connect the vertex to be judged with the four vertices of the runway with straight lines. The four sides of the runway and the four connecting lines form four triangles. Calculate the areas of the four triangles by the coordinates of the three vertices of the triangles. If the sum of the areas of the four triangles is greater than the area of the runway, the vertex is outside the runway, otherwise, the vertex is inside the runway.
[0026] Compared with the prior art, the present invention has the following beneficial effects:
[0027] This application proposes a runway truncation analysis method based on C# native functions, which discretizes the edges of pits or protrusions, uses the C# native function GraphicsPath to construct polygonal graphics corresponding to the pits or protrusions, uses the function Union to combine all polygonal graphics corresponding to the pits or protrusions, and establishes a three-layer calculation loop based on the length, width, and minimum take-off and landing rectangle deflection angle of the runway. The minimum take-off and landing rectangle is established based on the loop parameters, and it is determined whether the minimum take-off and landing rectangle is inside the runway and whether it intersects with the pit or protrusion union. If there is a non-intersecting minimum take-off and landing rectangle, the runway is considered to be not truncated; if the loop ends and no non-intersecting minimum take-off and landing rectangle is found, the runway is considered to be truncated.
[0028] Compared with the existing runway truncation analysis method, this application adopts the region construction and joint function provided by C# to determine whether two regions overlap by region intersection. The discrete points of the edges of pits or protrusions do not need to directly participate in the intersection judgment. The sparseness of the discrete edges of pits or protrusions will not have a significant impact on the calculation efficiency. Therefore, it is sufficient to select appropriate discrete points to participate in the calculation, which solves the calculation time problem or information loss problem caused by the discretization of pits or protrusions in the existing runway truncation analysis method. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 This is a flowchart of the application;
[0030] Figure 2 Schematic diagram of the edge discreteness of a pit or a protrusion. DETAILED DESCRIPTION
[0031] In order to facilitate those skilled in the art to understand the technical content of the present invention, the present invention is further described in detail below in conjunction with the accompanying drawings and specific examples. It should be understood that the specific examples described herein are only used to explain the present invention and are not used to limit the present invention.
[0032] Example 1
[0033] A runway truncation analysis method based on C# native functions, such as Figure 1 As shown, the following steps are included:
[0034] S1: Assume that each pit or protrusion in the runway is as follows Figure 2 (a) shows a circular area, such as Figure 2 (b) shows the coordinates of the center point of the circular area (x i ,y i ) and radius r iIt is known that the edge of the pit or convexity is discretized according to the coordinates and radius of the center point of the pit or convexity, 16 discrete points are selected on the edge of the pit or convexity in equal proportion, and the area of the pit or convexity is approximated by an equilateral polygon area. The selected discrete points divide the edge of the pit or convexity into 16 equal parts. The coordinates of the edge discrete points (x ij ,y ij ) is calculated as follows:
[0035] ;
[0036] Where n is the total number of pits or protrusions.
[0037] S2: Based on the discrete points on the edge of the pit or bulge, use the C# native function GraphicsPath to construct the equilateral polygonal graphic region_i corresponding to each pit or bulge. The specific construction code of the equilateral polygonal graphic region_i is as follows:
[0038] GraphicsPath region_i = new GraphicsPath(new Point[] {
[0039] (x i1 ,y i1 ), ...
[0041] (x i16 ,y i16 ),
[0042] (x i1 ,y i1 ),
[0043] }, new byte[] {
[0044] (byte)PathPointType.Start,
[0045] (byte)PathPointType.Line,
[0046] (byte)PathPointType.Line,
[0047] (byte)PathPointType.Line,
[0048] (byte)PathPointType.Line,
[0049] });
[0050] S3: Use the native C# function Union to combine all the equilateral polygon figures region_i corresponding to the pits or protrusions within the runway to obtain the combined region region_all corresponding to all the pits or protrusions on the runway;
[0051] The specific construction code is as follows:
[0052] Region region_all = new Region();
[0053] for (int i = 0; i < n; i++)
[0054] {
[0055] Region region_temp = new Region(region_i);
[0056] region_all.Union(region_temp);
[0057] };
[0058] S4: Establish a three-layer calculation loop. Assume the width and length of the runway are W and H respectively, and the width and length of the minimum takeoff and landing rectangle are w and h respectively. The first-layer calculation loop uses the width value of the runway as the loop variable, the loop range is [1, W], and the loop spacing is , the second-layer calculation loop uses the length value of the runway as the loop variable, the loop range is [1, H], and the loop spacing is , the third-layer calculation loop uses the skew angle φ of the minimum takeoff and landing rectangle as the loop variable, the loop range is [φ min , φ max , and the loop spacing is 1°. Among them, the minimum value φ min and the maximum value φ max of the skew angle φ are calculated as follows:
[0059] ;
[0060] The specific construction code is as follows:
[0061] for (float i = 1; i < W; i = i + 1 / 3 * w) / / First-layer loop
[0062] {
[0063] for (float j = 1; j < H; j = j + 1 / 3 * h) / / Second-layer loop
[0064] {
[0065] for (float k = fai_min; k < fai_max; k = k + 1) / / Third - layer loop
[0066] {
[0067] / / / Calculation part
[0068] }
[0069] }
[0070] }
[0071] S5: Perform loop calculation, specifically:
[0072] S5.1: Respectively use the loop variables of the first - layer calculation loop, the second - layer calculation loop, and the third - layer calculation loop as the abscissa x of the center point of the minimum take - off and landing rectangle oj , the ordinate y oj and the skew angle φ j ;
[0073] S5.2: Based on the center - point coordinates (x oj , y oj ), the skew angle φ j , the length h, and the width w of the minimum take - off and landing rectangle, calculate the coordinates of the four vertices (x j1 , y j1 ), (x j2 , y j2 ), (x j3 , y j3 ), (x j4 , y j4 ) of the minimum take - off and landing rectangle. The calculation formula is as follows:
[0074] ;
[0075] S5.3: Determine whether the minimum take - off and landing rectangle is completely inside the runway. If it is inside the runway, enter S5.4; if it is not inside the runway, re - assign the loop variables according to the loop spacing in a preset manner and return to S5.1;
[0076] The specific judgment method is: Determine whether all four vertices of the minimum take - off and landing rectangle are inside the runway. If so, it is considered that the minimum take - off and landing rectangle is inside the runway; if not, it is considered that the minimum take - off and landing rectangle is not inside the runway. Among them, the method for judging whether each vertex of the minimum take - off and landing rectangle is inside the runway is:
[0077] Connect the vertex to be judged with the four vertices of the runway by straight lines. The four sides of the runway and the four connecting lines form four triangles. Calculate the areas of the four triangles through the coordinates of the three vertices of the triangles. If the sum of the areas of the four triangles is greater than the area of the runway, the vertex is outside the runway; otherwise, the vertex is inside the runway.
[0078] S5.4: Use the C# native function GraphicsPath to construct the quadrilateral graph region_min corresponding to the minimum take-off and landing rectangle. The specific construction code of the quadrilateral graph region_min is as follows:
[0079] GraphicsPath region_min = new GraphicsPath(new Point[] {
[0080] (x j1 ,y j1 ),
[0081] (x j2 ,y j2 )
[0082] (x j3 ,y j3 )
[0083] (x j4 ,y j4 ),
[0084] }, new byte[] {
[0085] (byte)PathPointType.Start,
[0086] (byte)PathPointType.Line,
[0087] (byte)PathPointType.Line,
[0088] (byte)PathPointType.Line,
[0089] (byte)PathPointType.Line,
[0090] });
[0091] S5.5: Use the C# native function Intersect to determine whether the quadrilateral graph region_min corresponding to the minimum take-off and landing rectangle intersects with the joint region region_all. If so, determine whether the loop is over. If the loop is not over, assign new values to the loop variables according to the loop interval in a preset manner and return to S5.1. If the loop is over, output the result of whether the runway is truncated. If the quadrilateral graph region_min does not intersect with the joint region region_all, exit the current loop calculation and output the result of whether the runway is not truncated.
[0092] In this embodiment, compared with the existing runway truncation analysis method, the present application adopts the region construction and joint function provided by C#, and determines whether the two regions overlap by region intersection. The discrete points of the edges of pits or protrusions do not need to directly participate in the intersection judgment. The sparseness of the discrete edges of pits or protrusions will not have a great impact on the calculation efficiency. Therefore, it is sufficient to select appropriate discrete points to participate in the calculation, which solves the calculation time problem or information loss problem caused by the discretization of pits or protrusions in the existing runway truncation analysis method.
Claims
1. A runway truncation analysis method based on C# native functions, characterized in that: The following steps are involved: S1: Assume that each pit or protrusion in the runway is a circular area, discretize the edge of the circular area according to the coordinates and radius of the center point of the pit or protrusion, and select a preset number of discrete points on the edge of the circular area in equal proportion; S2: Based on the discrete points on the edge of the pit or bulge, use the C# native function GraphicsPath to construct the equilateral polygonal graphic region_i corresponding to each pit or bulge; S3: Use the C# native function Union to combine the equilateral polygons region_i corresponding to all the pits or bumps on the runway to obtain the combined region region_all corresponding to all the pits or bumps on the runway; S4: Establish three-layer calculation loops and a minimum take-off and landing rectangle. The first layer of calculation loop uses the width of the runway as a loop variable, the second layer of calculation loop uses the length of the runway as a loop variable, and the third layer of calculation loop uses the deflection angle of the minimum take-off and landing rectangle as a loop variable. Set loop ranges and loop spacings for all loop variables. S5: Perform cyclic calculation, specifically: S5.1: respectively use the loop variables of the first-layer calculation loop, the second-layer calculation loop, and the third-layer calculation loop as the abscissa of the center point of the minimum take-off and landing rectangle, the ordinate of the center point, and the skew angle; S5.2: Calculate the coordinates of the four vertices of the minimum take-off and landing rectangle based on the coordinates of the center point, the skew angle, the length and the width of the minimum take-off and landing rectangle; S5.3: Determine whether the minimum take-off and landing rectangle is completely inside the runway. If it is, proceed to S5.
4. If it is not, assign new values to the loop variables according to the loop interval in a preset manner and return to S5.
1. S5.4: Use the C# native function GraphicsPath to construct the quadrilateral graph region_min corresponding to the minimum take-off and landing rectangle; S5.5: Use the C# native function Intersect to determine whether the quadrilateral graph region_min corresponding to the minimum take-off and landing rectangle intersects with the joint region region_all. If so, determine whether the loop is over. If the loop is not over, assign new values to the loop variables according to the loop interval in a preset manner and return to S5.
1. If the loop is over, output the result of whether the runway is truncated. If the quadrilateral graph region_min does not intersect with the joint region region_all, exit the current loop calculation and output the result of whether the runway is not truncated.
2. A runway truncation analysis method based on C# native function according to claim 1, characterized in that: In S1, 16 discrete points are selected in equal proportion on the edge of the circular area.
3. A runway truncation analysis method based on C# native function according to claim 1, characterized in that: S4 is as follows: Assume that the width and length of the runway are W and H respectively, the width and length of the minimum take-off and landing rectangle are w and h respectively, the first-level calculation loop uses the width of the runway as the loop variable, the loop range is [1, W], and the loop spacing is The second-level calculation loop uses the length of the runway as the loop variable, the loop range is [1,H], and the loop spacing is The third-level calculation loop uses the deflection angle φ of the minimum take-off and landing rectangle as the loop variable, and the loop range is [φ min ,φ max ], the cycle spacing is 1°, where the minimum value of the deflection angle φ min and the maximum value φ max The calculation formula is: 。 4. A runway truncation analysis method based on C# native function according to claim 1, characterized in that: The horizontal coordinate of the center point of the minimum take-off and landing rectangle is represented by x oj , the vertical axis is represented by y oj The deflection angle is represented by φ j , in S5.2, the four vertices of the minimum take-off and landing rectangle (x j1 ,y j1 )、(x j2 ,y j2 )、(x j3 ,y j3 )、(x j4 ,y j4 ) is calculated as follows: 。 5. A runway truncation analysis method based on C# native function according to claim 1, characterized in that: In S5.3, the specific method for determining whether the minimum take-off and landing rectangle is completely inside the runway is: Determine whether the four vertices of the minimum take-off and landing rectangle are all inside the runway. If so, it is considered that the minimum take-off and landing rectangle is inside the runway. If not, it is considered that the minimum take-off and landing rectangle is not inside the runway. The method for determining whether each vertex of the minimum take-off and landing rectangle is inside the runway is as follows: Connect the vertex to be judged with the four vertices of the runway with straight lines. The four sides of the runway and the four connecting lines form four triangles. Calculate the areas of the four triangles by the coordinates of the three vertices of the triangles. If the sum of the areas of the four triangles is greater than the area of the runway, the vertex is outside the runway, otherwise, the vertex is inside the runway.
Citation Information
Patent Citations
Rapid runway truncation analysis method
CN111652071A
Design method of optimal runway strike scheme
CN112287526A
Airport target damage detection method based on satellite image
CN115546659A
Airport runway damage assessment method and system based on K-nearest neighbor convolution algorithm
CN118070638A