Abstract:
A method for forming digital objects includes selecting a first existing object in a graphic space to build a first reference type; selecting a second existing object to build a second reference type; continuing the like process until Nth existing object is selected to build a Nth reference type; building the generation method of the new object based on the generation type of the object to be generated and the first to Nth reference types; finally building the contour shape of the new object based on the generation method and the shape type of the new object. The method can generate new objects intuitively in a simplified way.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to a method for forming digital objects in computer graphics and particularly to a method that employs one or more existing two-dimensional or three-dimensional objects in the computer graphic space as reference objects to generate a new two-dimensional or three-dimensional object.  
       BACKGROUND OF THE INVENTION  
       [0002]     Employing computer graphics to indicate a product design is well accepted by the general public and industry now. Designers do not have to fabricate molds to make models. Their ideas and concepts can be materialized and visualized by using graphic software on the computer. People for inquiry can see the required product picture through digital equipment.  
         [0003]     The method of using computer graphics to build an assembly consisting of two or more basic shaped objects generally is done by extending an existing object in a selected direction. When the objects hit another one, the hitting location is calculated. Coupling with preset binding method for the objects, a new object may be generated to couple these two or more basic shaped objects.  
         [0004]     The aforesaid method has a drawback: it has to generate all individual objects in advance, and has to generate individual objects in the direction to be extended, then determine in sequence the coupling method when hitting occurs to perform coupling operation. The generation process is complex. When the number of generation objects is great, the process becomes very complicated and is prone to error.  
       SUMMARY OF THE INVENTION  
       [0005]     Therefore, the primary object of the present invention is to resolve the aforesaid disadvantages of the conventional method that sequentially determines coupling methods when hitting occurs and performs coupling process thereafter. The present invention provides a novel graphic forming method that can be processed intuitively and simply to rapidly generate new object coupling.  
         [0006]     In order to achieve the foregoing object, the method according to the invention selects an existing first object in a graphic space, and based on the space object type of the desired generation object to calculate and build a first reference type. Similarly, select an existing second object to build a second reference type, and so on until selecting a Nth existing object for building the Nth reference type. Then based on the generation type of the desired generation object and the first to Nth reference types to build the generation type of the new object. Finally, based on the generation type and the shape type of the new object to build the contour shape of the new object.  
         [0007]     The foregoing, as well as additional objects, features and advantages of the invention will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]      FIG. 1  is the process procedures of the method according to the present invention.  
         [0009]      FIG. 2  is a schematic view of a selected reference object of an embodiment according to the present invention  
         [0010]      FIG. 3  is a schematic view of an embodiment of the present invention in a forming condition.  
         [0011]      FIG. 4  is a schematic view of another embodiment of the present invention in a forming condition.  
         [0012]      FIG. 5  is a schematic view of a selected reference object of yet another embodiment of the present invention.  
         [0013]      FIG. 6  is a schematic view of yet another embodiment of the present invention in a forming condition. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0014]     Please refer to  FIG. 1  for the method of forming digital objects according to the invention. The method includes the following steps: 
        a. Selecting a space object type of an object to be generated.     b. Selecting one or more existing blocks related to the object to be generated as reference object.     c. Based on the space object type of the object to be generated and the selected reference object to calculate and generate a new object.        
 
         [0018]     The space object type includes the following items:  
         [0019]     One or more reference types: serves as reference for the object to be generated and the selected existing object.  
         [0020]     Generation type: sets according to the reference type to dynamically determine the generation method of the space object.  
         [0021]     And a shape type: serves as shape description data cluster of the object to be generated.  
         [0022]     The calculation is based on the space object type and the one or more existing objects being selected. The first reference type is built by the first selected object, the second reference type is built by the second selected object, and so on until the Nth reference type is built by the Nth selected object. Then based on the first reference type to the Nth reference type, and the generation type to build the generation method of the new object. Finally based on the generation method of the new object and the shape type set forth above to generate the contour shape of the new object.  
         [0023]     Details are elaborated as follows by referring to the embodiments:  
         [0024]     Embodiment 1: Forming a square pillar object based on two reference objects.  
         [0025]     Refer to  FIGS. 2 and 3  for the reference objects and a forming embodiment. A new square pillar objects is the object to be generated. The original graphic space already has two existing objects which include a block 1   10  and a block 2   20  that serve as the reference objects to generate the new square pillar object. The generation process is as follows:  
                                                   Block1 10   Block2 20           Point Coordinates   Point Coordinates                           A1 (−20.0, 20.0, 300.0)   A2 (380.0, 420.0, 300.0)           B1 (−20.0, −20.0, 300.0)   B2 (380.0, 380.0, 300.0)           C1 (20.0, −20.0, 300.0)   C2 (420.0, 380.0, 300.0)           D1 (20.0, 20.0, 300.0)   D2 (420.0, 420.0, 300.0)           E1 (20.0, 20.0, 0.0)   E2 (420.0, 420.0, 0.0)           F1 (−20.0, 20.0, 0.0)   F2 (380.0, 420.0, 0.0)           G1 (−20.0, −20.0, 0.0)   G2 (380.0, 380.0, 0.0)           H1 (20.0, −20.0, 0.0)   H2 (420.0, 380.0, 0.0)                      
 
         [0026]     The space object type of the new object newBlock  30  is described as follows: 
        Reference type: 
            ReferenceObjectSet( )     ReferenceObject( 
                index: Integer,     selectedObject: ShapeObject,     targetPartOfSelectedObject: ReferencePart,     relationship: Relationship)    
               
            Embodiment values:     ReferenceObjectSet refObjectSet 1  
            =new ReferenceObjectSet( );    
            ReferenceObject refObject 11  
            =new ReferenceObject( 1 , block 1 , 
                Block.TOP_FACE_CENTER_POINT, JOINT);    
               
            refObjectSet 1 .add(refObject 11 );     ReferenceObject refObject 12  
            =new ReferenceObject( 2 , block 2 , 
                Block.TOP_FACE_CENTER_POINT, JOINT);    
               
            refObjectSet 1 .add(refObject 12 );        
 
         [0045]     The foregoing description is to build respectively a first reference object refObject 11  and a second reference object refObject  12  based on the setting of the reference types and the selected existing objects block 1   10  and block 2   20 . The first reference object refObject  11  comprises four parameters that include index=1 (1 represents the serial number of the reference object ) selectedObject=block 1  (represents the selected existing object  1  (block 1 ) 10 ), targetPartOfSelectedObject=Block.TOP_FACE_CENTER_POINT (represents the generation method of the new object  30  refers to the center point  11  of the top surface of the selected object  1  (block 1 ) 10 ), and relationship=JOINT (represents the new object  30  and the object  1  (block 1 ) 10  are coupled by the method of JOINT.  
         [0046]     The second reference object refObject 12  comprises four parameters that include index=2 (2 represents the serial number of the reference object λ selectedObject=block 2  (represents the selected existing object  2  (block 2 ) 20 ), targetPartOfSelectedObject=Block.TOP_FACE_CENTER_POINT (represents the generation method of the new object  30  refers to the center point  21  of the top surface of the selected object  2  (block 2 ) 20 ), and relationship=JOINT (represents the new object  30  and the object  2  (block 2 ) 20  are coupled by the method of JOINT).  
         [0047]     Then refObject 11  and refObject 12  are included in refObjectSet 1  to build a reference object cluster.  
         [0048]     Generation Type:  
         [0049]     Generation (targetShapeGeneration: Method, 
        refObjectSet: ReferenceObjectSet)        
 
         [0051]     Embodiment values:  
         [0052]     Generation generation 1  
            =new Generation(Block.TOP_FACE_CENTER_LINE, refObjectSet 1 );            
 
         [0054]     The generation method (generation 1 ) of the new object  30  is built based on the generation type described above and the aforesaid reference object cluster. The generation method comprises two parameters as follows: 
        targetShapeGeneration=Block.TOP_FACE_CENTER_LINE (represents that generation of the new object  30  is accomplished by extending along the center line of the top surface of the square pillar of the new object  30 ), and refObjectSet=refObjectSet 1  (represents that the center line of the top surface of the square pillar of the new object refers to the reference object cluster to generate the new object).        
 
         [0056]     Shape type:  
         [0057]     Block(width: Double, height: Double, 
        generation: Generation)        
 
         [0059]     Embodiment values 
        Block newBlock=new Block(30.0,40.0,generation 1 )        
 
         [0061]     The new object newBlock is built based on the generation method (generation 1 ) described above and the shape type. The new object (newBlock)  30  comprises three parameters that include width=30.0 (represents the width dimension of the cross section of the square pillar of the new object  30 ), height=40.0 (represents the height dimension of the cross section of the square pillar of the new object  30 ), and generation=generation 1  (represents the generation type of the square pillar of the new object  30 ).  
         [0062]     Generation process is as follows: Based on the setting of the reference types and the point coordinates record cluster of the existing object  1  (block 1 )  10  and object  2  (block 2 )  20 , coordinates calculations result in coordinate value of (0.0, 0.0, 300.0) for the center point of the top surface of the object  1  (block 1 )  10  and coordinate value of (400.0, 0.0, 300.0) for the center point of the top surface of the object  2  (block 2 )  20 .  
         [0063]     Based on the settings of the generation type and the foregoing calculated coordinates, generation of the new object (newBlock)  30  is accomplished by extending along a virtual straight line (X=t, 0≦t≦400, Y=0, Z=300).  
         [0064]     Based on the parameters refobject 11 .relationship=JOINT and refObject 12 .relationship=JOINT of the reference type, and the parameters of width=30.0, height=40.0 in the shape type, and the virtual straight line  121  of the generation method set forth above, and through coordinates calculations, the distal end coordinates of the projecting cross section  12  of the object  1  (block 1 )  10  are P 1  (20.0, −15.0, 300.0), Q 1  (20.0, −15.0, 260.0) R 1  (20.0, 15.0, 260.0) and S 1  (20.0, 15.0, 300.0), and the distal end coordinates of the projecting cross section  22  of the object  2  (block 2 )  20  are P 2  (380.0, −15.0, 300.0), Q 2  (380.0, −15.0, 260.0), R 2  (380.0, 15.0, 260.0) and S 2  (380.0, 15.0, 300.0).  
         [0065]     Hence based on the coordinates of eight points P 1 , Q 1 , R 1 , S 1 , P 2 , Q 2 , R 2  and S 2 , the new object (newBlock)  30  may be built.  
         [0066]     Embodiment 2: Forming an extended plate object based on two reference objects.  
         [0067]     Refer to  FIGS. 2 and 4  for the reference objects and a forming embodiment.  
         [0068]     As shown in the drawings, there are an object  1  (block 1 )  10  and an object  1  (block 2 )  20  as previously discussed. This embodiment aims to form a plate. In the original graphic space the object  1  (block 1 )  10  and object  2  (block 2 )  20  already existed. With the object  1  (block 1 )  10  and object  1  (block 2 )  20  as reference objects, a new object  40  (a plate object) is to be generated. The generation processing is as follows:  
                                                   Block1 - 10   Block2 - 20           Point Coordinates   Point Coordinates                           A1 (−20.0, 20.0, 300.0)   A2 (380.0, 420.0, 300.0)           B1 (−20.0, −20.0, 300.0)   B2 (380.0, 380.0, 300.0)           C1 (20.0, −20.0, 300.0)   C2 (420.0, 380.0, 300.0)           D1 (20.0, 20.0, 300.0)   D2 (420.0, 420.0, 300.0)           E1 (20.0, 20.0, 0.0)   E2 (420.0, 420.0, 0.0)           F1 (−20.0, 20.0, 0.0)   F2 (380.0, 420.0, 0.0)           G1 (−20.0, −20.0, 0.0)   G2 (380.0, 380.0, 0.0)           H1 (20.0, −20.0, 0.0)   H2 (420.0, 380.0, 0.0)                      
 
         [0069]     The space object type of the new object  40  is described as follows:  
         [0070]     Reference Types  
         [0071]     ReferenceObjectSet( )  
         [0072]     ReferenceObject (index: Integer, 
        selectedObject: ShapeObject,     targetPartOfSelectedObject: ReferencePart,     relationship: Relationship)        
 
         [0076]     Embodiment values:  
         [0077]     ReferenceObjectSet refObjectSet 2  
        =new ReferenceObjectSet( );        
 
         [0079]     ReferenceObject refObject 21  
        =new ReferenceObject( 1 , block 1 , 
            Block. TOP_FACE_RIGHT_LINE, JOINT);    
               
 
         [0082]     refObjectSet 2 .add(refObject 21 );  
         [0083]     ReferenceObject refObject 22  
        =new ReferenceObject( 2 , block 2 , 
            Block.TOP_FACE_LEFT_LINE, JOINT);    
               
 
         [0086]     refObjectSet 2 .add(refObject 22 );  
         [0087]     The foregoing description is to build respectively a first reference object refObject 21  and a second reference object refObject  22  based on the setting of the reference types and the selected existing object  1  (block 1 )  10  and object  2  (block 2 )  20 . The first reference object refObject  21  comprises four parameters that include index=1 (1 represents the serial number of the reference object ) selectedObject=block 1  (represents the selected existing object−(block 1 ) 10 ) targetPartOfSelectedObject=Block.TOP_FACE_CENTER_POINT (represents the generation method of the new object  40  refers to a line section C 1 D 1  on the right side of the top surface of the selected object  1  (block 1 ) 10 ), and relationship=JOINT (represents the new object  40  and the object  1  (block 1 )  10  are coupled by the method of JOINT).  
         [0088]     The second reference object refObject 12  comprises four parameters that include index=2 (2 represents the serial number of the reference object) selectedObject=block 2  (represents the selected existing object 2  (block 2 ) 20  ), targetPartOfSelectedObject=Block.TOP_FACE_CENTER_POINT (represents the generation method of the new object  40  refers to a line section A 2 B 2  on the left side of the top surface of the selected block 2   20  ) and relationship=JOINT (represents the new object  40  and the object 2  (block 2 )  20  are coupled by the method of JOINT).  
         [0089]     Then the refObject 21  and refObject 22  are included in refObjectSet 2  to build a reference object cluster.  
         [0090]     Generation Type:  
         [0091]     Generation (targetShapeGeneration: Method, 
        refObjectSet: ReferenceObjectSet)        
 
         [0093]     Embodiment values 
        Generation generation 2      =new Generation (Plate.TOP_FACE, refObjectSet 2 );        
 
         [0096]     The generation method (generation 2 ) of the new object  40  is built based on the generation type described above and the aforesaid reference object cluster. The generation method comprises two parameters as follows: 
        targetShapeGeneration=Plate.TOP_FACE (represents that generation of the new object  40  is accomplished by extending the top surface of the plate of the new object  40 ), and refObjectSet=refObjectSet 2  (represents that generation of the new object  40  refers to the reference object cluster).        
 
         [0098]     Shape type  
         [0099]     Plate (depth: Double, generation: Generation)  
         [0100]     Embodiment Values:  
         [0101]     Plate newPlate 1 =new Plate(20.0,generation 2 )  
         [0102]     The new object newPlate 1   40  is built based on the shape type and the generation method (generation 2 ) described above. The new object  40  comprises two parameters that include depth=20.0 (represents the thickness dimension of the new object  40 ), and generation=generation 2  (represents the generation type of the new object  40 ).  
         [0103]     Generation process is as follows: Based on the settings of the reference types and the point coordinates record cluster of the object  1  (block 1 )  10  and object  2  (block 2 )  20 , Block.TOP_FACE_RIGHT_LINE is the straight line between point C 1  and D 1 , i.e. the straight line between the coordinates points C 1  (20.0,−20.0,300.0) and D 1 (20.0,20.0,300.0); Block.TOP_FACE_LEFT_LINE is the straight line between point A 2  and point B 2 , i.e. the straight line between coordinates points A 2  (380.0,420.0,300.0) and B 2  (380.0,380.0,300.0).  
         [0104]     Based on the settings of the generation type and the foregoing  
         [0105]     Block.TOP_FACE_RIGHT_LINE and  
         [0106]     Block.TOP_FACE_LEFT_LINE, generation of the new object (newPlate 1 )  40  (a plate object) is accomplished by extending downwards from a virtual plane (Plate.TOP_FACE)  41  formed by points C 1 , D 1 , A 2  and B 2 .  
         [0107]     Based on the parameters refObject 21 .relationship=JOINT, and refObject 22 .relationship=JOINT of the reference types, and the parameters of depth=20.0 in the shape type, and the virtual plane  41  generated by the aforesaid method, the result of coordinates calculations is as follows: C 1 Z(20.0,−20.0,280.0) D 1 Z(20.0,20.0,280.0) A 2 Z(380.0,420.0,280.0) and B 2 Z(380.0,380.0,280.0).  
         [0108]     Then based on the eight coordinate points C 1 , D 1 , A 2 , B 2 , C 1 Z, D 1 Z, A 2 Z, and B 2 Z, the new plate object (newplate  1 )  40  may be built.  
         [0109]     Embodiment 3: Forming a plate based on a single reference object.  
         [0110]     Refer to  FIGS. 5 and 6  for the reference object and the forming embodiment. It differs from the previous two embodiments. The original graphic space has only one object  10 .  
         [0111]     The generation process for forming a new object  50  (plate object) based on the reference object  1  (block 1 )  10  is as follows:  
                                         Block1 - 10       Point Coordinates                                    A1 (−20.0, 20.0, 300.0)           B1 (−20.0, −20.0, 300.0)           C1 (20.0, −20.0, 300.0)           D1 (20.0, 20.0, 300.0)           E1 (20.0, 20.0, 0.0)           F1 (−20.0, 20.0, 0.0)           G1 (−20.0, −20.0, 0.0)           H1 (20.0, −20.0, 0.0)                      
 
         [0112]     The space object type of the new object  50  is described as follows:  
         [0113]     Reference Types 
        ReferenceObjectSet( )     ReferenceObject (index: Integer, 
            selectedObject: ShapeObject,     targetPartOfSelectedObject: ReferencePart,     relationship : Relationship)    
               
 
         [0119]     Embodiment Values:  
         [0120]     ReferenceObjectSet refObjectSet 3  
        =new ReferenceObjectSet( );        
 
         [0122]     ReferenceObject refObject 31  
        =new ReferenceObject( 1 , block 1 , Block.RIGHT_FACE, 
            JOINT);    
            refObjectSet 3 .add(refObject 31 );        
 
         [0126]     The foregoing description is to build a first reference object refObject 31  based on the settings of the reference types and the selected existing object  1  (block 1 )  10 . The first reference object refObject  31  comprises four parameters that include index=1 (1 represents the serial number of the reference object ) selectedObject=block 1  (represents the selected existing object 1 −(block 1 ) 10 ), targetPartOfSelectedObject=Block.RIGHT_FACE (represents the generation method of the new object  50  refers to a right side plane C 1 D 1 E 1 H 1  of the selected object 1  (block 1 ) 10 ) and relationship=JOINT ( represents the new object  50  and the object 1  (block 1 )  10  are coupled by the method of JOINT).  
         [0127]     Then refObject 31  is included in the object cluster refObjectSet 3  to build a reference object cluster.  
         [0128]     Generation Type:  
         [0129]     Generation(targetShapeGeneration: Method, refObjectSet: ReferenceObjectSet)  
         [0130]     Embodiment values:  
         [0131]     Generation generation 3  
        =new Generation(Plate.LEFT_FACE, refObjectSet 3 );        
 
         [0133]     The generation method (generation 3 ) of the new object is built based on the generation type described above and the aforesaid reference object cluster. The generation method (generation 3 ) comprises two parameters as follows:  
         [0134]     targetShapeGeneration=Plate.LEFT_FACE (represents that generation of the new object  50  is accomplished by extending the left side surface of the plate of the new object  50 ), and refObjectSet=refObjectSet 3  (represents that generation of the new object  50  refers to the reference object cluster).  
         [0135]     Shape type:  
         [0136]     Plate (depth: Double, generation: Generation)  
         [0137]     Embodiment Values:  
         [0138]     Plate newPlate 2 =new Plate(20.0,generation 3 )  
         [0139]     The new object new  50  is built based on the shape type and generation method described above. The new object  50  comprises two parameters that include depth=20.0 (represents the thickness dimension of the new object  50 ), and generation=generation 3  (represents the generation type of the new object  50 ).  
         [0140]     Generation process is as follows: Based on the settings of the reference type and the point coordinates record cluster of the existing object  1  (block 1 )  10 , Block._RIGHT_FACEE is a plane formed by four coordinates points C 1  (20.0,−20.0,300.0), D 1  (20.0,20.0,300.0), E 1  (20.0,20.0,0.0) and H 1  (20.0,−20.0,0.0).  
         [0141]     Based on the settings of the generation type and the foregoing Block.RIGHT_FACE, the new object  50  (newPlate 2 ) may be generated by extending rightwards of the virtual plane (Plate.LEFT_FACE)  51  formed by C 1  (20.0,−20.0,300.0), D 1  (20.0,20.0,300.0), E 1  (20.0,20.0,0.0) and H 1  (20.0,−20.0,0.0). Based on the parameter refObject 31 .relationship=JOINT of the reference type and parameter depth=20.0 of the shape type, and the virtual plane  51  calculated by the foregoing generation method, the results of coordinates calculations are: C 1 X(40.0,−20.0,300.0) D 1 X(40.0,20.0,300.0) E 1 X(40.0,20.0,0.0) and H 1 X(40.0,−20.0,0.0)  
         [0142]     Then based on the eight coordinate points C 1 , D 1 , E 1 , H 1 , C 1 X, D 1 X, E 1 X and H 1 X, the new object  50  (plate object newPlate 2 ) may be built.