Method and apparatus for displaying object identifier, device, medium, and program product
By employing a first-layer and second-layer display method in multi-user interactive applications, the positions of the camp lines and object identifiers are decoupled, solving the flexibility and efficiency problems of displaying multiple sets of user identifiers in existing technologies, and reducing resource consumption and latency.
Patent Information
- Application Number
- PCT/CN2025/101824
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-19
- Filing Date
- 2025-06-18
- Publication Date
- 2025-12-26
AI Technical Summary
In multi-user interactive applications, existing technologies struggle to display the identifiers of multiple user groups flexibly and efficiently, especially when the number of users and groups change, leading to increased computational complexity and resource overhead.
The system presents different groups of object identifiers in the first layer and displays a sequence of visual elements associated with the object identifiers in the second layer. This visual element sequence decouples the positions of the camp lines and the object identifiers, improving the flexibility and efficiency of the display.
It reduces resource consumption on client devices, improves the display efficiency and flexibility of faction division, and reduces latency when the number of users and groups change.
Smart Images

Figure CN2025101824_26122025_PF_FP_ABST
Abstract
Description
Method, device, equipment, medium and program product for displaying object identification
[0001] The present application claims priority to the Chinese patent application No. 202410797738.9, filed on June 19, 2024, entitled “Method, device, equipment, medium and program product for displaying object identification”, the whole content of which is incorporated herein by reference. TECHNICAL FIELD
[0002] The exemplary implementation of the present disclosure generally relates to object management, and in particular, to a method, device, equipment, computer-readable storage medium and computer program product for displaying object identification in an interactive application. BACKGROUND
[0003] With the development of computer technology and network technology, a variety of interactive applications have been developed. In a multi-user interactive application, multiple users can participate in an event with multiple groups of participants, such as team battle confrontation. Such an event may, for example, be a singing competition, a debate competition, or the like.
[0004] For example, in a team battle confrontation event, group A and group B can each include one or more users, and the identification of each user in group A and group B can be presented in the interactive application, respectively. However, the number of groups, the number of users in each group, and the specific users can vary, and refreshing the identification of each user in real time can result in a large computational complexity and resource consumption. Therefore, it is desirable to present the identification of the users in each group in a more flexible and efficient manner. SUMMARY
[0005] In a first aspect of the present disclosure, a method for displaying object identification is provided. In the method, a plurality of objects corresponding to a target event is determined, the plurality of objects including a first group of objects of a first type and a second group of objects of a second type. A plurality of object identifications of the plurality of objects is presented in a first layer, respectively, a first group of object identifications of the first group of objects is presented with a first display manner, and a second group of object identifications of the second group of objects is presented with a second display manner. A first sequence of visual elements associated with the first group of object identifications is determined. The first sequence of visual elements is presented in a second layer.
[0006] In a second aspect of the disclosure, an apparatus for displaying object identifications is provided. The apparatus includes: an object determining module configured to determine a plurality of objects corresponding to a target event, the plurality of objects including a first group of objects of a first type and a second group of objects of a second type; an object identification presenting module configured to present a plurality of object identifications of the plurality of objects respectively in a first layer, the first group of object identifications of the first group of objects being presented with a first display manner, and the second group of object identifications of the second group of objects being presented with a second display manner; a visual element determining module configured to determine a first group of visual element sequences associated with the first group of object identifications; and a visual element presenting module configured to present the first group of visual element sequences in a second layer.
[0007] In a third aspect of the disclosure, an electronic device is provided. The electronic device includes: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, cause the electronic device to perform the method according to the first aspect of the disclosure.
[0008] In a fourth aspect of the disclosure, a computer-readable storage medium is provided, having stored thereon a computer program, which, when executed by a processor, causes the processor to implement the method according to the first aspect of the disclosure.
[0009] In a fifth aspect of the disclosure, a computer program product is provided, comprising a computer program, wherein the computer program, when executed by a processor, implements the method according to the first aspect of the disclosure.
[0010] It is to be understood that the details set forth herein are not intended to limit the key or critical features of the implementations of the disclosure, nor are they intended to limit the scope of the disclosure. Other features of the disclosure will become apparent from the following description. BRIEF DESCRIPTION OF DRAWINGS
[0011] The above and other features, advantages and aspects of the implementations of the disclosure will become more apparent from the following detailed description in conjunction with the accompanying drawings. In the drawings, like reference numerals denote like elements, in which:
[0012] FIG. 1 shows a block diagram of an application environment according to one example implementation of the disclosure;
[0013] FIG. 2 shows a block diagram for displaying object identifications according to some implementations of the disclosure;
[0014] FIG. 3 shows a block diagram for determining a point set according to some implementations of the disclosure;
[0015] FIG. 4 shows a block diagram for updating a point set according to some implementations of the present disclosure;
[0016] FIG. 5 shows a block diagram for determining a point sequence in a traversal manner according to some implementations of the present disclosure;
[0017] FIG. 6 shows a block diagram for forming a first group of line segment sequences according to some implementations of the present disclosure;
[0018] FIG. 7 shows a flow chart of a method for displaying object identification according to some implementations of the present disclosure;
[0019] FIG. 8 shows a block diagram of an apparatus for displaying object identification according to some implementations of the present disclosure; and
[0020] FIG. 9 shows a block diagram of a device capable of implementing a plurality of implementations of the present disclosure. DETAILED DESCRIPTION
[0021] Implementations of the present disclosure will be described in greater detail below with reference to the accompanying drawings. While certain implementations of the present disclosure are shown in the drawings, it is understood that the present disclosure can be embodied in various forms and should not be interpreted as being limited to the implementations set forth herein; rather, these implementations are provided so that the present disclosure can be more thoroughly and completely understood. It should be understood that the drawings and implementations of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0022] In the description of the implementations of the present disclosure, the term “comprising” and its conjugations should be understood as open-ended, i.e., “including but not limited to”. The term “based on” should be understood as “based at least in part on”. The term “one implementation” or “an implementation” should be understood as “at least one implementation”. The term “some implementations” should be understood as “at least some implementations”. Other explicit or implicit definitions can also be included below. As used herein, the term “model” can represent the association between various data. For example, the above-mentioned association can be obtained based on various technical solutions known at present and / or to be developed in the future.
[0023] It can be understood that the data involved in the technical solutions of the present disclosure (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of relevant laws and regulations and relevant provisions.
[0024] It can be understood that before using the technical solutions disclosed in the embodiments of the present disclosure, the type of personal information involved in the present disclosure, the scope of use, the scenario of use, etc. should be informed to the user and the authorization of the user should be obtained through appropriate means according to relevant laws and regulations.
[0025] For example, in response to receiving an active request from the user, the user is sent prompt information to explicitly prompt the user that the operation requested to be performed by the user will require obtaining and using personal information of the user. Thus, the user can autonomously choose whether to provide the personal information to the software or hardware, such as an electronic device, an application, a server, or a storage medium, performing the operation of the technical solution of the present disclosure according to the prompt information.
[0026] As an optional but non-limiting implementation manner, in response to receiving an active request from the user, the manner of sending prompt information to the user can be, for example, a pop-up window manner, in which the prompt information can be presented in the form of text. In addition, the pop-up window can also carry selection controls for the user to select “agree” or “disagree” to provide personal information to the electronic device.
[0027] It can be understood that the above notification and obtaining user authorization process is only illustrative and does not limit the implementation manner of the present disclosure, and other manners meeting relevant laws and regulations can also be applied to the implementation manner of the present disclosure.
[0028] The term “in response to” as used herein denotes a state in which a corresponding event occurs or a condition is met. It will be understood that the timing of the execution of a subsequent action performed in response to the event or condition is not necessarily strongly associated with the time at which the event occurs or the condition is met. For example, in some cases, the subsequent action can be performed immediately upon the occurrence of the event or the establishment of the condition; in other cases, the subsequent action can be performed after a period of time has elapsed since the occurrence of the event or the establishment of the condition.
[0029] Example Environment
[0030] FIG. 1 shows a schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. In the example environment 100, an electronic device 110 has an application 120 installed therein. A user 140 can interact with the application 120 via the electronic device 110 and / or an attached device of the electronic device 110.
[0031] In some embodiments, the application 120 can be a content sharing application (e.g., a video application mainly for video sharing) capable of providing various services related to media items (also referred to as media content, media content items, content items, etc.) to the user 140, including browsing, commenting, forwarding, creating (e.g., shooting and / or editing), publishing, etc. of the media items. In some embodiments, the application 120 can also be any other appropriate application in which media items can be presented. In this document, each “media item” includes one or more types of content, such as a video, an image, an animated image, a set of images, audio, text, etc.
[0032] In the environment 100 of FIG. 1, the electronic device 110 can present a page 150 of the application 120 if the application 120 is active. The page 150 can include various types of pages that the application 120 can provide, such as a media item presentation page, a media item authoring page, a media item publishing page, a message page, a personal homepage, etc. The application 120 can provide a media item viewing function to view various types of media items published in the application 120.
[0033] In some embodiments, the electronic device 110 communicates with the server 130 to implement the provisioning of services of the application 120. The electronic device 110 can be any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, a tablet computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a media computer, a multimedia tablet, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an electronic book device, a game device, or any combination thereof, including accessories and peripherals of these devices, or any combination thereof. In some embodiments, the electronic device 110 can also support any type of interface to the user (such as "wearable" circuitry, etc.). The server 130 can be various types of computing systems / servers capable of providing computing power, including but not limited to mainframes, edge computing nodes, computing devices in a cloud environment, etc.
[0034] It should be understood that the structure and function of the various elements in the environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of the present disclosure.
[0035] Example Environment
[0036] In a multi-user interactive application, multiple users can participate in an event with multiple groups of participants in the interactive application, such as a team battle type. An application environment according to one example implementation of the present disclosure is described with reference to FIG. 1, which shows a block diagram of an application environment 100 according to one example implementation of the present disclosure. As shown in FIG. 1, the interactive application 110 can be, for example, an application capable of providing audio and / or video live broadcast functions. For example, the interactive application 110 can provide a team battle event of a singing competition, a debate competition, etc. based on a live broadcast environment. And users can join different teams (e.g., Group A or Group B) to participate in the competition.
[0037] In the context of the present disclosure, a specific application environment of displaying object identifications will be described with an example of two groups of users participating in a team battle confrontation event. Herein, the objects can represent users in the interactive application 110, and the object identifications can represent identifications of the users, e.g., names, avatars, or live videos of the users participating in the event, etc. When the team battle confrontation event is implemented by means of a live audio function of the interactive application 110, the users can participate in the game by participating in the live mic-in, and the positions where the object identifications are located can be referred to as “mic positions”. Accordingly, the group A and the group B can belong to two different mic position camps, and are presented together in the camp area 120. In order to improve the distinguishability of the respective camps, the outlines (e.g., camp lines) of the respective camps can be set, so as to facilitate intuitive display of the grouping.
[0038] Hereinafter, an example implementation of the present disclosure will be described with an example of user identifications being presented as rectangular boxes. It should be understood that the user identifications can also be presented as hexagonal boxes to form a honeycomb-shaped camp, or the user identifications can also be presented as circles, triangles, etc. In the example implementation of the present disclosure, the camp lines of the group A and the group B can be line segments surrounding the user identifications of the respective groups. Exemplarily, the camp lines of the respective camps can be displayed in different colors in the page of the interactive application 110, so as to facilitate distinguishing the different camps.
[0039] For example, the camp line of the group A can be displayed in red (e.g., represented by a solid line in FIG. 1), and the camp line of the group B can be displayed in blue (e.g., represented by a dashed line in FIG. 1). Further, in order to more conveniently distinguish the users in the group A and the group B, the user identifications in the group A and the group B can also be presented in different display manners (e.g., different colors) in the page of the interactive application 110. For example, the users in the group A can be represented in red, and the users in the group B can be represented in blue in the camp area 120. However, users can quit the game, or new users can participate in the game, which can cause the number of users in the respective groups to change constantly. Alternatively and / or additionally, another group (e.g., the group C) can participate in the game.
[0040] However, the positions of the object identifications representing the groups of users are fixed (e.g. the layout presented by the rectangular frames in the camp area 120), and are limited to the positions of the object identifications in the current layout. When the camp information changes and there is a new layout, the explicitness of the camp information cannot be dynamically modified, and has to be re-adapted according to the original positions. Further, the identifications of the users in the current groups need to be re-drawn, and further the outline needs to be re-drawn. The outline includes the borders of the seats and the gaps between the borders, which results in the need to re-calculate the specific lines in the outline every time the re-drawing is performed. Further, when the seats are not regular grids but involve irregular shapes as shown in FIG. 1, the intersection points between the seat border extension lines and the seat borders need to be additionally determined, and the drawing process is complex and time-consuming. Thus, it is desirable to present the identifications of the users in the groups in a more flexible and efficient manner.
[0041] Summary of displaying object identifications
[0042] To at least partially address the deficiencies in the prior art, according to one example implementation of the present disclosure, a method for displaying object identifications is proposed. According to one example implementation of the present disclosure, the method for displaying object identifications can be implemented in a live application. A summary according to one example implementation of the present disclosure is described with reference to FIG. 2, which shows a block diagram 200 for displaying object identifications according to some implementations of the present disclosure.
[0043] As shown in FIG. 2, a plurality of objects corresponding to a target event can be determined. According to one example implementation of the present disclosure, the target event can be a live confrontation event in a live application. The target event can be, for example, a team battle confrontation event provided by the interactive application 110 for a plurality of groups of users to participate in a live, such as a singing competition, a debate competition, etc. It should be understood that in such a target event, at least two groups of users compete. The objects can be users in the interactive application 110, and the type of the objects can be, for example, the group that the user belongs to, e.g. group A or group B, etc. The plurality of objects can include a first group of objects of a first type and a second group of objects of a second type. Each group of objects can include one or more objects. For example, the first group of objects can include 6 objects (e.g. object 1, object 2, object 3, object 4, object 5, object 7), and the second group of objects can include 2 objects (e.g. object 6, object 8).
[0044] Further, a plurality of object identifiers of the plurality of objects can be respectively presented in the first layer. According to one example implementation of the present disclosure, the object identifiers can be identifiers of the users participating in the live confrontation event. It should be appreciated that the identifiers herein can include, but are not limited to, the nicknames, avatars, videos of the users, and the like. For example, the videos can be videos of the users participating in the live confrontation event, and the like. Alternatively and / or additionally, the live interface of the interactive application 110 can include a plurality of layers, and the content in the camp region 120 can be displayed through the plurality of layers. In other words, the plurality of object identifiers of the plurality of objects can be respectively presented in the camp region 120 of the live interface through the first layer.
[0045] The first group of object identifiers of the first group of objects can be presented with a first display manner, and the second group of object identifiers of the second group of objects can be presented with a second display manner. The display manner for each group of object identifiers can include one or more dimensions of display manners, such as shape, color, brightness, and the like. Exemplarily, as shown in FIG. 2, the first group of object identifiers and the second group of object identifiers can be presented in the display manner of rectangular frames. The first group of object identifiers and the second group of object identifiers can be presented in different colors, for example, the first group of object identifiers can be presented in blue, and the second group of object identifiers can be presented in red.
[0046] Further, a first group of sequences of visual elements 210 associated with the first group of object identifiers can be determined. Herein, the visual elements can include dots, or lines (e.g., straight line segments, or curved line segments) formed by a plurality of dots, and the like. For ease of description, more details of the present disclosure will be described below with the line segments as a specific example of the visual elements. It should be appreciated that although FIG. 2 exemplarily shows a specific presentation manner of the visual elements with the straight line segments, alternatively and / or additionally, the line segments can have different styles, such as wavy lines, dashed lines, dash-dot lines, single lines, double lines, and the like.
[0047] As shown in FIG. 2, the first group of sequences of visual elements can include a first group of sequences of line segments. The first group of sequences of line segments 210 can include at least a part of the boundaries of at least a part of the object identifiers in the first group of object identifiers, and the connecting lines between two boundaries of the at least a part of the boundaries. Taking FIG. 2 as an example, the letters A1, B1, C1, D1, E1, and the like represent the vertices of the object identifiers, respectively, and at this time, the first group of sequences of line segments 210 can include the A1B1 boundary and the A1D1 boundary of the object 1, the A2B2 boundary of the object 2, the A3B3 boundary and the B3C3 boundary and the C3D3 boundary of the object 3, and the like in the first group of objects. The first group of sequences of line segments 210 can further include the connecting line between the A1B1 boundary and the A2B2 boundary, i.e., the B1A2 line segment, the connecting line between the A2B2 boundary and the A3B3 boundary, i.e., the B2A3 line segment, and the like.
[0048] A second set of line segment sequences 220 associated with the second set of object identifiers can be determined, and the second set of line segment sequences 220 can include at least a portion of boundaries of at least a portion of the second set of object identifiers, and a line between two of the at least a portion of boundaries. Still taking FIG. 2 as an example, the second set of line segment sequences 220 can include the A6B6 boundary, the B6C6 boundary, the C6E6 boundary, the D6A6 boundary of the object 6 in the second set of objects, and the A8F8 boundary, the B8C8 boundary, the C8D8 boundary, the D8A8 boundary of the object 8. The second set of line segment sequences 220 can further include a line between the D6A6 boundary and the A8F8 boundary, the D6F8 line segment, a line between the C6E6 boundary and the B8C8 boundary, the E6B8 line segment.
[0049] Accordingly, the first set of line segment sequences 210 can be presented in the second layer 205, and the second set of line segment sequences 220 can be presented in the second layer 205. In other words, the first set of line segment sequences 210 of the first object identifiers and the second set of line segment sequences 220 of the second object identifiers can be presented in the camp region 120 through the second layer 205. Alternatively and / or additionally, the second layer 205 can be a view container as a carrier of the camp lines.
[0050] With the example implementation of the present disclosure, by adding the second layer for the drawing of the camp lines, the decoupling of the camp lines and the positions of the object identifiers is achieved, thereby improving the flexibility and expandability of displaying the object identifiers, and making the scheme applicable to most of the camp division scenarios based on interactive applications. Further, the scheme can improve the display efficiency of the camp division of the interactive applications, and reduce the latency, thereby reducing the resource consumption of the client devices.
[0051] Detailed process of displaying object identifiers
[0052] The above has described the display of the object identifiers according to one example implementation of the present disclosure. In the following, more details about the display of the object identifiers will be described. According to one example implementation of the present disclosure, the shape of the user identifier can include a rectangle, a hexagon, a triangle, a circle, etc. In this way, more rich visual information can be presented in the interactive application. For ease of description, in the following, only the rectangle will be taken as an example to describe the specific presentation process. In addition, since the way for displaying the first set of object identifiers is similar to the way for displaying the second set of object identifiers, in the following, the way for displaying the first set of object identifiers will be taken as the example implementation of the present disclosure.
[0053] According to one example implementation of the present disclosure, in determining the first set of line segment sequences 210, a point set can be determined based on the vertices of each of the first set of object identifiers and the second set of object identifiers. FIG. 3 illustrates a block diagram 300 for determining a point set according to some implementations of the present disclosure. As shown in FIG. 3, in determining the point set, the vertices of the rectangular box of each object identifier can be found. In such an example, each object identifier includes 4 vertices. For example, the vertices of the object identifier of Object 1 are Al, Bl, Cl, Dl, the vertices of the object identifier of Object 2 are A2, B2, C2, D2, and so on. Alternatively and / or additionally, the four vertex coordinates of the object identifier can be obtained through an API (application programming interface) exposed by a rendering engine (a flexible view for providing one prioritized display window for a large data set).
[0054] A first point sequence associated with the first set of object identifiers can be determined in the point set. Alternatively and / or additionally, the first point sequence associated with the first set of object identifiers can be determined based on a traversal or search of the point set. Illustratively, a depth-first search (DFS) algorithm can be utilized to traverse or search the points. Then, after the first point sequence is determined, consecutive points in the first point sequence can be connected to form the line segments in the first set of line segment sequences 210.
[0055] With example implementations of the present disclosure, by determining a point set based on the vertices of the object identifiers, and determining a first point sequence based on the point set to form a line segment sequence, the camp line can be found faster, the traversal efficiency in traversing the points can be improved, and thus the latency in rendering the camp line can be reduced.
[0056] According to one example implementation of the present disclosure, the case of irregular seats can be handled. Specifically, in response to determining that the extension line of the first boundary of the first object identifier of a first object in the plurality of objects intersects with the second boundary of the second object identifier of a second object in the plurality of objects, the point set can be updated based on the intersection point. FIG. 4 illustrates a block diagram 400 for updating a point set according to some implementations of the present disclosure.
[0057] As shown in FIG. 4, the extension line of the B4C4 boundary of the object identifier of Object 4 in the first set of objects intersects with the A7B7 boundary of the object identifier of Object 7, and the extension line of the D7A7 boundary of the object identifier of Object 7 intersects with the C4D4 boundary of the object identifier of Object 4. Similarly, Object 5 and Object 7 have intersection points F5 and F7. Thus, the point set can be updated based on the intersection point E7, the intersection point E4, the intersection point F5, and the intersection point F7. Specifically, the intersection points can be added to the point set to update the point set. At this time, the intersection points E7, E4, F5, and F7 are added to the point set. Alternatively and / or additionally, the points of intersection between the object identifiers can be obtained through an API.
[0058] In another example implementation, for the object identification that is not rectangular, the intersection points can also be included in the point set. It is to be noted that when the point set is first determined for the object identification that is not rectangular, the intersection points can be included in the point set, and subsequently, new intersection points can also be updated to the point set.
[0059] With the example implementation of the present disclosure, the problem of high complexity of the conventional camp line drawing is solved, the case where there is a gap between the object identifications can be effectively handled, the line connection effect is conveniently controlled, and the flexibility of drawing the camp line is improved.
[0060] According to one example implementation of the present disclosure, when determining the first point sequence, the first point can be selected from the point set, and the first point is a specified point in a first object identification in the first group of object identifications. Alternatively and / or additionally, the first point can be a top left corner vertex of an object identification in the first group of object identifications. With reference to FIG. 3, for example, the first points of the object identifications of object 1, object 2, object 3, object 4, object 5, and object 7 in the first group of objects can be A1, A2, A3, A4, A5, and A7, respectively. It is to be understood that the first point can also be specified as a vertex at other positions. For example, the first point can be a bottom left corner vertex, and so on.
[0061] Then, based on the first point, a plurality of second points can be determined in the point set, and based on the first point and the plurality of second points, the first point sequence is determined. When traversing or searching the points based on the point set, the plurality of second points can be determined according to a current first point of a current object identification in the first group of object identifications that is traversed. Subsequent second points can be determined in an iterative manner, for example, the second point can be taken as a new first point, and another second point can be determined based on the new first point, and so on.
[0062] With the example implementation of the present disclosure, by selecting the first point, for example, the top left corner vertex of the object identification as the starting point, and then traversing the vertices and intersection points of the object identification by the search algorithm. In combination with the camp information of the object identification, the connection of the camp line is performed. Each point passed is recorded, thereby reducing the search of repeated paths, saving the search time, and improving the search efficiency.
[0063] According to one example implementation of the present disclosure, when determining the plurality of second points, the first point can be added to the first point sequence as a head point of the first point sequence, and from the first point, a second point can be determined in the point set in a direction of at least one direction corresponding to the first point, and a distance between the first point and the second point satisfies a predetermined distance condition. Alternatively and / or additionally, the at least one direction can be two directions perpendicular to the direction in which the first point is traversed, and a direction in which the traversal is continued.
[0064] FIG. 5 shows a block diagram 500 of determining a point sequence in a traversal manner, according to some implementations of the present disclosure. The block diagram 500 includes a block diagram 510 of traversing to the A3 point and a block diagram 520 of traversing to the D7 point. In the block diagram 510, when traversing to the A3 point in a right direction along B2 to A3, the A3 point can be a first point at this time, and its corresponding at least one direction can include two directions perpendicular to the B2 to A3 direction, such as the upward and downward directions at A3. The at least one direction corresponding to A3 can also include a direction continuing forward from the traversal direction of B2 to A3, such as the direction of A3 to B3, i.e., the right direction at A3.
[0065] In the block diagram 520, when traversing to the D7 point in a left direction along C7 to D7, the D7 point can be a first point at this time, and its corresponding at least one direction can include two directions perpendicular to the C7 to D7 direction, such as the upward and downward directions at D7. The at least one direction corresponding to D7 can also include a direction continuing forward from the traversal direction of C7 to D7, such as the left direction at D7.
[0066] Alternatively and / or additionally, in the case that the display manner of the object identifiers in the camp area 120 is a rectangle (i.e., a square) with equal side lengths, and the object identifier layout (i.e., the placement position of the object identifiers) is uniform, the predetermined distance condition can include that the distance between the first point and the next point traversed is less than the distance between the corresponding vertices of adjacent object identifiers. For object identifiers displayed in other shapes, the predetermined distance condition can be specifically determined according to the specific shape and the layout of the object identifiers in the camp area 120.
[0067] Then, in response to determining that the second point satisfies the predetermined addition condition, the second point can be added to the first point sequence as a tail point of the first point sequence. Here, the predetermined addition condition includes that the second point is a point at the boundary of an object identifier in the first group of object identifiers, and the second point has not been added to the first point sequence. Alternatively and / or additionally, the predetermined addition condition can also include that the other points of the object identifier in which the first point is located are prioritized as the traversal points. According to one example implementation of the present disclosure, in response to determining that the second point does not satisfy the predetermined addition condition, the second point is searched in the point set in another direction of the at least one direction.
[0068] Continuing with the example of FIG. 5, in the block diagram 510, when the A3 point is reached and taken as the first point, both the B3 point in the right direction and the D3 point in the downward direction of the A3 point satisfy the predetermined distance condition and the predetermined addition condition. However, the connection of the A3 point and the B3 point can enclose the object 3 where they are located, while the connection of the A3 point and the D3 point will exclude the object 3, and thus, the B3 point is taken as the priority traversal point. In the block diagram 520, when the D7 point is reached as the first point, there is no point in the left direction and the downward direction of the D7 point that satisfies the predetermined distance and the predetermined addition condition. Thus, the A7 point in the upward direction of the D7 point is traversed. Since the A7 point satisfies the predetermined distance and the predetermined addition condition, the A7 point is determined as the second point.
[0069] With the example implementation of the present disclosure, by setting the predetermined distance and the predetermined addition condition, the points can be accurately traversed, the points in the first point sequence are valid, and the accurate drawing of the camp line is ensured.
[0070] According to one example implementation of the present disclosure, in response to determining that the tail point is different from the head point, the tail point is taken as the first point. Then, starting from the first point, a second point is searched in the point set along the direction corresponding to the first point, and the distance between the second point and the first point satisfies the predetermined distance condition. In response to determining that the second point satisfies the predetermined addition condition, the second point is added to the first point sequence as the tail point of the first point sequence. In other words, if it is determined that the current tail point is different from the head point, it means that the camp connection line based on the current traversal is not closed. At this time, the current tail point is taken as the first point, and the traversal is continued in the manner described above until the new tail point and the head point can form a closed curve.
[0071] With the example implementation of the present disclosure, by checking whether the tail point is the same as the head point, the closed loop of the line can be checked. Assuming that the line only includes one point, the information of the camp line also needs to be cancelled, thereby avoiding the problem of incomplete drawing of the line.
[0072] According to one example implementation of the present disclosure, in response to determining that the tail point is the same as the head point, the first point sequence is connected to form the first group of line segment sequences. In other words, if the current tail point is the same as the head point, the points in the first point sequence can be connected to form the first group of line segment sequences 210, and at this time, the outline of the first group of object identifiers is successfully determined.
[0073] FIG. 6 shows a block diagram 600 of forming the first group of line segment sequences according to some implementations of the present disclosure. As shown in FIG. 6, in the case of taking the A1 point as the head point, if it is determined that the tail point of the current traversal is the A1 point, the points in the first point sequence can be connected to form the first group of line segment sequences 210.
[0074] By connecting the start point and the end point of the line, the line can be closed loop, and the team battle camp can become a complete pattern. In this way, the distinction of each camp can be improved, so as to facilitate the differentiation of users in different camps.
[0075] According to one example implementation of the present disclosure, in response to determining that no second point meeting the predetermined addition condition is found in the at least one direction, the first point sequence is emptied. Another first point is selected from the point set, the another first point being in another object identifier in the first group of object identifiers. In other words, if no second point meeting the predetermined distance and the predetermined addition condition is found in the at least one direction according to the first point, it means that the current traversal fails, and the current first point sequence can be discarded and the traversal is restarted.
[0076] Specifically, a first point (i.e., another first point) of another object identifier (i.e., different from the object identifier in which the first point specified for the first time is located) in the first group of object identifiers can be selected from the point set, and then a new round of traversal is performed in the above-mentioned traversal manner. The another first point can be a top vertex of the upper left corner of the another object identifier. With the example implementation of the present disclosure, the effectiveness of the first point sequence can be ensured, so that the camp line can be accurately drawn.
[0077] According to one example implementation of the present disclosure, another first point is selected from the point set, the another first point being in another object identifier in the first group of object identifiers and the second group of object identifiers. After determining that the first group of line segment sequences 210 of the first group of object identifiers is completed, a first point (e.g., which can be a top vertex of the upper left corner) of another object identifier in the second group of object identifiers can be selected from the point set, and then the traversal is started in a manner similar to the traversal of the first group of object identifiers, so as to form the second group of line segment sequences 220, which will not be described herein again. Alternatively and / or additionally, the traversal can also be started from a first point of another object identifier in the first group of object identifiers selected from the point set.
[0078] With the example implementation of the present disclosure, after drawing a camp line, the unsearched points can be traversed again, so as to continue to find the camp line that can be closed loop, thereby efficiently realizing the drawing of all camp lines.
[0079] According to one example implementation of the present disclosure, in response to determining that the first group of objects is updated, a sequence of updated first group of line segments associated with updated first group object identifiers of the updated first group of objects is determined, and the sequence of updated first group of line segments is rendered in the second layer 205. Alternatively and / or additionally, the first group of objects being updated includes a decrease or an increase in the number of the first group of objects, or the number of the first group of objects remains unchanged but an object originally located in another group switches camp with a certain object in the first group of objects. In the case of switching camp, the sequence of first group of line segments also needs to be updated based on the position of the new object in the first group of objects being different from the position of the original object being switched.
[0080] With the example implementation of the present disclosure, the camp line can be updated again when the user changes camp, thereby reducing the performance consumption of the client device. This implementation can efficiently re-draw the camp line when the camp layout changes, with high flexibility and adaptability.
[0081] Example process
[0082] FIG. 7 illustrates a flowchart of a method 700 for displaying object identifiers according to some implementations of the present disclosure. At block 710, a plurality of objects corresponding to a target event is determined, the plurality of objects including a first group of objects of a first type and a second group of objects of a second type. At block 720, a plurality of object identifiers of the plurality of objects is respectively rendered in a first layer, the first group of object identifiers of the first group of objects being rendered with a first display manner and the second group of object identifiers of the second group of objects being rendered with a second display manner. At block 730, a first sequence of visual elements associated with the first group of object identifiers is determined. At block 740, the first sequence of visual elements is rendered in a second layer.
[0083] According to one example implementation of the present disclosure, the first sequence of line segments includes at least a portion of boundaries of at least a portion of the object identifiers of the first group of object identifiers, and a connecting line between two of the at least a portion of the boundaries.
[0084] According to one example implementation of the present disclosure, determining the first sequence of line segments includes: determining a point set based on vertices of each of the object identifiers of the first group of object identifiers and the second group of object identifiers; determining a first sequence of points associated with the first group of object identifiers in the point set; and connecting consecutive points in the first sequence of points to form line segments in the first sequence of line segments.
[0085] According to one example implementation of the present disclosure, the method further includes: in response to determining an intersection between an extension line of a first boundary of a first object identifier of a first object of the plurality of objects and a second boundary of a second object identifier of a second object of the plurality of objects, updating the point set based on the intersection.
[0086] According to one example implementation of the present disclosure, determining the first point sequence comprises: selecting the first point from the point set, the first point being a specified point in the first object identification in the first group of object identifications; determining a plurality of second points in the point set based on the first point; and determining the first point sequence based on the first point and the plurality of second points.
[0087] According to one example implementation of the present disclosure, determining the plurality of second points comprises: adding the first point to the first point sequence as a head point of the first point sequence; determining a second point in the point set from the first point in a direction in the at least one direction corresponding to the first point, the second point satisfying a predetermined distance condition with the first point; and adding the second point to the first point sequence as a tail point of the first point sequence in response to determining that the second point satisfies a predetermined addition condition, the predetermined addition condition comprising: the second point being a point at a boundary of an object identification in the first group of object identifications and the second point not having been added to the first point sequence.
[0088] According to one example implementation of the present disclosure, the method further comprises: in response to determining that the second point does not satisfy the predetermined addition condition, searching for a second point in the point set in another direction in the at least one direction.
[0089] According to one example implementation of the present disclosure, the method further comprises: in response to determining that the tail point is different from the head point, taking the tail point as the first point; searching for a second point in the point set from the first point along a direction corresponding to the first point, the second point satisfying a predetermined distance condition with the first point; and adding the second point to the first point sequence as a tail point of the first point sequence in response to determining that the second point satisfies a predetermined addition condition.
[0090] According to one example implementation of the present disclosure, the method further comprises: in response to determining that the tail point is the same as the head point, connecting the first point sequence to form a first group of line segment sequences.
[0091] According to one example implementation of the present disclosure, the method further comprises: in response to determining that no second point satisfying the predetermined addition condition is found in the at least one direction, emptying the first point sequence; and selecting another first point from the point set, the another first point being in another object identification in the first group of object identifications.
[0092] According to one example implementation of the present disclosure, the method further comprises: selecting another first point from the point set, the another first point being in another object identification in the first group of object identifications and the second group of object identifications.
[0093] According to one example implementation of the disclosure, the method further includes: in response to determining that the first group of objects is updated, determining an updated first group of line segment sequences associated with updated first group object identifiers of the updated first group of objects; and presenting the updated first group of line segment sequences in the second layer.
[0094] According to one example implementation of the disclosure, the method is implemented in a live application, the target event is a live confrontation event in the live application, and the object identifier is an identifier of a user participating in the live confrontation event.
[0095] Example apparatuses and devices
[0096] FIG. 8 illustrates a block diagram of an apparatus 800 for displaying object identifiers according to some implementations of the disclosure. The apparatus 800 includes: an object determining module 810 configured to determine a plurality of objects corresponding to a target event, the plurality of objects including a first group of objects of a first type and a second group of objects of a second type; an identifier presenting module 820 configured to present a plurality of object identifiers of the plurality of objects in a first layer respectively, the first group of object identifiers of the first group of objects being presented with a first display manner, and the second group of object identifiers of the second group of objects being presented with a second display manner; a visual element determining module 830 configured to determine a first group of line segment sequences associated with the first group of object identifiers; and a visual element presenting module 840 configured to present the first group of line segment sequences in a second layer.
[0097] According to one example implementation of the disclosure, the first group of line segment sequences includes at least a portion of boundaries of at least a portion of the object identifiers in the first group of object identifiers, and a connecting line between two of the at least a portion of the boundaries.
[0098] According to one example implementation of the disclosure, the line segment sequence determining module 830 is further configured to: determine a point set based on vertices of respective object identifiers in the first group of object identifiers and the second group of object identifiers; determine a first point sequence associated with the first group of object identifiers in the point set; and connect consecutive points in the first point sequence to form line segments in the first group of line segment sequences.
[0099] According to one example implementation of the disclosure, the apparatus further includes a point set updating module configured to, in response to determining an intersection between an extension line of a first boundary of a first object identifier of a first object in the plurality of objects and a second boundary of a second object identifier of a second object in the plurality of objects, update the point set based on the intersection.
[0100] According to one example implementation of the present disclosure, the line segment sequence determination module 830 comprises a point sequence determination module configured for selecting a first point from the point set, the first point being a specified point in a first object identification in the first group of object identifications; determining a plurality of second points in the point set based on the first point; and determining a first point sequence based on the first point and the plurality of second points.
[0101] According to one example implementation of the present disclosure, the point sequence determination module comprises a second point determination module configured for adding the first point to the first point sequence as a head point of the first point sequence; determining a second point in the point set from the first point in a direction in the at least one direction corresponding to the first point, the second point satisfying a predetermined distance condition with the first point; and adding the second point to the first point sequence as a tail point of the first point sequence in response to determining that the second point satisfies a predetermined addition condition, the predetermined addition condition comprising that the second point is a point at a boundary of an object identification in the first group of object identifications and that the second point has not been added to the first point sequence.
[0102] According to one example implementation of the present disclosure, the apparatus further comprises a second point search module configured for searching for a second point in the point set in another direction in the at least one direction in response to determining that the second point does not satisfy the predetermined addition condition.
[0103] According to one example implementation of the present disclosure, the apparatus further comprises an addition module configured for adding the tail point as the first point in response to determining that the tail point is different from the head point; searching for a second point in the point set from the first point along a direction corresponding to the first point, the second point satisfying a predetermined distance condition with the first point; and adding the second point to the first point sequence as a tail point of the first point sequence in response to determining that the second point satisfies a predetermined addition condition.
[0104] According to one example implementation of the present disclosure, the apparatus further comprises a connection module configured for connecting the first point sequence to form the first group of line segment sequences in response to determining that the tail point is the same as the head point.
[0105] According to one example implementation of the present disclosure, the apparatus further comprises an emptying module configured for emptying the first point sequence in response to determining that no second point satisfying the predetermined addition condition is found in the at least one direction; and selecting another first point from the point set, the another first point being in another object identification in the first group of object identifications.
[0106] According to one example implementation of the present disclosure, the apparatus further comprises a selection module configured for selecting another first point from the point set, the another first point being in another object identification in the first group of object identifications and the second group of object identifications.
[0107] According to one example implementation of the present disclosure, the apparatus further includes a line segment sequence updating module configured to, in response to determining that the first group of objects is updated, determine an updated first group of line segment sequences associated with updated first group object identifiers of the updated first group of objects; and present the updated first group of line segment sequences in the second layer.
[0108] According to one example implementation of the present disclosure, the apparatus is implemented in a live application, the target event is a live confrontation event in the live application, and the object identifier is an identifier of a user participating in the live confrontation event.
[0109] FIG. 9 illustrates a block diagram of a device 900 that is capable of implementing the implementations of the present disclosure. It should be understood that the computing device 900 illustrated in FIG. 9 is merely an example and should not be construed as any limitation of the functionality and scope of the implementations described herein. The computing device 900 illustrated in FIG. 9 can be used to implement the methods described above.
[0110] As illustrated in FIG. 9, the computing device 900 is in the form of a general- purpose computing device. Components of the computing device 900 can include, but are not limited to, one or more processors or processing units 910, a memory 920, a storage device 930, one or more communication units 940, one or more input devices 950, and one or more output devices 960. The processing unit 910 can be a real or virtual processor and is capable of executing various processing in accordance with programs stored in the memory 920. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of the computing device 900.
[0111] The computing device 900 typically includes a plurality of computer storage media. Such media can be any available media that is accessible by the computing device 900 and includes both volatile and non-volatile media, removable and non-removable media. The memory 920 can be a volatile memory (e.g., registers, cache, random access memory (RAM)), a non-volatile memory (e.g., read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory), or some combination thereof. The storage device 930 can be a removable or non-removable media and can include machine-readable media such as a flash drive, a magnetic disk drive, or any other media that can be used to store information and / or data (e.g., training data for training) and that can be accessed by the computing device 900.
[0112] The computing device 900 can further include additional removable / non-removable, volatile / non-volatile storage devices. Although not shown in FIG. 9, a magnetic disk drive and an optical disk drive can be provided for reading from or writing to a removable, non-removable, magnetic disk (e.g., a "hard drive"), and an optical disk (e.g., a CD-ROM), respectively. In these instances, each can be connected to the bus by one or more data media interfaces. The memory 920 can include a computer program product 925 having one or more program modules configured to carry out the various methods or actions of the various implementations of the present disclosure.
[0113] The communication unit 940 enables communications with other computing devices over a communication medium. Additionally, the functionality of the components of the computing device 900 can be implemented in a single computing cluster or a plurality of computer machines that are capable of communicating over a communication connection. Thus, the computing device 900 can operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another network nodes in the networking environment.
[0114] The input device 950 can be one or more input devices, such as a mouse, a keyboard, a trackball, etc. The output device 960 can be one or more output devices, such as a display, a speaker, a printer, etc. The computing device 900 can also communicate with one or more external devices (not shown) such as a storage device, a display device, etc. through the communication unit 940, as needed, communicate with one or more devices that enable a user to interact with the computing device 900, or any devices (e.g., a network card, a modem, etc.) that enable the computing device 900 to communicate with one or more other computing devices. Such communication can be carried out through an input / output (I / O) interface (not shown).
[0115] According to an example implementation of the present disclosure, there is provided a computer-readable storage medium having computer-executable instructions stored thereon, where the computer-executable instructions are executed by a processor to implement the method described above. According to an example implementation of the present disclosure, there is also provided a computer program product tangibly stored on a non-transitory computer-readable medium and comprising computer-executable instructions, where the computer-executable instructions are executed by a processor to implement the method described above. According to an example implementation of the present disclosure, there is provided a computer program product having a computer program stored thereon, which when executed by a processor implements the method described above.
[0116] The computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can include a non-transitory computer readable storage medium that can be a computer- readable storage medium having no data, programs, program modules, e.g., instructions for operation, or digital content stored thereon or therein for a short time or not at all.
[0117] These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can include a non-transitory computer readable storage medium that can be a computer- readable storage medium having no data, programs, program modules, e.g., instructions for operation, or digital content stored thereon or therein for a short time or not at all.
[0118] These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can include a non-transitory computer readable storage medium that can be a computer- readable storage medium having no data, programs, program modules, e.g., instructions for operation, or digital content stored thereon or therein for a short time or not at all.
[0119] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0120] Having described various implementations of the disclosure above, the descriptions are not exhaustive and do not limit the disclosure to the disclosed implementations. Numerous modifications and adaptations thereof will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The scope of the disclosure includes all the implementations of which an equivalent would be apparent to those skilled in the art from the disclosure given and the associated drawings. The selection of the terms to be used in the written description is not intended to limit the scope of the present disclosure, but rather to best describe the principles of various implementations in preference to a detailed inventory of all technical terms.
Claims
1. A method for displaying object identifications, comprising: determining a plurality of objects corresponding to a target event, the plurality of objects including a first group of objects of a first type and a second group of objects of a second type; presenting a plurality of object identifications of the plurality of objects respectively in a first layer, a first group of object identifications of the first group of objects being presented with a first display manner and a second group of object identifications of the second group of objects being presented with a second display manner; determining a first group of sequences of visual elements associated with the first group of object identifications; and presenting the first group of sequences of visual elements in a second layer. 2.The method of claim 1, wherein the first group of sequences of visual elements includes a first group of sequences of line segments, and the first group of sequences of line segments includes at least a portion of boundaries of at least a portion of the object identifications in the first group of object identifications and a connecting line between two of the at least a portion of the boundaries. 3.The method of claim 2, wherein determining the first group of sequences of line segments comprises: determining a set of points based on vertices of respective object identifications in the first group of object identifications and the second group of object identifications; determining a first sequence of points in the set of points associated with the first group of object identifications; and connecting consecutive points in the first sequence of points to form line segments in the first group of sequences of line segments. updating the set of points based on an intersection between an extension line of a first boundary of a first object identification of a first object in the plurality of objects and a second boundary of a second object identification of a second object in the plurality of objects in response to determining the intersection. 5.The method of claim 3, wherein determining the first sequence of points comprises:
4. The method of claim 3, further comprising: selecting a first point from the set of points, the first point being a specified point in a first object identification in the first group of object identifications; determining a plurality of second points in the set of points based on the first point; and determining the first sequence of points based on the first point and the plurality of second points. 6.The method of claim 5, wherein determining the plurality of second points comprises: adding the first point to the first sequence of points as a head point of the first sequence of points; determining a second point in the set of points from the first point in a direction of at least one direction corresponding to the first point, the second point satisfying a predetermined distance condition with the first point; adding the second point to the first sequence of points as a tail point of the first sequence of points in response to determining that the second point satisfies a predetermined addition condition, the predetermined addition condition including that the second point is a point at a boundary of an object identification in the first group of object identifications and the second point has not been added to the first sequence of points. searching for the second point in the set of points in another direction of the at least one direction in response to determining that the second point does not satisfy the predetermined addition condition. 8.The method of claim 7, further comprising: adding the tail point as the first point in response to determining that the tail point is different from the head point. 7. The method of claim 6, further comprising: search, from the first point, a second point in the point set along a direction corresponding to the first point, the second point satisfying a predetermined distance condition with the first point; add, in response to determining that the second point satisfies a predetermined addition condition, the second point to the first point sequence as a tail point of the first point sequence.
9. The method of claim 6, further comprising: connect, in response to determining that the tail point is identical to the head point, the first point sequence to form the first sequence of line segments.
10. The method of claim 7, further comprising: empty, in response to determining that no second point satisfying the predetermined addition condition is found along the at least one direction, the first point sequence; and select another first point from the point set, the another first point being in another object identification in the first set of object identifications.
11. The method of claim 3, further comprising: select another first point from the point set, the another first point being in another object identification in the first set of object identifications and the second set of object identifications.
12. The method of claim 2, further comprising: determine, in response to determining that the first set of objects is updated, an updated first sequence of line segments associated with an updated first set of object identifications of the updated first set of objects; and present, in a second layer, the updated first sequence of line segments.
13. The method of claim 1, wherein the method is implemented in a live application, the target event is a live confrontation event in the live application, and the object identification is an identification of a user participating in the live confrontation event.
14. An apparatus for displaying object identifications, comprising: an object determining module configured to determine a plurality of objects corresponding to a target event, the plurality of objects including a first set of objects of a first type and a second set of objects of a second type; an identification presenting module configured to present a plurality of object identifications of the plurality of objects in a first layer respectively, a first set of object identifications of the first set of objects being presented with a first display manner, and a second set of object identifications of the second set of objects being presented with a second display manner; a visual element determining module configured to determine a first sequence of visual elements associated with the first set of object identifications; and a visual element presenting module configured to present the first sequence of visual elements in a second layer.
15. An electronic device, comprising: at least one processor; and at least one memory coupled to the at least one processor and storing instructions for execution by the at least one processor, the instructions, when executed by the at least one processor, cause the electronic device to perform the method according to any one of claims 1-13.
16. A computer-readable storage medium having computer-executable instructions stored thereon, the computer-executable instructions, when executed by a processor, cause the processor to implement the method according to any one of claims 1-13. 17. A computer-executable instruction product comprising computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Image editing method and device, equipment and storage medium
CN117201883A
Interaction control method and device, equipment and storage medium
CN117234374A
Method, device and equipment for live broadcast interaction and storage medium
CN117255220A
Method and device for content presentation, equipment and medium
CN117998147A
Constructive systems for objects in a computer-implemented graphics system
US6369829B1