Wall object splicing method and device and electronic equipment

By obtaining and determining the corresponding arc contours and splicing points of the target wall object and the arc wall object, the problem of unsmooth wall splicing and difficulty in splicing of walls of different thicknesses in house design is solved, and the precise splicing and efficient design of wall objects are achieved.

CN119691856AActive Publication Date: 2025-03-25BEIJING CHENGSHI WANGLIN INFORMATION TECH CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
CN202411746747.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-29
Publication Date
2025-03-25
Estimated Expiration
2044-11-29

AI Technical Summary

Technical Problem

In house design, there are problems such as unsmoothing splicing at the walls, difficulty in splicing walls of different thicknesses, difficulty in splicing straight walls and arc walls, and complex splicing algorithms and low computing efficiency.

Method used

By obtaining the arc wall object associated with the starting point and the arc wall object associated with the end point, determine the target arc outline and splicing point to achieve accurate splicing of the wall object.

Benefits of technology

The precise splicing of straight walls and arc walls of different thicknesses is achieved, the design efficiency is improved, the accuracy and usability of the building model is enhanced, and the visual effect is smooth and natural.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119691856A_ABST
    Figure CN119691856A_ABST
Patent Text Reader

Abstract

The invention provides a wall object splicing method and device and electronic equipment. The method comprises the steps of obtaining M first arc wall objects associated with a starting point of a target wall object in a straight wall form and N second arc wall objects associated with an end point; determining two target arc-shaped contours matched with the target wall body object on the starting point side in the M first arc wall objects, and determining two target arc-shaped contours matched with the target wall body object on the terminal point side in the N second arc wall objects; determining a first group of splicing points according to the intersection condition of the target arc-shaped contour on the starting point side and the left and right wall edges on the starting point side of the target wall object, and determining a second group of splicing points according to the intersection condition of the target arc-shaped contour on the end point side and the left and right wall edges on the end point side of the target wall object; and determining the wall splicing shape of the target wall object according to the two groups of splicing points, the starting point and the ending point. According to the method, the multi-wall connection condition can be automatically processed, accurate splicing of straight walls and arc walls with different thicknesses is achieved, and the design efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of decoration design, and in particular to a wall object splicing method, device and electronic equipment. Background Art

[0002] In the housing design scenario, architectural design software is used to design doors, windows, walls and other objects. When designing wall objects, there is a situation of wall splicing. At present, when dealing with the splicing of walls of different thicknesses, the following problems often occur:

[0003] 1. The joints are not smooth, and gaps or overlaps often occur between walls, resulting in unsatisfactory joint effects and affecting appearance and functionality; 2. The joints of walls of different thicknesses cannot be effectively handled; 3. It is difficult to achieve precise joints between straight walls and curved walls; 4. The joint algorithm is complex and the calculation efficiency is low.

[0004] Due to the above-mentioned problems in wall splicing, the house design efficiency is low and design errors are prone to occur, which in turn affects the design effect. Summary of the invention

[0005] In view of the above problems, embodiments of the present application provide a wall object splicing method, device and electronic device that overcome the above problems or at least partially solve the above problems.

[0006] In a first aspect, an embodiment of the present application provides a wall object splicing method, comprising:

[0007] Acquire M first arc wall objects associated with the starting point of the target wall object and N second arc wall objects associated with the end point, wherein the target wall object is a straight wall object, and both M and N are integers greater than or equal to 1;

[0008] Determine a first target arc contour and a second target arc contour that match the left and right wall edges on the starting point side of the target wall object among the M first arc wall objects, and determine a third target arc contour and a fourth target arc contour that match the left and right wall edges on the ending point side of the target wall object among the N second arc wall objects;

[0009] Determine a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour, and the left wall side and the right wall side of the starting point side of the target wall object; determine a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour, and the left wall side and the right wall side of the end point side of the target wall object;

[0010] A wall splicing shape corresponding to when the target wall object is spliced ​​with the arc wall object is determined according to the first group of splicing points, the second group of splicing points, the starting point and the end point.

[0011] In a second aspect, an embodiment of the present application provides a wall object splicing device, comprising:

[0012] An acquisition module, used to acquire M first arc wall objects associated with a starting point of a target wall object and N second arc wall objects associated with an end point, wherein the target wall object is a straight wall object, and M and N are both integers greater than or equal to 1;

[0013] A first determination module is used to determine a first target arc contour and a second target arc contour that match the left and right wall edges on the starting point side of the target wall object among the M first arc wall objects, and to determine a third target arc contour and a fourth target arc contour that match the left and right wall edges on the ending point side of the target wall object among the N second arc wall objects;

[0014] A second determination module is used to determine a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour and the left wall side and the right wall side of the starting point side of the target wall object, and determine a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour and the left wall side and the right wall side of the end point side of the target wall object;

[0015] The third determination module is used to determine the wall splicing shape corresponding to the splicing of the target wall object and the arc wall object according to the first group of splicing points, the second group of splicing points, the starting point and the end point.

[0016] In a third aspect, an embodiment of the present application provides an electronic device, comprising a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein when the computer program is executed by the processor, the steps of the wall object splicing method described in the first aspect above are implemented.

[0017] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the wall object splicing method described in the first aspect are implemented.

[0018] The technical solution of the embodiment of the present application, after obtaining M first arc wall objects associated with the starting point of the target wall object and N second arc wall objects associated with the end point, a first target arc contour matching the left wall side of the starting point side of the target wall object and a second target arc contour matching the right wall side of the starting point side of the target wall object are determined in the M first arc wall objects, and a third target arc contour matching the left wall side of the end point side of the target wall object and a fourth target arc contour matching the right wall side of the end point side of the target wall object are determined in the N second arc wall objects, and according to the intersection of the first target arc contour and the second target arc contour with the left and right walls on the starting point side of the target wall object, Determine a first set of splicing points, determine a second set of splicing points according to the intersection of the third target arc profile and the fourth target arc profile with the left and right walls on the end point side of the target wall object, and determine the wall splicing shape of the target wall object according to the two sets of splicing points, the starting point and the end point. This can automatically handle complex multi-wall intersections and achieve precise splicing of straight walls and arc walls of different thicknesses, thereby meeting the splicing requirements of various wall thicknesses and angles in different complex situations, visually achieving a smooth and natural splicing effect and improving the aesthetics. While achieving automation and precision in wall splicing, it greatly improves design efficiency and enhances the accuracy and usability of building models. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 A schematic diagram showing a wall object splicing method provided in an embodiment of the present application;

[0020] Figure 2 A schematic diagram showing a method for determining a first unit vector provided in an embodiment of the present application;

[0021] Figure 3 A schematic diagram showing a method for determining a target arc profile provided by an embodiment of the present application;

[0022] Figure 4 A schematic diagram showing determination of splicing points based on intersection points provided in an embodiment of the present application;

[0023] Figure 5A Schematic diagram of determining a splicing point provided in an embodiment of the present application Figure 1 ;

[0024] Figure 5B Schematic diagram of determining a splicing point provided in an embodiment of the present application Figure 2 ;

[0025] Figure 6 A schematic diagram showing a method of searching for a suitable arc profile provided in an embodiment of the present application;

[0026] Figure 7 A flowchart showing an implementation of the wall object splicing method provided in an embodiment of the present application;

[0027] Figure 8 A schematic diagram showing a wall object splicing device provided in an embodiment of the present application;

[0028] Fig. 9 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0029] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0030] It should be understood that the "one embodiment" or "an embodiment" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. The multiple in the embodiments of the present application can include two and more than two.

[0031] In the various embodiments of the present application, it should be understood that the size of the serial numbers of the following processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0032] The present application embodiment provides a wall object splicing method, such as Figure 1 As shown, the method includes:

[0033] Step 101: Obtain M first arc wall objects associated with the starting point of a target wall object and N second arc wall objects associated with the end point, where the target wall object is a straight wall object, and both M and N are integers greater than or equal to 1.

[0034] The wall object splicing method provided in the embodiment of the present application is applied to the scene of splicing a straight wall object (target wall object) with a curved wall object. For the straight wall target wall object, when performing wall splicing based on the starting point and the end point of the target wall object, M first curved wall objects associated with the starting point of the target wall object and N second curved wall objects associated with the end point of the target wall object are obtained, and the values ​​of M and N are both integers greater than or equal to 1.

[0035] The M first arc wall objects associated with the starting point of the target wall object are adjacent wall objects determined based on the starting point of the target wall object, the number of adjacent wall objects is one or more, and the adjacent wall objects are in arc wall form. The N second arc wall objects associated with the end point of the target wall object are adjacent wall objects determined based on the end point of the target wall object, the number of adjacent wall objects is one or more, and the adjacent wall objects are in arc wall form. In the case where there is no adjacent wall object, splicing is not required at this time.

[0036] For wall objects (such as straight wall objects and arc wall objects), the wall contour points can be determined based on their starting point, end point and wall thickness information. The wall contour refers to the boundary of the wall. The wall contour points determined based on the starting point, end point and wall thickness information include 4 contour points on the wall boundary. The starting point and end point of the wall object are located on the center line of the wall. For example, the starting point (start), end point (end) and wall thickness (thickness) information of the target wall object are obtained, and the wall contour points are calculated based on the above information: startTop, startBottom, endTop, endBottom. Among them, if the starting point of the target wall object has no associated adjacent wall object, startTop and startBottom are added to the target array to participate in the subsequent key point sorting. If the end point of the target wall object has no associated adjacent wall object, endTop and endBottom are added to the target array to participate in the subsequent key point sorting.

[0037] For the arc wall object, the corresponding arc wall data includes: starting point, end point, center, radius, top center and wall thickness. The center is the center of the circle where the arc wall object is located, and the top center is the midpoint on the arc centerline determined based on the starting point and end point.

[0038] Step 102: Determine a first target arc profile and a second target arc profile that match the left and right wall edges on the starting point side of the target wall object among the M first arc wall objects, and determine a third target arc profile and a fourth target arc profile that match the left and right wall edges on the ending point side of the target wall object among the N second arc wall objects.

[0039] After obtaining M first arc wall objects associated with the starting point of the target wall object and N second arc wall objects associated with the end point of the target wall object, left and right wall classification is performed for the M first arc wall objects, and the left wall and the right wall are determined on the starting point side of the target wall object, and then the first target arc contour that matches the left wall edge on the starting point side of the target wall object and the second target arc contour that matches the right wall edge on the starting point side of the target wall object are determined; left and right wall classification is performed for the N second arc wall objects, and the left wall and the right wall are determined on the end point side of the target wall object, and then the third target arc contour that matches the left wall edge on the end point side of the target wall object and the fourth target arc contour that matches the right wall edge on the end point side of the target wall object are determined.

[0040] It should be noted that, on the starting point side of the target wall object, the left and right walls and the left and right wall sides are distinguished according to the vector from the starting point to the end point. The wall object on the left side of the vector (the straight line indicated by the vector) is the left wall, the wall object on the right side of the vector (the straight line indicated by the vector) is the right wall, the wall side on the left side of the vector (the straight line indicated by the vector) is the left wall side, and the wall side on the right side of the vector (the straight line indicated by the vector) is the right wall. Correspondingly, on the end point side of the target wall object, the left and right walls and the left and right wall sides are distinguished according to the vector from the end point to the starting point. The wall object on the left side of the vector (the straight line indicated by the vector) is the left wall, the wall object on the right side of the vector (the straight line indicated by the vector) is the right wall, the wall side on the left side of the vector (the straight line indicated by the vector) is the left wall side, and the wall side on the right side of the vector (the straight line indicated by the vector) is the right wall. Among them, the directions corresponding to the vector from the starting point to the end point and the vector from the end point to the starting point are opposite.

[0041] In an embodiment of the present application, the left wall side and the right wall side of the starting point side of the target wall object are determined based on the vector pointing from the starting point to the end point, and the left wall side and the right wall side of the end point side of the target wall object are determined based on the vector pointing from the end point to the starting point.

[0042] Among them, after the left and right walls are classified for the M first arc wall objects, the first target arc contour that matches the left wall side of the starting point side of the target wall object is determined in the left wall corresponding to the starting point side, and the second target arc contour that matches the right wall side of the starting point side of the target wall object is determined in the right wall corresponding to the starting point side. After the left and right walls are classified for the N second arc wall objects, the third target arc contour that matches the left wall side of the end point side of the target wall object is determined in the left wall corresponding to the end point side, and the fourth target arc contour that matches the right wall side of the end point side of the target wall object is determined in the right wall corresponding to the end point side.

[0043] Step 103: Determine a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour, and the left wall edge and the right wall edge on the starting point side of the target wall object, and determine a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour, and the left wall edge and the right wall edge on the end point side of the target wall object.

[0044] After determining the first target arc contour and the second target arc contour on the starting point side, a first group of splicing points associated with the starting point is determined based on the intersection of the first target arc contour with the left wall side of the starting point side of the target wall object and the intersection of the second target arc contour with the right wall side of the starting point side of the target wall object; after determining the third target arc contour and the fourth target arc contour on the end point side, a second group of splicing points associated with the end point is determined based on the intersection of the third target arc contour with the left wall side of the end point side of the target wall object and the intersection of the fourth target arc contour with the right wall side of the end point side of the target wall object.

[0045] The determination of the second group of splicing points associated with the end point and the determination of the first group of splicing points associated with the start point may be a parallel process, or one group of splicing points may be determined before the other group of splicing points are determined, which will not be described in detail here.

[0046] Step 104: Determine a wall splicing shape corresponding to the target wall object and the arc wall object when they are spliced ​​together according to the first group of splicing points, the second group of splicing points, the starting point, and the end point.

[0047] After obtaining a first set of splicing points at an associated starting point and a second set of splicing points at an associated end point, a wall splicing shape corresponding to the target wall object when the target wall object is finally spliced ​​with the first arc wall object and the second arc wall object is determined according to the first set of splicing points, the second set of splicing points, the starting point and the end point of the target wall object, so that high-quality wall splicing can be performed based on the wall splicing shape.

[0048] In the above implementation scheme of the present application, after acquiring M first arc wall objects associated with the starting point of the target wall object and N second arc wall objects associated with the end point, a first target arc contour matching the left wall side of the starting point side of the target wall object and a second target arc contour matching the right wall side of the starting point side of the target wall object are determined in the M first arc wall objects, and a third target arc contour matching the left wall side of the end point side of the target wall object and a fourth target arc contour matching the right wall side of the end point side of the target wall object are determined in the N second arc wall objects, and according to the first target arc contour and the second target arc contour matching the target wall object, The first group of splicing points is determined by the intersection of the left and right walls on the starting point side, and the second group of splicing points is determined according to the intersection of the third target arc profile and the fourth target arc profile with the left and right walls on the end point side of the target wall object. The wall splicing shape of the target wall object is determined according to the two groups of splicing points, the starting point and the end point. The complex intersection of multiple walls can be automatically processed, and the precise splicing of straight walls and curved walls of different thicknesses is achieved. Visually, the splicing effect is smooth and natural, and the aesthetics is improved. While realizing the automation and precision of wall splicing, the design efficiency is greatly improved, and the accuracy and usability of the building model are enhanced.

[0049] As an optional embodiment of the present application, the first target arc contour is located in the first array, and the second target arc contour is located in the second array. On the starting point side of the target wall object, the first array stores the first arc wall object on the left side, and the second array stores the first arc wall object on the right side. The first array and the second array are divided based on a first unit vector corresponding to the first arc wall object. The first unit vector is a unit vector corresponding to the tangent vector with a smaller angle with the first target vector among the two tangent vectors corresponding to the first arc wall object at the starting point. The first target vector is determined based on the starting point and the arc center point of the first arc wall object.

[0050] The third target arc contour is located in the third array, and the fourth target arc contour is located in the fourth array. On the end point side of the target wall object, the third array stores the second arc wall object on the left, and the fourth array stores the second arc wall object on the right. The third array and the fourth array are divided based on the second unit vector corresponding to the second arc wall object. The second unit vector is the unit vector corresponding to the tangent vector with the smaller angle between the two tangent vectors corresponding to the second arc wall object at the end point and the second target vector. The second target vector is determined based on the end point and the arc center point of the second arc wall object.

[0051] In this embodiment, the first array and the second array are associated with the starting point of the target wall object. The first array stores the first arc wall object located on the left side of the starting point of the target wall object (specifically, on the left side of the straight line indicated by the vector from the starting point to the end point), and the second array stores the first arc wall object located on the right side of the starting point of the target wall object (specifically, on the right side of the straight line indicated by the vector from the starting point to the end point). Since the first array stores the neighboring wall objects on the left side of the starting point, the first array can be represented as leftWalls array 1; since the second array stores the neighboring wall objects on the right side of the starting point, the second array can be represented as rightWalls array 1. And since the first array stores the neighboring wall on the left side, on the starting point side, the first target arc contour that matches the left wall side of the target wall object is located in the first array, and since the second array stores the neighboring wall on the right side, on the starting point side, the second target arc contour that matches the right wall side of the target wall object is located in the second array.

[0052] For each of the M first arc wall objects, it corresponds to a first unit vector. The first unit vector is the unit vector corresponding to one of the two tangent vectors corresponding to the first arc wall object at the starting point. Specifically, among the two tangent vectors, the unit vector corresponding to the tangent vector with the smaller angle with the first target vector is the first unit vector. For each first arc wall object, it also corresponds to a first target vector. The first target vector corresponding to the first arc wall object is determined based on the starting point and the arc center point of the first arc wall object. The arc center point is the midpoint on the arc center line determined based on the starting point and the end point, also called the top center. As an example, Figure 2 As shown, Figure 2 The two tangent vectors corresponding to the arc wall object at the starting point are vector a and vector b (for example, vector a and vector b are both unit vectors). The angle between vector a and the first target vector c is smaller than the angle between vector b and the first target vector c. Therefore, vector a is the first unit vector.

[0053] Correspondingly, the third array and the fourth array are associated with the end point of the target wall object. The third array stores the second arc wall object located on the left side of the end point of the target wall object (specifically, on the left side of the straight line indicated by the vector from the end point to the starting point), and the fourth array stores the second arc wall object located on the right side of the end point of the target wall object (specifically, on the right side of the straight line indicated by the vector from the end point to the starting point). Since the third array stores the neighboring wall objects on the left side of the end point, the third array can be represented as leftWalls array 2; since the fourth array stores the neighboring wall objects on the right side of the end point, the fourth array can be represented as rightWalls array 2. And since the third array stores the neighboring wall on the left side, on the end point side, the third target arc contour matching the left wall side of the target wall object is located in the third array, and since the fourth array stores the neighboring wall on the right side, on the end point side, the fourth target arc contour matching the right wall side of the target wall object is located in the fourth array.

[0054] For each of the N second arc wall objects, it corresponds to a second unit vector, and the second unit vector is the unit vector corresponding to one of the two tangent vectors corresponding to the second arc wall object at the end point, specifically: the unit vector corresponding to the tangent vector with the smaller angle with the second target vector among the two tangent vectors is the second unit vector. For each second arc wall object, it also corresponds to a second target vector, and the second target vector corresponding to the second arc wall object is determined based on the end point and the arc center point of the second arc wall object.

[0055] The above content introduces the first array and the second array of the associated starting point, the third array and the fourth array of the associated end point, and the unit vector and the target vector corresponding to the arc wall object. The following introduces how to classify the wall based on the unit vector and determine the target arc contour in the array.

[0056] Among them, when determining the first target arc contour and the second target arc contour matching the left and right wall edges on the starting point side of the target wall object in the M first arc wall objects, and determining the third target arc contour and the fourth target arc contour matching the left and right wall edges on the ending point side of the target wall object in the N second arc wall objects, it includes:

[0057] Based on the first vector and the first unit vector corresponding to the first arc wall object, the M first arc wall objects are classified into left and right walls, a first array and a second array are determined, and a first target arc contour matching the left wall side of the starting point side of the target wall object is determined in the first array, and a second target arc contour matching the right wall side of the starting point side of the target wall object is determined in the second array;

[0058] Based on the second vector and the second unit vector corresponding to the second arc wall object, classify the N second arc wall objects into left and right walls, determine a third array and a fourth array, and determine a third target arc contour matching the left wall side of the end point side of the target wall object in the third array, and determine a fourth target arc contour matching the right wall side of the end point side of the target wall object in the fourth array;

[0059] The first vector is a vector pointing from the starting point to the end point, and the second vector is a vector pointing from the end point to the starting point.

[0060] For the M first arc wall objects on the starting point side, based on the first vector (the vector from the starting point of the target wall object to the end point) and the first unit vectors corresponding to each first arc wall object, the M first arc wall objects are classified into left and right walls, and the left wall is stored in the first array and the right wall is stored in the second array, so as to determine the first array for storing the first arc wall objects on the left side of the target wall object on the starting point side and the second array for storing the first arc wall objects on the right side of the target wall object on the starting point side. In the initial case, the first array and the second array are empty arrays. When determining the first unit vector corresponding to the first arc wall object, the angles between the two tangent vectors corresponding to the first arc wall object at the starting point and the first target vector are calculated, and the unit vector corresponding to the tangent vector with the smaller angle is determined as the first unit vector.

[0061] After determining the first array, a first target arc profile matching the left wall side of the starting point side of the target wall object is determined in the first array; after determining the second array, a second target arc profile matching the right wall side of the starting point side of the target wall object is determined in the second array.

[0062] For the N second arc wall objects on the end point side, based on the second vector (the vector from the end point of the target wall object to the starting point) and the second unit vectors corresponding to each second arc wall object, the N second arc wall objects are classified as left and right walls, and the left wall is stored in the third array and the right wall is stored in the fourth array, so as to determine the third array for storing the second arc wall objects on the left side of the target wall object on the end point side and the fourth array for storing the second arc wall objects on the right side of the target wall object on the end point side. In the initial case, the third array and the fourth array are empty arrays. When determining the second unit vector corresponding to the second arc wall object, the angles between the two tangent vectors corresponding to the second arc wall object at the end point and the second target vector are calculated, and the unit vector corresponding to the tangent vector with the smaller angle is determined as the second unit vector.

[0063] After determining the third array, a third target arc profile matching the left wall side of the target wall object end point side is determined in the third array; after determining the fourth array, a fourth target arc profile matching the right wall side of the target wall object end point side is determined in the fourth array.

[0064] In the above implementation scheme, the left and right walls of the arc wall object are classified according to the unit vector and the vector determined based on the starting point and the end point. After the first array and the second array associated with the starting point and the third array and the fourth array associated with the end point are determined through wall classification, the corresponding target arc contour is screened in each array, and then the contour lines that are adapted to the left and right walls of the target wall object are determined on the starting point side and the end point side.

[0065] For the M first arc wall objects on the starting point side, based on the first vector and the first unit vector corresponding to the first arc wall object, the M first arc wall objects are classified into left and right walls, a first array and a second array are determined, and a first target arc contour matching the left wall side of the starting point side of the target wall object is determined in the first array, and a second target arc contour matching the right wall side of the starting point side of the target wall object is determined in the second array, including:

[0066] For each first arc wall object, according to the cross product operation result of the first vector and the first unit vector corresponding to the first arc wall object, the positional relationship between the first arc wall object and the target wall object is identified, and the left and right walls are classified to determine the first array and the second array;

[0067] In each first arc wall object of the first array, a first arc contour adjacent to the left wall side of the starting point side of the target wall object is determined, and based on the angle information between the first unit vector corresponding to the first arc contour and the first vector, a first target arc contour closest to the left wall side of the starting point side of the target wall object is determined;

[0068] In each first arc wall object of the second array, a first arc contour adjacent to the right wall edge of the starting point side of the target wall object is determined, and based on the angle information between the first unit vector corresponding to the first arc contour and the first vector, a second target arc contour closest to the right wall edge of the starting point side of the target wall object is determined.

[0069] On the starting point side, for each of the M first arc wall objects, a vector cross multiplication operation is performed based on the first vector and the first unit vector corresponding to the first arc wall object, and the positional relationship between the first arc wall object corresponding to the first unit vector and the target wall object is identified based on the operation result to determine whether the first arc wall object is on the left or right side of the target wall object.

[0070] Among them, when the result of the cross product operation is less than 0, it indicates that the first unit vector is in the clockwise direction of the first vector (clockwise within the range of 180 degrees), that is, the first arc wall object corresponding to the first unit vector is on the right side of the target wall object. When the result of the cross product operation is greater than 0, it indicates that the first unit vector is in the counterclockwise direction of the first vector (counterclockwise within the range of 180 degrees), that is, the first arc wall object corresponding to the first unit vector is on the left side of the target wall object, thereby realizing the left and right wall classification based on the cross product operation result.

[0071] After dividing the M first arc wall objects on the starting side into left and right walls, in each first arc wall object in the first array, determine the first arc contour adjacent to the left wall side of the starting side of the target wall object to obtain at least one first arc contour, and then determine the first target arc contour closest to the left wall side of the starting side of the target wall object in the at least one first arc contour based on the dot multiplication operation. Wherein, when determining the first target arc contour, based on the angle information between the first unit vector corresponding to at least one first arc contour and the first vector, determine the first unit vector with the smallest angle with the first vector, and determine the first arc contour corresponding to the determined first unit vector as the first target arc contour, so as to determine the first target arc contour closest to the left wall side of the starting side of the target wall object. The angle information between the first unit vector and the first vector is determined based on the vector angle formula related to the vector dot multiplication operation.

[0072] Correspondingly, in each first arc wall object of the second array, a first arc contour adjacent to the right wall edge of the starting point side of the target wall object is determined to obtain at least one first arc contour, and then based on a dot multiplication operation, a second target arc contour closest to the right wall edge of the starting point side of the target wall object is determined in at least one first arc contour.

[0073] As an example, Figure 3 As shown, the starting point side of the target wall object has a first arc wall object a and a first arc wall object b, and two first arc contours (contours indicated by arrows in the figure) adjacent to the wall edge A (left wall edge) of the target wall object are determined in the two arc wall objects, and an angle calculation is performed based on the dot product operation of the first unit vectors corresponding to the two first arc contours (i.e., the first unit vectors corresponding to the two arc walls) and the first vector (the vector pointing from the starting point to the end point), and the first arc contour corresponding to the first unit vector with the smallest angle (the outer contour corresponding to the first arc wall object b) is determined as the target arc contour.

[0074] For the N second arc wall objects on the end point side, based on the second vector and the second unit vector corresponding to the second arc wall object, the N second arc wall objects are classified into left and right walls, a third array and a fourth array are determined, and a third target arc contour matching the left wall side of the end point side of the target wall object is determined in the third array, and a fourth target arc contour matching the right wall side of the end point side of the target wall object is determined in the fourth array, including:

[0075] For each second arc wall object, according to the cross product operation result of the second vector and the second unit vector corresponding to the second arc wall object, the positional relationship between the second arc wall object and the target wall object is identified, the left wall is classified, and the third array and the fourth array are determined;

[0076] In each second arc wall object of the third array, a second arc contour adjacent to the left wall side of the end point side of the target wall object is determined, and based on the angle information between the second unit vector corresponding to the second arc contour and the second vector, a third target arc contour closest to the left wall side of the end point side of the target wall object is determined;

[0077] In each second arc wall object of the fourth array, a second arc contour adjacent to the right wall side of the target wall object end point side is determined, and based on the angle information between the second unit vector corresponding to the second arc contour and the second vector, a fourth target arc contour closest to the right wall side of the target wall object end point side is determined.

[0078] On the end point side, for each of the N second arc wall objects, a vector cross multiplication operation is performed based on the second vector and the second unit vector corresponding to the second arc wall object, and the positional relationship between the second arc wall object corresponding to the second unit vector and the target wall object is identified based on the operation result to determine whether the second arc wall object is on the left or right side of the target wall object.

[0079] Among them, when the result of the cross product operation is less than 0, it indicates that the second unit vector is in the clockwise direction of the second vector (clockwise within the range of 180 degrees), that is, the second arc wall object corresponding to the second unit vector is on the right side of the target wall object. When the result of the cross product operation is greater than 0, it indicates that the second unit vector is in the counterclockwise direction of the second vector (counterclockwise within the range of 180 degrees), that is, the second arc wall object corresponding to the second unit vector is on the left side of the target wall object, thereby realizing the left and right wall classification based on the cross product operation result.

[0080] After dividing the N second arc wall objects on the end point side into left and right walls, in each second arc wall object in the third array, determine the second arc contour adjacent to the left wall side of the end point side of the target wall object to obtain at least one second arc contour, and then determine the third target arc contour closest to the left wall side of the end point side of the target wall object in the at least one second arc contour based on the dot product operation. Correspondingly, in each second arc wall object in the fourth array, determine the second arc contour adjacent to the right wall side of the end point side of the target wall object to obtain at least one second arc contour, and then determine the fourth target arc contour closest to the right wall side of the end point side of the target wall object in the at least one second arc contour based on the dot product operation.

[0081] In the above implementation scheme, the left and right walls are classified based on the cross product operation of the vector. After the left and right walls are classified and the corresponding array is determined, the arc contours adjacent to the left wall or right wall of the target wall object are screened in the array, and the final target arc contour is determined based on the vector dot product operation to determine the target arc contour that is compatible with the left and right walls of the target wall object.

[0082] After the target arc contour is determined in the array, it is necessary to determine the splicing points based on the target arc contour. In an optional embodiment of the present application, a first group of splicing points associated with the starting point is determined according to the intersection of the first target arc contour, the second target arc contour, and the left wall side and the right wall side of the starting point side of the target wall object, and a second group of splicing points associated with the end point is determined according to the intersection of the third target arc contour, the fourth target arc contour, and the left wall side and the right wall side of the end point side of the target wall object, including:

[0083] Determine a first group of splicing points associated with the starting point based on the intersection of a first circle where the first target arc contour is located and a straight line where the left wall of the target wall object is located on the starting point side, and the intersection of a second circle where the second target arc contour is located and a straight line where the right wall of the target wall object is located on the starting point side;

[0084] Based on the intersection of the third circle where the third target arc contour is located and the straight line where the left wall side of the target wall object end point side is located, and the intersection of the fourth circle where the fourth target arc contour is located and the straight line where the right wall side of the target wall object end point side is located, a second group of splicing points associated with the end point are determined.

[0085] After determining the first target arc contour and the second target arc contour on the starting point side, and determining the third target arc contour and the fourth target arc contour on the end point side, on the starting point side, a first circle is determined based on the first target arc contour, and a second circle is determined based on the second target arc contour, and a first group of splicing points associated with the starting point is determined according to the intersection of the first circle with the straight line where the left wall of the target wall object is located, and the intersection of the second circle with the straight line where the right wall of the target wall object is located. On the end point side, a third circle is determined based on the third target arc contour, and a fourth circle is determined based on the fourth target arc contour, and a second group of splicing points associated with the end point is determined according to the intersection of the third circle with the straight line where the left wall of the target wall object is located, and the intersection of the fourth circle with the straight line where the right wall of the target wall object is located. It should be noted that since the first vector from the starting point to the end point and the second vector from the end point to the starting point indicate opposite directions, the first vector and the second vector are used to distinguish between the left and right walls, and therefore, the straight line where the left wall on the starting point side is located is the straight line where the right wall on the end point side is located.

[0086] Wherein, when determining the first group of splicing points according to the intersection of the first circle with the straight line where the left wall side of the starting point side of the target wall object is located, and the intersection of the second circle with the straight line where the right wall side of the starting point side of the target wall object is located, it includes:

[0087] identifying a first intersection point of the first circle and the associated straight line, and a second intersection point of the second circle and the associated straight line;

[0088] Determine the splicing point corresponding to the left wall side of the starting point of the target wall object according to the number of the first intersection points, and determine the splicing point corresponding to the right wall side of the starting point of the target wall object according to the number of the second intersection points;

[0089] The first group of splicing points is determined according to the splicing points corresponding to the left wall side of the starting point side of the target wall object and the splicing points corresponding to the right wall side of the starting point side of the target wall object.

[0090] The first circle and the straight line where the left wall of the target wall object on the starting side are located may correspond to 0 first intersections, 1 first intersection or 2 first intersections, and a corresponding strategy is used to determine the splicing points corresponding to the left wall of the target wall object on the starting side based on the number of first intersections; the second circle and the straight line where the right wall of the target wall object on the starting side are located may correspond to 0 second intersections, 1 second intersection or 2 second intersections, and a corresponding strategy is used to determine the splicing points corresponding to the right wall of the target wall object on the starting side based on the number of second intersections. After determining the splicing points corresponding to the left wall of the target wall object on the starting side and the splicing points corresponding to the right wall of the target wall object on the starting side, the first group of splicing points can be determined.

[0091] Among them, for the first intersection, if the number of first intersections is 0, the contour point corresponding to the left wall side of the starting point side of the target wall object is determined as the splicing point; if the number of first intersections is 1, the first intersection is determined as the splicing point; if the number of first intersections is 2, the first intersection closest to the starting point is determined as the splicing point, or, in response to the equal distance between the two first intersections and the starting point, the angle between the two intersection vectors corresponding to the two first intersections and the first unit vector corresponding to the first target arc contour is calculated, and the first intersection corresponding to the intersection vector with the smaller angle is determined as the splicing point, and the intersection vector is determined based on the starting point and the first intersection.

[0092] If the first circle has no intersection with the straight line where the left wall of the target wall object is located, the contour point corresponding to the left wall of the target wall object is determined as the splicing point. If the first circle has one and only one intersection (first intersection) with the straight line where the left wall of the target wall object is located, the intersection is determined as the splicing point. If the first circle has two intersections (first intersections) with the straight line where the left wall of the target wall object is located, the intersection closest to the starting point is determined among the two intersections, and the intersection is determined as the splicing point; if the distances between the two intersections and the starting point are the same, the corresponding intersection vectors are determined for the two intersections (determined based on the starting point and the first intersection), the angle between the intersection vector and the first unit vector corresponding to the first target arc contour is calculated, and the first intersection corresponding to the intersection vector with the smaller angle is determined as the splicing point.

[0093] The following describes the process of determining the splicing point when the distances between the two intersection points and the starting point are the same. Figure 4As shown, on the starting point side, the first circle where the first target arc-shaped contour adapted to the left wall side of the target wall object is located and the straight line where the left wall side of the target wall object is located have two intersection points (intersection point a and intersection point b), and the distances between the two intersection points and the starting point are equal. Then, intersection vector 1 is determined based on the starting point and intersection point a, and intersection vector 2 is determined based on the starting point and intersection point b. Since the angle between intersection vector 1 and the first unit vector is small, intersection point a is determined as the splicing point.

[0094] For the second target arc contour that matches the right wall edge on the starting point side of the target wall object, the intersection of the second circle in which it is located and the straight line where the right wall edge of the target wall object is located is one of the following: there is no second intersection point, there is 1 second intersection point, there are 2 second intersection points. For the processing of different numbers of second intersection points, refer to the processing process of the first intersection point.

[0095] As an example, Figure 5A As shown, on the starting point side, the second circle where the second target arc contour adapted to the right wall side of the target wall object is located has no intersection with the straight line where the right wall side of the target wall object is located, then the contour point (point c) corresponding to the right wall side of the target wall object is directly determined as the splicing point.

[0096] As an example, Figure 5B As shown, on the starting point side, there is an intersection point between the second circle where the second target arc contour matching the right wall side of the target wall object is located and the straight line where the right wall side of the target wall object is located, and the intersection point (point d) is determined as the splicing point.

[0097] Accordingly, on the end point side, based on the intersection of the third circle where the third target arc contour is located and the straight line where the left wall of the end point side of the target wall object is located, and the intersection of the fourth circle where the fourth target arc contour is located and the straight line where the right wall of the end point side of the target wall object is located, when determining the second group of splicing points, the third intersection point of the third circle and the associated straight line and the fourth intersection point of the fourth circle and the associated straight line are identified;

[0098] Determine the splicing point corresponding to the left wall side of the target wall object end point side according to the number of the third intersection points, and determine the splicing point corresponding to the right wall side of the target wall object end point side according to the number of the fourth intersection points;

[0099] The second group of splicing points is determined according to the splicing points corresponding to the left wall side of the target wall object end point side and the splicing points corresponding to the right wall side of the target wall object end point side.

[0100] The third circle and the straight line on the left wall of the target wall object end side may correspond to 0 third intersections, 1 third intersection or 2 third intersections, and the corresponding strategy is used to determine the splicing point corresponding to the left wall of the target wall object end side based on the number of third intersections; the fourth circle and the straight line on the right wall of the target wall object end side may correspond to 0 fourth intersections, 1 fourth intersection or 2 fourth intersections, and the corresponding strategy is used to determine the splicing point corresponding to the right wall of the target wall object end side based on the number of fourth intersections. After determining the splicing point corresponding to the left wall of the target wall object on the end side and the splicing point corresponding to the right wall of the target wall object, the second group of splicing points can be determined. The specific implementation process is similar to the implementation process of determining the first group of splicing points, and will not be repeated here.

[0101] In the above implementation scheme, based on the intersection of the circle where the target arc contour is located and the straight line where the corresponding wall edge is located, a suitable strategy is used to screen the intersection points to determine the splicing points, so as to determine the optimal splicing points through multiple screening and optimization, thereby ensuring the rationality and smoothness of the splicing points, and thus ensuring the splicing effect.

[0102] The following describes the process of determining the wall splicing shape based on the splicing points. When determining the wall splicing shape corresponding to the splicing of the target wall object and the arc wall object according to the first group of splicing points, the second group of splicing points, the starting point and the end point, it includes:

[0103] The first group of splicing points, the second group of splicing points, the starting point and the end point are stored as key points in the target array; the target center point is determined based on the midpoint of the starting point and the end point; a key point is selected in the target array as a reference point, and a reference vector is determined according to the target center point and the reference point; a key point vector is determined according to the target center point and the key points in the target array; the key points in the target array are sorted in order from small to large according to the angle between the reference vector and the key point vector, and the wall splicing shape corresponding to the target wall object is determined;

[0104] Among them, if the cross product result of the reference vector and the key point vector is positive, the angle between the reference vector and the key point vector is 360 minus the angle determined based on the vector angle formula; if the cross product result of the reference vector and the key point vector is negative, the angle between the reference vector and the key point vector is the angle determined based on the vector angle formula.

[0105] After determining the target array including the first set of stitching points, the second set of stitching points, the starting point and the end point, determine the target center point, such as point C, based on the midpoint of the starting point and the end point, and then arbitrarily select a key point from the target array as the reference point P, and then traverse the key points in the target array one by one, and the traversed key points are recorded as points S, and the angle between the CP vector and the CS vector is calculated.

[0106] When calculating the angle between the CP vector and the CS vector, the positional relationship between the CP vector and the CS vector also needs to be considered. If the CS vector is in the clockwise direction of the CP vector (considering only the clockwise direction within the range of 180 degrees), the angle between the CP vector and the CS vector is the first angle determined based on the vector angle formula, and the vector angle formula is cosθ=(a·b) / (|a|·|b|). If the CS vector is in the counterclockwise direction of the CP vector (considering only the counterclockwise direction within the range of 180 degrees), the angle between the CP vector and the CS vector is the second angle, which is 360 degrees minus the first angle determined based on the vector angle formula.

[0107] Among them, the coordinate system corresponding to the present embodiment is a conventional coordinate system (the right side of the X-axis is the positive semi-axis, and the top of the Y-axis is the positive semi-axis). If the cross product result of the reference vector and the key point vector is negative, it indicates that the key point vector is in the clockwise direction of the reference vector (clockwise within 180 degrees); if the cross product result of the reference vector and the key point vector is positive, it indicates that the key point vector is in the counterclockwise direction of the reference vector (counterclockwise within 180 degrees). Therefore, if the cross product result of the reference vector and the key point vector is negative, the angle between the two is the first angle determined based on the vector angle formula, and if the cross product result of the reference vector and the key point vector is positive, the angle between the two is 360 degrees minus the first angle determined based on the vector angle formula.

[0108] After calculating the angle between the CP vector and the CS vector, the key points in the target array are sorted in ascending order based on the angle. After sorting, the key points are connected in the sorted order to determine the wall splicing shape corresponding to the target wall object. It should be noted that the reference point P will also be traversed as a key point in the target array. When traversing to the reference point P, the CP vector coincides with the CS vector, and the angle between the two vectors is 0.

[0109] It should be noted that the embodiment of the present application performs key point sorting in a normal coordinate system. Similarly, after the wall splicing shape is determined, it is drawn in a normal coordinate system.

[0110] In the above implementation scheme, after determining the first group of splicing points on the starting point side of the target wall object and determining the second group of splicing points on the end point side, the splicing points, the starting point and the end point corresponding to the starting point side and the end point side are added to the target array, the key points corresponding to the target array are determined, and then the key points are sorted, and the key points are connected based on the sorting situation to determine the wall splicing shape corresponding to the target wall object, so as to process the splicing requirements of various wall thicknesses and angles based on the selected optimal splicing points, thereby ensuring high-quality wall splicing in various complex situations.

[0111] In another optional embodiment of the present application, it is necessary to consider the situation that the first array or the second array on the starting point side is empty, and the third array or the fourth array on the end point side is empty. On the starting point side of the target wall object, if the first array is an empty array, it indicates that there is no left adjacent wall object on the starting point side. At this time, the first arc wall object with the largest angle with the target wall object can be screened out from at least one right adjacent wall object, and the arc wall object is added to the first array. Correspondingly, if the second array is an empty array, it indicates that there is no right adjacent wall object on the starting point side. At this time, the first arc wall object with the largest angle with the target wall object can be screened out from at least one left adjacent wall object, and the wall object is added to the second array.

[0112] It should be noted that, when the first array is empty, if there is only one right-side adjacent wall object, the right-side adjacent wall object also serves as the left-side adjacent wall object. Correspondingly, when the second array is empty, if there is only one left-side adjacent wall object, the left-side adjacent wall object also serves as the right-side adjacent wall object. The third and fourth arrays on the end point side correspond to the situations of the first and second arrays, and will not be elaborated on in detail.

[0113] As an example, Figure 6 As shown, the target wall object in the form of a straight wall has only one adjacent wall on the starting point side, and the adjacent wall is an arc wall object, which is in both the first array and the second array. First, treat it as an arc wall object in the second array, traverse the second array, and put the appropriate arc contour into rightContour. RightContour can be regarded as a set of contours ready to be spliced ​​with the right wall side of the target wall object. When looking for a suitable arc contour, determine whether topCenter is on the left or right side of the straight line (start, p). Among them, topCenter is the midpoint of the arc centerline corresponding to the arc wall object, and the straight line determined based on the starting point and point P is parallel to the unit vector. Figure 6 In the case shown, topCenter is on the right side of the straight line determined based on the starting point and point P, and the left contour of the arc wall object is the outer contour of the arc wall object. The left contour of the arc wall object is placed in rightContour. For the positional relationship between the straight line and topCenter determined based on the starting point and point P, if topCenter is on the right side of the straight line, moving rightward is the inner contour, and moving leftward is the outer contour. Therefore, the appropriate contour found is the left contour of the arc wall object.

[0114] Then treat the arc wall object as an arc wall object in the first array, traverse the first array, and put the appropriate arc contour into leftContour. LeftContour can be regarded as a set of contours to be spliced ​​with the left wall of the target wall object. When searching for a suitable arc contour, determine whether topCenter is on the left or right side of the line (start, p). Figure 6 In the case shown, topCenter is on the right side of the straight line determined based on the starting point and point P, the right contour of the arc wall object is the inner contour of the arc wall object, and the right contour of the arc wall object is placed in leftContour.

[0115] In view of the special case that the array is empty, a processing mechanism of supplementing adjacent walls with the maximum angle is introduced to improve the robustness of the algorithm and ensure the accurate and reasonable splicing of wall objects.

[0116] The following is an introduction to the implementation scheme for determining the wall splicing shape of the target wall object through a specific implementation process. Figure 7 As shown, the following steps are included:

[0117] Step 701 , identifying the number of wall objects corresponding to the starting point side of the target wall object of a straight wall shape, if the number is equal to 1, executing step 702 , if the number is greater than 1, executing step 703 .

[0118] Step 702 , adding the wall contour point to the target array, in which the start point and the end point of the target wall object are stored, and then executing 709 .

[0119] Step 703: Classify the arc wall objects associated with the starting point side of the target wall object into left and right walls, store the arc wall objects on the left side of the target wall object in leftWalls, and store the arc wall objects on the right side of the target wall object in rightWalls.

[0120] It should be noted that if leftWalls or rightWalls is empty, the adjacent wall with the largest angle is selected as a supplement.

[0121] Step 704: determine the leftcontour storing the arc contour based on the arc wall objects in leftWalls, and determine the rightcontour storing the arc contour based on the arc wall objects in rightWalls.

[0122] Step 705: Filter out the target arc contour spliced ​​with the left wall side of the target wall object in leftcontour, and filter out the target arc contour spliced ​​with the right wall side of the target wall object in rightcontour.

[0123] Step 706: Determine a splicing point associated with the starting point based on the intersection of the circle where the target arc contour is located and the straight line where the wall edge of the target wall object is located.

[0124] Step 707: Add the splicing point to a target array, in which the start point and the end point of the target wall object are stored.

[0125] Step 708: Repeat the same process for the end point side of the target wall object.

[0126] Step 709: sort the key points in the target array to determine the wall splicing shape corresponding to the target wall object.

[0127] In the above implementation process, the algorithm used is highly adaptable and can automatically handle complex intersections between straight walls and curved walls, meet the splicing requirements of various wall thicknesses and angles, realize the splicing of walls of different thicknesses, achieve a visually seamless splicing effect, and greatly improve design efficiency.

[0128] The above is an introduction to the wall object splicing method provided in the embodiment of the present application. In the above scheme, unit vectors and angle calculations are used to accurately determine the spatial relationship between adjacent walls; a comparison method based on contours is used to avoid errors that may be caused by simple wall line comparisons; a special case processing mechanism is introduced to improve the robustness of the algorithm; multiple screening and optimization are used to ensure the rationality and smoothness of the splicing points; and a clockwise sorting of key points is used to ensure the correctness and completeness of the wall shape.

[0129] Furthermore, while achieving seamless connection between straight walls and curved walls, an efficient and precise wall treatment solution is provided, which improves the efficiency of building design and construction and enhances the accuracy and usability of building models.

[0130] The present application also provides a wall object splicing device, such as Figure 8 As shown, the device comprises:

[0131] An acquisition module 801 is used to acquire M first arc wall objects associated with a starting point of a target wall object and N second arc wall objects associated with an end point, wherein the target wall object is a straight wall object, and M and N are both integers greater than or equal to 1;

[0132] A first determination module 802 is used to determine a first target arc contour and a second target arc contour that match the left and right wall edges on the starting point side of the target wall object among the M first arc wall objects, and to determine a third target arc contour and a fourth target arc contour that match the left and right wall edges on the ending point side of the target wall object among the N second arc wall objects;

[0133] A second determination module 803 is used to determine a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour and the left wall edge and the right wall edge on the starting point side of the target wall object, and to determine a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour and the left wall edge and the right wall edge on the end point side of the target wall object;

[0134] The third determining module 804 is used to determine the wall splicing shape corresponding to the splicing of the target wall object and the arc wall object according to the first group of splicing points, the second group of splicing points, the starting point and the end point.

[0135] Optionally, the first target arc contour is located in a first array, and the second target arc contour is located in a second array. On the starting point side of the target wall object, the first array stores the first arc wall object on the left side, and the second array stores the first arc wall object on the right side. The first array and the second array are divided based on a first unit vector corresponding to the first arc wall object. The first unit vector is a unit vector corresponding to a tangent vector having a smaller angle with the first target vector among two tangent vectors corresponding to the first arc wall object at the starting point. The first target vector is determined based on the starting point and the arc center point of the first arc wall object.

[0136] The third target arc contour is located in the third array, and the fourth target arc contour is located in the fourth array. On the end point side of the target wall object, the third array stores the second arc wall object on the left, and the fourth array stores the second arc wall object on the right. The third array and the fourth array are divided based on the second unit vector corresponding to the second arc wall object. The second unit vector is the unit vector corresponding to the tangent vector with the smaller angle between the second target vector and the two tangent vectors corresponding to the second arc wall object at the end point. The second target vector is determined based on the end point and the arc center point of the second arc wall object.

[0137] Optionally, the first determining module includes:

[0138] A first processing submodule is used to classify the M first arc wall objects into left and right walls based on the first vector and the first unit vector corresponding to the first arc wall object, determine a first array and a second array, and determine a first target arc contour matching the left wall side of the starting point side of the target wall object in the first array, and determine a second target arc contour matching the right wall side of the starting point side of the target wall object in the second array;

[0139] A second processing submodule is used to classify the N second arc wall objects into left and right walls based on the second vector and the second unit vector corresponding to the second arc wall object, determine a third array and a fourth array, and determine a third target arc contour matching the left wall side of the end point side of the target wall object in the third array, and determine a fourth target arc contour matching the right wall side of the end point side of the target wall object in the fourth array;

[0140] The first vector is a vector from the starting point to the end point, and the second vector is a vector from the end point to the starting point.

[0141] Optionally, the first processing submodule includes:

[0142] A first identification and classification unit is used for, for each first arc wall object, identifying the positional relationship between the first arc wall object and the target wall object and performing left-right wall classification according to the cross product result of the first vector and the first unit vector corresponding to the first arc wall object, so as to determine the first array and the second array;

[0143] A first determining unit is used to determine, in each first arc wall object of the first array, a first arc contour adjacent to the left wall edge on the starting point side of the target wall object, and determine a first target arc contour that is closest to the left wall edge on the starting point side of the target wall object based on the angle information between the first unit vector corresponding to the first arc contour and the first vector;

[0144] The second determination unit is used to determine, in each first arc wall object of the second array, a first arc contour adjacent to the right wall edge on the starting point side of the target wall object, and determine a second target arc contour that is closest to the right wall edge on the starting point side of the target wall object based on the angle information between the first unit vector corresponding to the first arc contour and the first vector.

[0145] Optionally, the second processing submodule includes:

[0146] A second identification and classification unit is used for, for each second arc wall object, identifying the positional relationship between the second arc wall object and the target wall object, classifying the second arc wall object into left and right walls, and determining the third array and the fourth array according to the cross product result of the second vector and the second unit vector corresponding to the second arc wall object;

[0147] A third determining unit is used to determine, in each second arc wall object in the third array, a second arc contour adjacent to the left wall edge of the end point side of the target wall object, and determine a third target arc contour that is closest to the left wall edge of the end point side of the target wall object based on the angle information between the second unit vector corresponding to the second arc contour and the second vector;

[0148] The fourth determination unit is used to determine, in each second arc wall object in the fourth array, a second arc contour adjacent to the right wall edge of the end point side of the target wall object, and determine, based on the angle information between the second unit vector corresponding to the second arc contour and the second vector, a fourth target arc contour that is closest to the right wall edge of the end point side of the target wall object.

[0149] Optionally, the second determining module includes:

[0150] A first determination submodule, configured to determine a first group of splicing points associated with the starting point based on an intersection between a first circle where the first target arc contour is located and a straight line where the left wall of the starting point side of the target wall object is located, and an intersection between a second circle where the second target arc contour is located and a straight line where the right wall of the starting point side of the target wall object is located;

[0151] The second determination submodule is used to determine a second group of splicing points associated with the end point based on the intersection of the third circle where the third target arc contour is located and the straight line where the left wall edge of the end point side of the target wall object is located, and the intersection of the fourth circle where the fourth target arc contour is located and the straight line where the right wall edge of the end point side of the target wall object is located.

[0152] Optionally, the first determining submodule includes:

[0153] an identification unit, configured to identify a first intersection point between the first circle and the associated straight line, and a second intersection point between the second circle and the associated straight line;

[0154] A first processing unit is used to determine the splicing point corresponding to the left wall side of the starting point of the target wall object according to the number of the first intersection points, and determine the splicing point corresponding to the right wall side of the starting point of the target wall object according to the number of the second intersection points;

[0155] The second processing unit is used to determine the first group of splicing points according to the splicing points corresponding to the left wall side of the starting point side of the target wall object and the splicing points corresponding to the right wall side of the starting point side of the target wall object.

[0156] Optionally, the first processing unit is further configured to:

[0157] If the number of the first intersection points is 0, determine the contour point corresponding to the left wall side of the starting point side of the target wall object as the splicing point;

[0158] If the number of the first intersection points is 1, determining the first intersection points as splicing points;

[0159] If the number of the first intersection points is 2, the first intersection point closest to the starting point is determined as the splicing point; or, in response to the two first intersection points being at equal distances from the starting point, the angle between two intersection vectors corresponding to the two first intersection points and the first unit vector corresponding to the first target arc-shaped contour is calculated, and the first intersection point corresponding to the intersection vector with the smaller angle is determined as the splicing point;

[0160] The intersection vector is determined based on the starting point and the first intersection point.

[0161] Optionally, the third determining module includes:

[0162] A storage submodule, configured to store the first group of splicing points, the second group of splicing points, the starting point, and the end point as key points in a target array;

[0163] A third determination submodule, configured to determine a target center point based on a midpoint between the start point and the end point;

[0164] A selection and determination submodule is used to select a key point in the target array as a reference point, and determine a reference vector according to the target center point and the reference point;

[0165] A fourth determination submodule, used to determine a key point vector according to the target center point and the key points in the target array;

[0166] A sorting and determining submodule, used to sort the key points in the target array in the order of the angle between the reference vector and the key point vector from small to large, and determine the wall splicing shape corresponding to the target wall object;

[0167] Among them, if the cross product result of the reference vector and the key point vector is positive, the angle between the reference vector and the key point vector is 360 minus the angle determined based on the vector angle formula; if the cross product result of the reference vector and the key point vector is negative, the angle between the reference vector and the key point vector is the angle determined based on the vector angle formula.

[0168] As for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0169] An embodiment of the present application also provides an electronic device, including: a processor, a memory, and a computer program stored in the memory and executable on the processor. When the computer program is executed by the processor, the various processes of the above-mentioned wall object splicing method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be described here.

[0170] For example, Fig. 9 FIG. 1 shows a schematic diagram of the physical structure of an electronic device. Fig. 9 As shown, the electronic device may include: a processor 910, a communication interface 920, a memory 930 and a communication bus 940, wherein the processor 910, the communication interface 920 and the memory 930 communicate with each other via the communication bus 940. The processor 910 may call the logic instructions in the memory 930, and the processor 910 is used to execute each process of the wall object splicing method of the embodiment of the present application, which will not be described one by one here.

[0171] In addition, the logic instructions in the above-mentioned memory 930 can be implemented in the form of software functional units and can be stored in a computer-readable storage medium when sold or used as an independent product. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application.

[0172] The embodiment of the present application also provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, each process of the above-mentioned wall object splicing method embodiment is implemented, and the same technical effect can be achieved. To avoid repetition, it is not repeated here. The computer-readable storage medium is, for example, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0173] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

[0174] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in each embodiment of the present application.

[0175] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms without departing from the purpose of the present application and the scope of protection of the claims, all of which are within the protection of the present application.

[0176] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed in the present application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0177] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0178] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A wall object splicing method, characterized in that: include: Acquire M first arc wall objects associated with the starting point of the target wall object and N second arc wall objects associated with the end point, wherein the target wall object is a straight wall object, and both M and N are integers greater than or equal to 1; Determine a first target arc contour and a second target arc contour that match the left and right wall edges on the starting point side of the target wall object among the M first arc wall objects, and determine a third target arc contour and a fourth target arc contour that match the left and right wall edges on the ending point side of the target wall object among the N second arc wall objects; Determine a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour, and the left wall side and the right wall side of the starting point side of the target wall object; determine a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour, and the left wall side and the right wall side of the end point side of the target wall object; A wall splicing shape corresponding to when the target wall object is spliced ​​with the arc wall object is determined according to the first group of splicing points, the second group of splicing points, the starting point and the end point.

2. The method according to claim 1, characterized in that in, The first target arc contour is located in a first array, and the second target arc contour is located in a second array. On the starting point side of the target wall object, the first array stores the first arc wall object on the left side, and the second array stores the first arc wall object on the right side. The first array and the second array are divided based on a first unit vector corresponding to the first arc wall object. The first unit vector is a unit vector corresponding to a tangent vector having a smaller angle with the first target vector among two tangent vectors corresponding to the first arc wall object at the starting point. The first target vector is determined based on the starting point and the arc center point of the first arc wall object. The third target arc contour is located in the third array, and the fourth target arc contour is located in the fourth array. On the end point side of the target wall object, the third array stores the second arc wall object on the left, and the fourth array stores the second arc wall object on the right. The third array and the fourth array are divided based on the second unit vector corresponding to the second arc wall object. The second unit vector is the unit vector corresponding to the tangent vector with the smaller angle between the second target vector and the two tangent vectors corresponding to the second arc wall object at the end point. The second target vector is determined based on the end point and the arc center point of the second arc wall object.

3. The method according to claim 2, characterized in that The step of determining a first target arc contour and a second target arc contour that match the left and right wall edges on the starting point side of the target wall object in the M first arc wall objects, and determining a third target arc contour and a fourth target arc contour that match the left and right wall edges on the ending point side of the target wall object in the N second arc wall objects includes: Based on the first vector and the first unit vector corresponding to the first arc wall object, the M first arc wall objects are classified into left and right walls, the first array and the second array are determined, and a first target arc contour matching the left wall side of the starting point side of the target wall object is determined in the first array, and a second target arc contour matching the right wall side of the starting point side of the target wall object is determined in the second array; Based on the second vector and the second unit vector corresponding to the second arc wall object, classify the N second arc wall objects into left and right walls, determine the third array and the fourth array, and determine a third target arc contour matching the left wall side of the end point side of the target wall object in the third array, and determine a fourth target arc contour matching the right wall side of the end point side of the target wall object in the fourth array; The first vector is a vector from the starting point to the end point, and the second vector is a vector from the end point to the starting point.

4. The method according to claim 3, characterized in that: The method of classifying the M first arc wall objects into left and right walls based on the first vector and the first unit vector corresponding to the first arc wall object, determining the first array and the second array, and determining a first target arc contour matching the left wall side of the starting point side of the target wall object in the first array, and determining a second target arc contour matching the right wall side of the starting point side of the target wall object in the second array, includes: For each first arc wall object, according to the cross product operation result of the first vector and the first unit vector corresponding to the first arc wall object, the positional relationship between the first arc wall object and the target wall object is identified, and left and right walls are classified to determine the first array and the second array; In each first arc wall object of the first array, a first arc contour adjacent to the left wall edge of the starting point side of the target wall object is determined, and based on the angle information between the first unit vector corresponding to the first arc contour and the first vector, a first target arc contour closest to the left wall edge of the starting point side of the target wall object is determined; In each first arc wall object of the second array, a first arc contour adjacent to the right wall edge on the starting point side of the target wall object is determined, and based on the angle information between the first unit vector corresponding to the first arc contour and the first vector, a second target arc contour closest to the right wall edge on the starting point side of the target wall object is determined.

5. The method according to claim 3, characterized in that: The method of classifying the N second arc wall objects into left and right walls based on the second vector and the second unit vector corresponding to the second arc wall object, determining the third array and the fourth array, and determining a third target arc contour matching the left wall side of the end point side of the target wall object in the third array, and determining a fourth target arc contour matching the right wall side of the end point side of the target wall object in the fourth array, includes: For each second arc wall object, according to the cross product operation result of the second vector and the second unit vector corresponding to the second arc wall object, the positional relationship between the second arc wall object and the target wall object is identified, the left wall classification is performed, and the third array and the fourth array are determined; In each second arc wall object of the third array, a second arc contour adjacent to the left wall side of the end point side of the target wall object is determined, and based on the angle information between the second unit vector corresponding to the second arc contour and the second vector, a third target arc contour closest to the left wall side of the end point side of the target wall object is determined; In each second arc wall object of the fourth array, a second arc contour adjacent to the right wall edge of the end point side of the target wall object is determined, and based on the angle information between the second unit vector corresponding to the second arc contour and the second vector, a fourth target arc contour closest to the right wall edge of the end point side of the target wall object is determined.

6. The method according to claim 2, characterized in that The step of determining a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour, and the left wall side and the right wall side of the starting point side of the target wall object, and determining a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour, and the left wall side and the right wall side of the end point side of the target wall object includes: Determine a first group of splicing points associated with the starting point based on the intersection of a first circle where the first target arc contour is located and a straight line where the left wall of the starting point side of the target wall object is located, and the intersection of a second circle where the second target arc contour is located and a straight line where the right wall of the starting point side of the target wall object is located; Based on the intersection of the third circle where the third target arc contour is located and the straight line where the left wall edge of the target wall object end point side is located, and the intersection of the fourth circle where the fourth target arc contour is located and the straight line where the right wall edge of the target wall object end point side is located, determine the second group of splicing points associated with the end point.

7. The method according to claim 6, characterized in that The determining of the first group of splicing points associated with the starting point based on the intersection of the first circle where the first target arc contour is located and the straight line where the left wall edge of the starting point side of the target wall object is located, and the intersection of the second circle where the second target arc contour is located and the straight line where the right wall edge of the starting point side of the target wall object is located, comprises: Identify a first intersection point between the first circle and the associated straight line, and a second intersection point between the second circle and the associated straight line; Determine the splicing point corresponding to the left wall side of the starting point of the target wall object according to the number of the first intersection points, and determine the splicing point corresponding to the right wall side of the starting point of the target wall object according to the number of the second intersection points; The first group of splicing points is determined according to the splicing points corresponding to the left wall side of the starting point side of the target wall object and the splicing points corresponding to the right wall side of the starting point side of the target wall object.

8. The method according to claim 7, characterized in that The step of determining the splicing point corresponding to the left wall at the starting point side of the target wall object according to the number of the first intersection points includes: If the number of the first intersection points is 0, determine the contour point corresponding to the left wall side of the starting point side of the target wall object as the splicing point; If the number of the first intersection points is 1, determining the first intersection points as splicing points; If the number of the first intersection points is 2, the first intersection point closest to the starting point is determined as the splicing point; or, in response to the two first intersection points being at equal distances from the starting point, the angle between two intersection vectors corresponding to the two first intersection points and the first unit vector corresponding to the first target arc-shaped contour is calculated, and the first intersection point corresponding to the intersection vector with the smaller angle is determined as the splicing point; The intersection vector is determined based on the starting point and the first intersection point.

9. The method according to any one of claims 1 to 8, characterized in that: The step of determining a wall splicing shape corresponding to when the target wall object is spliced ​​with the arc wall object according to the first group of splicing points, the second group of splicing points, the starting point, and the end point includes: The first group of splicing points, the second group of splicing points, the starting point and the end point are stored as key points in a target array; Determine a target center point based on a midpoint between the starting point and the end point; Select a key point in the target array as a reference point, and determine a reference vector according to the target center point and the reference point; Determine a key point vector according to the target center point and the key points in the target array; Sorting the key points in the target array in ascending order of the angle between the reference vector and the key point vector to determine the wall splicing shape corresponding to the target wall object; Among them, if the cross product result of the reference vector and the key point vector is positive, the angle between the reference vector and the key point vector is 360 minus the angle determined based on the vector angle formula; if the cross product result of the reference vector and the key point vector is negative, the angle between the reference vector and the key point vector is the angle determined based on the vector angle formula.

10. A wall object splicing device, characterized in that: include: An acquisition module, used to acquire M first arc wall objects associated with a starting point of a target wall object and N second arc wall objects associated with an end point, wherein the target wall object is a straight wall object, and M and N are both integers greater than or equal to 1; A first determination module is used to determine a first target arc contour and a second target arc contour that match the left and right wall edges on the starting point side of the target wall object among the M first arc wall objects, and to determine a third target arc contour and a fourth target arc contour that match the left and right wall edges on the ending point side of the target wall object among the N second arc wall objects; A second determination module is used to determine a first group of splicing points associated with the starting point according to the intersection of the first target arc contour, the second target arc contour and the left wall side and the right wall side of the starting point side of the target wall object, and determine a second group of splicing points associated with the end point according to the intersection of the third target arc contour, the fourth target arc contour and the left wall side and the right wall side of the end point side of the target wall object; The third determination module is used to determine the wall splicing shape corresponding to the splicing of the target wall object and the arc wall object according to the first group of splicing points, the second group of splicing points, the starting point and the end point.

11. An electronic device, characterized in that: The invention comprises a processor, a memory and a computer program stored in the memory and executable on the processor, wherein when the computer program is executed by the processor, the steps of the wall object splicing method as claimed in any one of claims 1 to 9 are implemented.

Citation Information

Patent Citations

  • Virtual house type wall body generation method

    CN106600660A

  • Method and device for determining whether wall lines intersect or not and processor

    CN112347539A

  • Building wall drawing method

    CN113656871A

  • System and method for generating closed surface during map construction based on CAD (Computer Aided Design) electronic drawing

    CN114036616A

  • Building exterior wall component generation method based on BIM and related equipment

    CN116702256A