Abstract:
A user interface method includes acquiring a shape of an object arrangement area entered by a user&#39;s sketch operation; acquiring an object conversion parameter based on the acquired shape of the object arrangement area; acquiring a symbol entered by a user&#39;s sketch operation; searching registered objects for a display object associated with the acquired symbol; converting initial data of the display object to form a converted display object based on the object conversion parameter; and displaying the converted display object in the object arrangement area.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   The present application claims priority from Japanese Application No. 2003-168357 filed on Jun. 12, 2003, the disclosure of which is hereby incorporated by reference herein. 
   BACKGROUND OF THE INVENTION 
   The present invention relates to a user interface method and device, and a computer program. 
   Many sketch interfaces are available that allow the user to perform interaction in the three-dimensional space through a two-dimensional operation. For example, see Teddy in Igarashi, T., Satoshi, M., Hidehiko, T., “Teddy: A Sketching Interface for 3D Freeform Design”, in Proc. of SIGGRAPH 99, 409-416, 1999, and Flat3D in Hiroaki Tobita, Junichi Rekimoto, “Flat3D: A Shared Virtual 3D World System for Creative Activities and Communication”, IPSJ JOURNAL, Vol. 44, No. 02, 2003. The operation of such sketch interface systems is simple because the user can perform all operations in three dimensions in exactly the same manner as the user performs operations in two dimensions. On the other hand, it is sometimes difficult to simply acquire an object with exact fidelity to the design image because the result of drawing work depends largely on the user&#39;s design skill. 
   Another method for building a scene is by describing the parameters (shape, position, size, color, etc.) of an object in the two- or three-dimensional space as a script. For example, see the Maya™ Mel script in Alias|wavefront company homepage http://www.aliaswavefront.com/en/news/home.shtml. The scene building method using a script like this allows the user to build a scene as if the user wrote a sentence but requires the user to describe a script using an editor. This prevents the user from interacting directly with the three-dimensional space. In addition, because the user must memorize the operation/behavior of the syntax rules and functions for describing a script in order to acquire an intended scene or object, many users cannot perform the operation easily. 
   SUMMARY OF THE INVENTION 
   In view of the above-described issues relating to the related art, an embodiment of the present invention provides a user interface method that is intuitive and easy to operate and that allows the user to easily acquire an object with higher fidelity to a design image. According to another embodiment of the present invention, there is provided a user interface method that allows the user to easily generate an object with fidelity to a design image when the user interacts in a three-dimensional space through a two-dimensional operation. According to still another embodiment of the present invention, there is provided a user interface method that uses text-based symbols, such as characters, character strings, and sentences, but allows the user to perform intuitive interactions in the three-dimensional space using the meaning of the symbols. Still other objects of the present invention will become apparent by the drawings and the description given below. 
   A user interface method and apparatus and a computer program according to an embodiment of the present invention use the configurations described below. According to the invention, a shape of an object arrangement area entered by a user&#39;s sketch operation is acquired, and an object conversion parameter is acquired based on the acquired shape of the object arrangement area. In addition, a symbol entered by a user&#39;s sketch operation is acquired, and registered objects for a display object associated with the acquired symbol are searched. The initial data of the display object is converted to form a converted display object based on the object conversion parameter, and the converted display object is displayed in the object arrangement area. 
   In such configurations, the user can specify an object arrangement area through an intuitive operation, called a sketch operation, to perform various operations on a display object. In addition, in such configurations, the user can specify a symbol through an intuitive operation, called a sketch operation, to easily call a registered display object related to the symbol. The designation of an object arrangement area can be performed by a simple operation, for example, by drawing a closed curve, and the designation of a symbol through sketching can be performed based on a user-familiar operation in which the user writes a character on a paper. Therefore, the configurations described above can provide a design tool that does not depend largely on the user&#39;s design skill and that is easy and intuitive. 
   The sketch operation may be performed by various pointing means such as a mouse, a track ball, a tablet device, a gesture input system, or an optical pointing system. During the sketch operation, the system can help the user through appropriate processing such as point interpolation and smoothing. The registered objects may be updated by an appropriate method. This update may be performed, for example, by newly acquiring an object as necessary from a picture or a user sketch, assigning an appropriate symbol to the object, and registering it with a predetermined resource, such as a database, or by rewriting initial data on an object associated with a symbol or rewriting pointer information pointing to the initial data. 
   According to an embodiment of the present invention, the initial data can include initial shape data of the display object, and the conversion can include changing the shape of the display object from the initial shape. The conversion of the initial data on the display object may include not only changing the shape, but also various visual conversions such as converting the brightness, converting the colors, converting the shading in color, or changing the patterns. In addition, if conversion parameters are set so that other modules in the same application or other applications can reference them, not only can a visual effect be added to the display object, but also other various applications can be made. For example, a visual effect (for example, the conversion of peripheral objects, etc) in an area outside the object arrangement area or an audio effect (for example, the generation of a sound effect) associated with the display object can be generated. 
   In addition, according to an embodiment of the present invention, it is possible to use a configuration in which the object arrangement area has an initial set shape, and the object conversion parameter is acquired based on a comparison between the initial set shape and the acquired shape of the object arrangement area. 
   According to an embodiment of the present invention, it is possible to use a configuration in which the initial set shape of the object arrangement area is three-dimensional and the acquired shape of the object arrangement area is two-dimensional. In one variant, the initial set shape is converted into a two-dimensional projection, and the object conversion parameter is acquired based on a comparison between the two-dimensional projection of the initial set shape and the acquired shape of the object arrangement area. In another variant, the acquired shape of the object arrangement area is extended into three dimensions, and the object conversion parameter is acquired based on a comparison between the acquired shape of the object arrangement area extended into three dimensions and the initial set shape of the object arrangement area. This configuration provides the user with the ability to specify the object arrangement area through a two-dimensional operation and to perform an intuitive interaction with a three-dimensional space. 
   Furthermore, according to an embodiment of the present invention, it is also possible to use a configuration in which the symbol is a character, a character string, or a sentence and the display object associated with the symbol is an image object related to a meaning of the symbol. Such a configuration enables the user to acquire an image object easily through a character even if the user is not familiar with the syntax or the semantics of the script language. In other words, it can be said that the meaning of the character is presented to the user through the display object. In this case, when the user enters as a symbol a character, a word, or a phrase, etc. whose meaning is unknown, the user can recognize its meaning as an image that is adapted to the user-specified arrangement area shape. 
   According to an embodiment of the present invention, there is provided a user interface method that allows the user to perform operations intuitively and easily and to acquire an object which is close to a design image relatively easily. In addition, according to an embodiment of the present invention, there is provided a user interface method that allows the user to generate an object which is close to a design image when the user performs interactions for a three-dimensional space via two-dimensional operations. In addition, according to an embodiment of the present invention, there is provided a user interface method in which the user, who uses a text-based symbol such as a character, a character string, or a sentence, can interact with the three-dimensional space intuitively through the meaning of the symbol. 
   In addition, according to an embodiment of the present invention, it is possible to provide a very useful education tool, especially a tool for character education or word education. For example, the shape of a kanji character is derived, in many cases, from the shape associated with a behavior in the real world and therefore the direct association between a kanji character and an object such as an image helps us understand the meaning and the shape. Therefore, this method in which kanji characters are directly associated with objects, is considered efficient in kanji character education for children and in Japanese education for foreigners. When teaching words to infants or non-native learners, the ability to show a word as well as its corresponding image would attract the learner&#39;s interest and achieve a high learning effect. 
   In addition, the acquisition of a display object according to an embodiment of the present invention can be used not only for conversion, but also as a trigger for drawing. Painting an object, with a converted object as the base, has the function of a trigger for creation. 
   A display object according to an embodiment of the present invention, which can be created based on a simple data configuration, can be used as a new communication tool attached to e-mail, etc. That is, because data can be a drawing in a bit map, the drawing can be sent via e-mail. A display object is also useful when a handwritten character is input to a computer, such as a PDA, that supports pen input. In addition, because an object can be generated by drawing a kanji character in a shared virtual space communication and its size is small, a display object is useful in communications via a network. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and other objects, features and advantages of the present invention will become more apparent from the following description of the presently preferred exemplary embodiment of the invention taken in conjunction with the accompanying drawings, in which: 
       FIG. 1  is a general block diagram showing one embodiment of functional modules of a user interface apparatus according to an embodiment of the present invention; 
       FIG. 2  is a flowchart showing the typical processing flow of a user interface method according to an embodiment of the present invention; 
       FIG. 3  is a flowchart showing the user interface method according to an embodiment of the present invention with the focus on a user input event; 
       FIG. 4  is a flowchart showing the adaptation of a display object to an object arrangement area; 
       FIG. 5  is a display image in a system according to an embodiment of the present invention; 
       FIGS. 6A and 6B  are display images of basic conversion in the system according to an embodiment of the present invention; 
       FIGS. 7A-7C  are display images of applied conversion in the system according to an embodiment of the present invention; 
       FIG. 8  is an example of an overview of pseudo code; 
       FIG. 9  is an example of definition of drawing object data; 
       FIG. 10  is an example of an application main method  1 ; 
       FIG. 11  is an example of an application main method  2 ; 
       FIGS. 12A and 12B  depict an example of an application main method  3 ; 
       FIG. 13  is an example of an application main method  4 ; 
       FIGS. 14A and 14B  depict an example of an application main method  5 ; 
       FIGS. 15A and 15B  depict an example of other methods  1 ; 
       FIG. 16  is an example of other methods  2 ; and 
       FIGS. 17A and 17B  depict an example of other methods  3 . 
   

   DETAILED DESCRIPTION 
   System Overview 
   First, an overview of an example of a system in accordance with the present invention will be described briefly. This system example allows the user to acquire an image object through handwriting input. In this example, the user basically draws a silhouette (contour/line/outline/silhouette) and draws a kanji character in an appropriate area to generate an object related to the character in the silhouette. 
   The basic processing flow of this example is as follows:
     1. A user draws a silhouette (for example, a closed curve).   2. The system displays the silhouette.   3. The user enters a kanji character in an appropriate drawing area (for example, inside the closed curve).   4. The system holds the size/shape data of the silhouette (usable for conversion parameters based on a comparison with a template) and the recognition result of the character.   5. The system references the database based on the recognition result of the character and selects a display object corresponding to the character.   6. The system shapes the display object in accordance with the shape of the silhouette.   7. The system displays the display object within the silhouette.
 
Example of Screen Image
   

   Using  FIG. 5  to  FIG. 7 , an example of a display image in this system will be shown. In the example in  FIG. 5 , the input side interaction from the user to the system is performed basically by the selection of a GUI and the drawing of a silhouette and a kanji character. Therefore, the interaction is performed based on the operation of a mouse, for example, in a hardware configuration in which a standard PC (Personal Computer) and a monitor are combined. By combining the system with a system that supports pen input or finger input, such as a tablet PC, a PDA, or a wall-type real-world-oriented interface, the system can provide the user with a more natural operation. 
   In the example in  FIG. 5 , the user performs operations for the system through GUI (Graphical User Interface) component selection and stroke drawing. In this example, the display area is divided roughly into a GUI component part and a drawing part. 
   An example of the GUI component part, shown at the bottom of  FIG. 5 , includes GUI components for mode selection and so on. The GUI components for mode selection include, for example, a silhouette input GUI component, a symbol input GUI component, a change GUI component, a pen GUI component, a text GUI component, an erasure GUI component, or a selection object change GUI component. Those GUI components either may be displayed in the format shown in  FIG. 5  or prepared in the system as other selection-type GUI objects such as a radio button, a checkbox, or a pull-down menu. Today, a user or a system developer can easily change the correspondence between the GUI components and the corresponding functions. Therefore, the correspondence between the GUI components and the related functions is not described in  FIG. 5 . It should be understood that a necessary function that will be used can be related to a GUI component. 
   An example of the drawing part is shown in the center of  FIG. 5 . 
   The system proceeds to the silhouette drawing mode, for example, when the user selects the silhouette GUI component in the example in  FIG. 5 . In this mode, the user can draw a silhouette in the workspace. This drawing result is held in the system as a list of three-dimensional position information. The list information should be treated as a storage object (an object to be held by the system) only when a closed curve is drawn. In addition, the system enters the kanji character drawing mode, for example, when the user selects the kanji GUI component after drawing a silhouette. In this mode, the user can directly or indirectly draw (handwrite) a kanji character, for example, within a silhouette. The drawn kanji character is held by the system as image data on the screen. 
   After that, when the user presses the set GUI component, processing is performed for two types of data: the list data holding the position information and the image data holding the kanji character drawing information. For example, a stroke list, which is a data set that allows the application drawing module to draw a closed curve, is passed to the Triangular function to segment the inside of the closed curve into pieces based on a plurality of triangles. The image data is passed to the OCR (Optical Character Recognition) library for character recognition. The database is referenced based on the result of character recognition to determine the object, and this object is applied to the silhouette to complete the conversion from the kanji character to the object. 
   In this system example, conversion to an object is also possible in some cases, not via a silhouette, but from a drawn kanji character only. Conversion is also possible from only a drawn kanji character by treating the outline of a kanji character in the same manner a silhouette is processed. In addition, instead of providing selection GUI components, a system may also be built in which the mode can be changed by some other methods, for example, by acquiring an object from a drawn stroke only. 
   In this system example, if the user selects the kanji character GUI component and then draws “           ”, the model of a tree appears in the silhouette as shown in  FIG. 6 . For example, by building the system so that another object candidate can be applied to the character by performing a selection operation (for example, press) for the change GUI, the user can easily acquire an object that suits the user&#39;s application more precisely. It is also possible to directly convert the shape of an object by changing the way the character is drawn. Because a plurality of objects are stored for the same kanji character in the database in advance, the user can select from those candidates through the GUI operation. As a result, the user can acquire an object in three processes: silhouette drawing, kanji character drawing, and selection. Therefore, this system is characterized in that the user can use the system without special training because the system is based on kanji characters and so on with which the user is already familiar and which are used in writing sentences in daily life.
   With this system example, the user can generate a more complex object by using a combination as shown in  FIG. 7 . Drawing a kanji character on an object, which is acquired from a silhouette and a drawn kanji character, generates a complex object. For example, writing “           ” in the silhouette to acquire a tree object and then writing “         ” on the tree object generates a red tree object. Also possible is an interaction method that enables the objects to have a relationship between them. Setting a clock object, which is acquired from a silhouette and the drawn kanji character “         ”, next to the tree object can change the status of the tree by operating the clock.
   This system is designed for various materials. For example, conversion not only to a model but also to a sound (laugh, anger, cry), as well as application to various contents such as an animation character (fly, run, walk), is also possible. Objects can be easily added to this system by updating the database of the templates. 
   Functional Modules 
     FIG. 1  is a block diagram showing an embodiment of the functional modules of a user interface apparatus in the embodiment. For convenience,  FIG. 1  shows only a very simplified image. In the actual implementation of this embodiment, the functions of these functional modules are allocated as necessary to hardware components and software components. Consequently, it is highly possible that the overview of an actual implementation will not be the same as that shown in  FIG. 1 . Also, modifications, corrections, additions, functional extensions and so on may be added to the functional modules. 
   An input user interface  1  in  FIG. 1 , composed of user input devices such as a keyboard, a mouse, or a tablet input unit, has an IF function that transfers data from the user input devices to a user input processing module  3 . In this embodiment, it is preferable that the input user interface  1  be equipped at least with a user input device which allows the user to perform a sketch operation. Of course, a variety of input modes are also possible by using a configuration, for example, a multi-modal input mode configuration, in which multiple input means or multiple types of input means are provided. 
   The user input processing module  3  interprets a user operation entered via the input user interface  1  and sends commands and data to a symbol recognition module  5 , a silhouette recognition module  7 , or other internal input processing module  21  in the subsequent stage so that processing for the user operation is performed. In this embodiment, it is preferable that the user input processing module  3  be capable of recognizing at least a silhouette input and a symbol input from a user&#39;s sketch operation. Such a configuration can be implemented by making a conditional judgment using GUI component selection information or user input stroke information as the key. In this case, a symbol may take various forms, for example, characters such as a kana character, a katakana character, a kanji character, a hangul character, an Arabic alphabet, and an alphabet character; symbol characters such as a space, a comma, a period, an at mark, and a face mark; graphics; illustrations; and a combination of those characters such as a character string. When a character is used as the symbol, any character code such as ASCII and Unicode may be used. A silhouette is an object that is the base of a model that is displayed in such a way that the model graphic corresponding to a symbol is displayed with some relation to the symbol. For example, a silhouette is a display area in which the model graphic corresponding to a symbol is displayed. In this embodiment, it is preferable that both a symbol and a silhouette can be input by the user easily through a switch operation rather than require the user to have a sophisticated design skill. 
   The symbol recognition module  5  recognizes a symbol sketch-entered by the user based on data on the input symbol received from the user input processing module  3 . This module is implemented by using, for example, the character recognition function of an OCR or Graffiti of Palm OS® (Palm, Inc.). The silhouette recognition module  7  recognizes the shape and other features of a silhouette sketch-entered by the user based on data on the silhouette entered from the user input processing module  3 . It is desirable that the accuracy of symbol recognition and silhouette recognition be maintained by using appropriate processing such as data integration, calibration, and interpolation. 
   A template search module  11  searches a template database  13  for a corresponding template in response to the recognition result from the symbol recognition module  5  or the silhouette recognition module  7  (hereinafter, the database is abbreviated “DB”). The search result is sent to a model generation module  15 . A DB update module  9  adds, changes, deletes, or rewrites template data or the correspondence between a symbol and a silhouette and updates the registration information in the template DB  13 . To update the DB by the DB update module  9 , a configuration created automatically based on a predetermined rule, a configuration created manually based on a user&#39;s predetermined instruction, or a configuration created by appropriately combining those configurations may be used. Although  FIG. 1  shows that the DB is updated by the DB update module  9  based on data from the symbol recognition module  5  or the silhouette recognition module  7 , this embodiment is not limited to this configuration. It is, of course, possible to update the DB based on data input from the other input processing module  21 . 
   The template database  13 , in which template data on display objects is stored, has a configuration in which symbol data, such as a recognized character, can at least be used to search for the template of a corresponding display object via the template search module  11 . In some cases, the template database  13  may be configured in such a way that the template data on a silhouette is stored. The template database  13  can be implemented easily by configuring it so that symbol data and a corresponding template are included in the same entry or by configuring it so that a corresponding template can be searched for from symbol data via one or more identification information units (ID number, pointer, URL, etc.). Data in the database can be recorded in a non-distributed manner in the local resource of an apparatus connected to a network or a standalone apparatus or in a distributed manner in a network including a plurality of apparatuses. 
   Templates registered with the template database  13  may be three-dimensional data. Using this configuration allows a three-dimensional model to be generated easily from a two-dimensional sketch input by the user. That is, in such a configuration a sketch interface can be provided that makes it easy to interact with three-dimensional space. In addition, the user input processing module  3 , the symbol recognition module  5 , and the silhouette recognition module  7  can have a function of extending two-dimensional data into three dimensions. For the function of extending two-dimensional data into three dimensions, the invention described in Japanese Patent Laid-Open Publication No. 2002-024860, Japanese Patent Laid-Open Publication No. 2002-074399, Japanese Patent Application No. 2002-000945, or Japanese Patent Application No. 2002-363493, naming the inventor of the present invention and his colleagues as inventors, may be used. The contents of those patent documents are incorporated herein by reference. 
   In response to template data from the template search module  11 , the model generation module  15  converts the acquired template appropriately and generates a model of a display object corresponding to the silhouette or the input symbol. This system is configured such that a conversion result created for at least one silhouette is reflected on the corresponding display object of an input symbol displayed in connection with the silhouette. 
   A display processing module  17  creates data, displayable on a display and so on included in an output user interface  19 , from a model and so on generated by the model generation module  15 . When three-dimensional data is used for a template as described above, the display processing module  17  converts three-dimensional data to two-dimensional data, for example, through rendering processing. The output user interface  19  includes output devices, such as a display unit, an audio output unit, and a tactile output unit. The configuration of the output user interface  19  is well known and its description is omitted. 
   In  FIG. 1 , the other input processing module  21  and an other output processing module  25  are functional modules that perform processing other than the processing described above. For example, the other output processing module  25  can generate voice output data corresponding to a generated model, and the other input processing module  21  can process a user input other than a symbol input or a silhouette input and execute appropriate internal processing. 
   Example of Processing Flow 
     FIG. 2-FIG .  4  are flowcharts showing an example of the user interface method in this embodiment. More specifically,  FIG. 2  shows a flowchart indicating a typical process flow, and  FIG. 3  shows a flowchart which focuses on the user input events. In addition,  FIG. 4  shows a more detailed flowchart for some steps in  FIG. 2  and  FIG. 3 . 
   First, in step S 1 , whether the user has drawn a silhouette is detected. This step is executed, for example, by detecting whether the user has selected the silhouette drawing mode and has performed a predetermined drawing operation, such as an operation for drawing a closed curve. If the result is positive, control is passed to step S 2 ; if the result is negative, step S 1  is repeated as long as the silhouette drawing mode is selected. 
   In step S 2 , the silhouette area entered by the user is identified and the silhouette model is acquired. For a silhouette model that is a very simple model, such as a circle or a ball, the silhouette model itself need not be registered with the database but can also be acquired through calculation each time the silhouette is entered. On the other hand, for a complex model to be converted into a silhouette, it is possible to use a configuration in which the template data is registered with the database and, based on the recognition result of the user input, the silhouette template is searched for from the database. 
   In step S 3 , the stroke information is stored in a predetermined resource. The stroke information includes drawing data on the silhouette corresponding to the stroke as well as the parameters that will be used in the subsequent steps for conversion to a display object corresponding to the symbol. In step S 4 , the silhouette object is displayed. 
   Next, in step S 5 , whether the user has drawn a kanji character is detected. This step can be executed, for example, by detecting whether appropriate stroke information stored in step S 3  exists, whether the kanji character drawing mode has been selected by the user, and whether a recognizable kanji character has been input into an appropriate input area through handwriting. The appropriate input area is an area within the displayed silhouette, an area prepared exclusively for symbol recognition, or a recognizable area on an input device such as a tablet. If the result is positive in step S 5 , control is passed to step S 6 ; if the result is negative, control is passed to exception processing (this will be described later). 
   In step S 6 , a user-entered handwritten character is recognized by the system. Handwritten data entered by the user can be recognized through pattern matching using an existing OCR library and so on. 
   In step S 7 , the template database is searched based on the recognized character information. If an appropriate display object can be acquired from the database, it is determined that there is a display object in step S 8  and the display object is acquired in step S 9 . If an appropriate display object cannot be acquired from the database, it is determined that there is no display object in step S 8  and control is passed to exception processing (this will be described later). 
   In step S 13 , exception processing is performed. For example, a check is made if the system is waiting for a kanji character to be drawn. If the result is positive, control is returned to step S 5  to allow the system to wait for the user to draw a kanji character. If the result is negative, control is passed to the start of the process. 
   In step S 10 , the display object is adapted to the shape of the silhouette. This adaptation is made in various ways, for example, by changing the shape of the display object, by changing the expression of a living thing display object, by adding shading to a texture display object, or by generating an appropriate audio effect, based on parameters such as vertical and horizontal scales, an area change rate, or an inclination determined by the comparison between the assumed silhouette shape and the actual silhouette stroke. 
   In step S 11 , information on the display object converted in step S 10  is stored in the system and, in step S 12 , the display object is presented to the user at a right time in the system. Although the flow shown in  FIG. 2  is terminated in any of several steps, this is the path to which control is passed, for example, when the application is terminated. A detailed description of this configuration is omitted because this is related to a change in the design. 
     FIG. 3  is a flowchart generated by rewriting the flowchart in  FIG. 2  with the focus on the user input and, therefore, the same reference numerals are attached to the corresponding steps in  FIG. 2  and the description is omitted. 
     FIG. 4  is a more detailed flowchart showing primarily the part S 9 -S 11  in  FIG. 2  and  FIG. 3 . In a configuration in which generation is performed based on the templates in a template database with which not only display objects but also silhouette data are registered, the processing in  FIG. 4  can be applied similarly to the part S 2 -S 3  in  FIG. 2  and  FIG. 3 . 
   In step S 101 , template data is retrieved from the database. 
   In step S 102 , the number of template data units and the ratio calculated with the full length as 1 are stored. 
   In step S 103 , the circumscribed quadrangle of the template is calculated. 
   In step S 104 , the input stroke is normalized based on the ratio of the template data. 
   In step S 105 , the circumscribed quadrangle of the stroke is calculated. 
   In step S 106 , the aspect ratio is calculated. 
   In step S 107 , the stroke is changed to a circle. 
   In step S 108 , the circle data and the template data are substituted into Triangler to fill the stroke with patches. 
   In step S 109 , the patch data is held as an object. 
   Pseudo Code 
     FIG. 8-FIG .  17  show an example of a computer program in this embodiment in the form of pseudo source code. The contents are included herein. 
   Although the embodiments of the present invention have been described above using preferred examples, the present invention is not limited to these configuration examples. 
   For example, although a symbol and a silhouette are sketch-entered by a user in the example of the embodiment described above, the present invention is not limited to this configuration. For example, it is also possible to use a configuration in which a symbol and/or a silhouette is entered in a non-sketch way, for example, by reading a bar code or selecting from image data and only its editing (addition, correction, etc.) is done through sketch entry. In this case, the present invention allows the results of editing performed for a silhouette to be reflected on the behavior of a displayed symbol. 
   Although the invention herein has been described with reference to particular embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims.