Patent Publication Number: US-2006012600-A1

Title: System and method for specifying elliptical parameters

Description:
RELATED APPLICATION  
      This application is a continuation of U.S. application Ser. No. 10/367,077 filed Feb. 14, 2003, entitled, “System and Method for Specifying Elliptical Parameters,” which claims priority under 35 U.S.C. §119 of Provisional Application Ser. No. 60/357,480 filed Feb. 15, 2002, entitled “System and Method for Specifying Elliptical Parameters”. 
    
    
     TECHNICAL FIELD  
      The present disclosure relates in general to the Computer-Aided Design/Computer-Aided Manufacturing (CAD/CAM) field and, in particular, but not exclusively, to a system and method providing an intuitive and interactive interface for specifying parameters for computer-implemented drawing of arc segments, including elliptical arc segments.  
     BACKGROUND  
      Certain CAD/CAM drawing tools exist that include elliptical arcs. To simplify the user interface, these tools typically fix certain of the ellipses&#39; parameters. For example, a common, simplified drawing technique used for creating an ellipse is to force the ellipse to be parallel either to the x- or y-axis, and then have the user draw a box into which the ellipse is to fit. Other drawing tools allow a user to manually enter (e.g., type in) the elliptical parameters, which can provide some design flexibility.  
      Certain CAD applications import and export Scalable Vector Graphics (SVG) data including elliptical arc segments. SVG is a vector-based CAD format that enables users to create dynamic interactive graphics that can be resized, animated, rotated, etc. in real-time. Each elliptical arc segment is specified in SVG with five elliptical parameters plus the endpoints of the segment involved.  
     SUMMARY  
      The present disclosure provides a method and system for specifying arc parameters for computer implemented drawings. In accordance with one embodiment, an interactive arc control system is provided for use in drawing and diagramming applications, which enables a user to completely specify the parameters of an arc (e.g., an elliptical arc) connecting two node points.  
      In one embodiment, the arc control system provides two control points—a center control point and a focus control point—that a user can interactively manipulate in order to change the parameters of a particular arc (e.g., an elliptical arc) being displayed. For example if an elliptical arc is displayed or being drawn, the center control point controls the radius of the ellipse in the x direction (semi-major axis), while keeping constant the ratio of the radius of the ellipse in the y direction (semi-minor axis) to the radius of the ellipse in the x direction (semi-major axis). The center control point can also control the relationship of the sweep flag (e.g., flag specifying whether the arc is to be drawn clockwise or counter-clockwise) to the large arc flag (e.g., flag specifying whether the larger or smaller arc of the ellipse is to be used). The focus control point controls the ratio of the radius of the ellipse in the y direction (semi-minor axis) to the radius of the ellipse in the x direction (semi-major axis), the angle from the x-axis of the coordinate system to the x-axis of the ellipse (rotation), and the sweep flag. As a result, the two control points described can be used to specify the parameters for an arc connecting two node points in an intuitive and relatively easy manner.  
      In an alternative embodiment, the arc control system provides three control points—a center control point and two foci control points—that a user can interactively manipulate in order to change the parameters of a particular arc (e.g., an elliptical arc) being displayed. Similarly, in this embodiment if an elliptical arc is being displayed, the center control point controls the radius of the ellipse in the x direction (semi-major axis), while keeping constant the ratio of the radius of the ellipse in the y direction (semi-minor axis) to the radius of the ellipse in the x direction (semi-major axis). The center control point can also control the relationship of the sweep flag (e.g., flag specifying whether the arc is to be drawn clockwise or counter-clockwise) to the large arc flag (e.g., flag specifying whether the larger or smaller arc of the ellipse is to be used). Each of the two foci control points can control the ratio of the radius of the ellipse in the y direction (semi-minor axis) to the radius of the ellipse in the x direction (semi-major axis), the angle from the x-axis of the coordinate system to the x-axis of the ellipse (rotation), and the sweep flag. As a result, the three control points described can be used to specify the parameters for an arc connecting two node points in an intuitive and relatively easy manner and provide greater symmetry of the displayed control.  
    
    
     DESCRIPTION OF DRAWINGS  
      For a more complete understanding of the present disclosure reference is now made to the following descriptions, taken in conjunction with the accompanying drawings, in which:  
       FIG. 1  is an exemplary illustrates an example work station that can be used to implement one or more embodiments of the present disclosure;  
       FIG. 2  is an exemplary block diagram of a drawing tool of the elliptical arc control system according to the present disclosure;  
      FIGS.  3 A-B are exemplary displays of an elliptical arc that a user can specify by interactively manipulating one or more of the control points shown;  
       FIG. 4  illustrates elliptical arc parameters used for end point parameterization in an SVG system;  
       FIG. 5  illustrates elliptical arc parameters used for center point parameterization;  
       FIG. 6  illustrates elliptical arc parameters used for foci point parameterization; and  
       FIG. 7  is an exemplary flow diagram for implementing one exemplary embodiment of the present disclosure.  
    
    
     DETAILED DESCRIPTION  
      Referring to  FIG. 1 , an exemplary workstation  10  that can be used to implement one or more embodiments of the systems and methods of the present disclosure is provided. The workstation  10  can be a computer typically used for CAD/CAM or engineering applications, desktop publishing, software development, or other types of applications that provide relatively high quality graphics capabilities. For example, workstation  10  can be a desktop computer having a high-resolution graphics monitor  12 , internal memory (e.g., Random Access Memory)  14 , and a Graphical User Interface (GUI)  16 . A mouse  20 , other pointing device, or touch screen may be provided to allow a user to specify, select, move and/or otherwise control elements displayed by GUI  16  on monitor  12 . The memory  14  may also include a mass storage device or media  18 , such as a disk drive.  
      A suitable operating system for workstation  10  can be a UNIX® or WINDOWS NT® operating system. Workstation  10  can be a single-user computer, or a plurality of workstations, servers and/or other computer devices linked together to form one or more local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), or a portion of a global network, such as the Internet.  
      Referring to  FIG. 2  is an exemplary block diagram of an arc control system  100  according to one embodiment of the present disclosure. The arc control system  100  includes an application window  110  and an interactive arc control component  102 . The elliptical arc control system  100  can be implemented in software and/or hardware. The application window  110  is displayed on monitor  12  by GUI  16 , and allows users to generate objects (e.g., elliptical arcs) and to interactively modify the objects by manipulating one or more control points associated with the objects.  
      The interactive arc control system  102  includes an end point parameterization component  104 , a center point parameterization component  106 , and a foci point parameterization component  108 . The end point parameterization component  104  is used by the system  100  to support Scalable Vector Graphics (SVG). The center parameterization component  106  is used for drawing an arc (e.g., an elliptical arc) for display in application window  110 . The combination of the center parameterization component  106  and the foci parameterization component  108  provides user control of the arc (e.g., elliptical arc parameters) parameters by determining the arc parameters from control points graphically specified by the user through the application window  110 . In a particular embodiment, the arc control system  102  may determine all of the parameters by converting, for example, elliptical parameters from one type to another while holding the end points of the arc fixed. In a specific embodiment, for example, the arc control system  102  may map endpoint parameters to center and/or foci parameters and may map center and/or foci parameters to each other and/or to endpoint parameters.  
       FIG. 3A  illustrates an exemplary elliptical arc  120  displayed to and controllable by a user through application window  110 . The elliptical arc  120  and any suitable SVG arc may be displayed to and manipulated by the user in real time. The elliptical arc  120  connects two endpoints, P 1  and P 2 . Control points defining the elliptical arc&#39;s configuration are also displayed on application window  110 . In the embodiment of  FIG. 3A , three control points can be used for manipulating the arc displayed—a center point (C) and two foci points (F 1  and F 2 ). In an alternative embodiment, seen in  FIG. 3B , two control points can be used for manipulating the arc displayed—a center point (C) and a foci point (F 1  or F 2 ). The configuration of the elliptical arc  120  can be specified by the user by interactively manipulating one or more of the center (C) or foci (F 1  and/or F 2 ) control points. Each end point P 1 , P 2 , and control point C and F 1  and/or F 2  can be independently manipulated by selecting and dragging the point with mouse  20  connected to GUI  16  of the workstation  10 .  
      In the embodiments of FIGS.  3 A-B at least one of the foci points, F 1  or F 2 , is used based on the specified control points used the parameters to render the elliptical arc  120  and to support SVG or other standards for defining elliptical arcs can be determined. In a particular embodiment, the standardized parameters for SVG are provided by the end point parameterization component  104  (seen in  FIG. 2 ) and are determined based on the control points using center parameterization component  106  and foci parameterization component  108 .  
       FIG. 4  illustrates an exemplary ellipse  122  and elliptical arc  121  specified by the end point parameterization component  104 . For example, with end point parameterization, the parameters P 1  and P 2  represent the start point and end point of the arc  121 . The parameters R x  and R y  represent the radius of the ellipse  122  in the x direction and y direction, respectively. The parameter, φ, represents the angle from the x-axis of the coordinate system to the x-axis of the ellipse  122  (e.g., rotation). The parameter, f A , specifies whether the larger or smaller arc of the ellipse  122  is used (e.g., large arc flag), and the parameter, f S , specifies whether the arc  121  is drawn clockwise or counter-clockwise (e.g., sweep flag). As described below, the end points P 1  and P 2  are entered by the user, and the remaining parameters of the arc to be displayed are indirectly determined from the control points by center and foci parameterization components  106  and  108 .  
       FIG. 5  illustrates the elliptical arc  121  specified by the center parameterization component  106 . For example, with center point parameterization, the parameter C represents the center point of the arc  121 . The parameters φ, R x  and R y  are as previously described. The parameter, θ, represents the start angle of the arc  121  (from the x-axis of the coordinate system), and the parameter Δθ, represents the sweep angle of the arc  121  (e.g., negative for a clockwise arc).  
       FIG. 6  illustrates the ellipse  122  specified by the foci parameterization component  108 . For example, with foci point parameterization, the parameter F 1  represents the first focal point of the ellipse  122 , the parameter F 2  represents the second focal point of the ellipse  122 , and the parameter F R  represents the focal radius of the ellipse involved (sum of the distances from each of the foci to any point on the ellipse).  
      In one aspect of operation, the elliptical arc control system  102  allows a user to move one or more of the end points and control points (e.g., C, P 1 , P 2 , F 1 , or F 2 ) shown in  FIG. 3  in an interactive an intuitive manner and based on those points specifies all of the remaining end point, center and foci parameters shown in  FIGS. 4, 5  and  6  based on the mathematical relationships that can exist between the elliptical parameters involved. The control points can be changed by a user “dragging” (e.g., with a cursor controlled by a mouse  20 ) these points directly on monitor  12  (e.g., via GUI  16 ).  
      For example, referring to  FIG. 3 , the foci, F 1  and F 2 , lie on the semi-major axis of the elliptical arc  120 . Consequently, the rotation angle, φ ( FIGS. 4 and 5 ), can be computed from the foci, F 1  and F 2 . Also, the radius of the ellipse in the x direction (semi-major axis), R x  ( FIGS. 4 and 5 ), can be determined by the relationship, R x =F R /2 (where F R  in  FIG. 6  is the focal radius of the ellipse  122  involved). If a parameter, F C , represents the distance from either foci, F 1  or F 2 , to the center of the ellipse  122  involved ( FIG. 6 ), then the square of the radius of the ellipse in the y direction (semi-minor axis), R y   2 , is equal to the square of the radius of the ellipse in the x direction (semi-major axis),R x   2 , minus the square of the parameter, F C  (e.g., R y   2 =R x   2 −F C   2 ). The center point, C ( FIG. 3 ), can determine which of the two possible ellipses can be used, and can also establish a relationship between the sweep flag, F S , and the large arc flag, F A  (e.g., either F A =F S  or F A  not equal F S ). Also, the foci, F 1  and F 2  ( FIG. 3 ), can be interchangeable (i.e., swapping the values of F 1  and F 2  can result in the same ellipse). Consequently, the relative positions of the foci, F 1  and F 2 , can be used to determine the value of the sweep flag, F S , without sacrificing generality. As such, rotating an ellipse by 180 degrees can result in flipping the value of the sweep flag, F S  (from true to false or vice versa).  
       FIG. 7  illustrates an example method  200  that can be used to draw arcs in accordance with the present disclosure. As such, the above-described geometric relationships can be used to determine all of the end point parameters for an elliptical arc by a user manipulating one or more of the three control points, C, F 1  or F 2  (e.g., as shown in  FIG. 3 ) using, for example, GUI  16  and elliptical arc control  102  ( FIG. 2 ). At step  202 , if a user moves the center control point, C, at step  203 , new values can be computed for the foci control points, F 1  and F 2 , with the value of the distance from either foci control point to the center of the ellipse, F C , being held fixed. At step  204 , the value of the focal radius, F R , can be computed twice, based on the points, P 1  and P 2 . At step  205 , the smaller value of F R  based on P 1  or P 2  can be used to re-compute the radius of the ellipse in the x direction (semi-major axis), R x . At step  206 , the value of the radius of the ellipse in the y direction (semi-minor axis), R y , can be computed from the ratio of R y /R x . At step  208 , if the center control point, C, is moved across a straight line joining the end points, P 1  and P 2 , then at step  209 , the value of F S  can be swapped (e.g., the value of F A  is maintained, but the relationship between F A  and F S  has changed). Otherwise, at step  210 , the center and foci control parameters, C, F 1  and F 2 , can be re-computed based on the new end point parameters, and the resulting curve and control points can be redrawn.  
      At step  212 , if a user moves or “drags” the first focal point of the ellipse, F 1 , at step  213 , a new F C  (distance from either foci to the center of the ellipse) and second focal point of the ellipse, F 2 , can be computed with C and the focal radius, F R , being held fixed. At step  214 , the rotation angle, φ, can be re-computed based on the new values of the foci control points, F 1  and F 2 . At step  215 , the new F C  can be used to re-compute the radius of the ellipse in the x direction, R x , and the radius of the ellipse in the y direction, R y . At step  216 , if a user moves the first focal control point, F 1 , across the x-axis, at step  217 , the values of each of the sweep flag, f S , and the large arc flag, f A , can be swapped. Otherwise, at step  218 , the center and foci control parameters, C, F 1  and F 2 , can be re-computed based on the new end point parameters, and the resulting curve and control points can be redrawn. The second focal point of the ellipse, F 2 , may be manipulated by performing the same steps  212  through  218  as performed for the first focal point, F 1 . In fact, the above-described function of interactively specifying elliptical parameters can be provided using only two of the control points shown (e.g., the center control point and one of the foci control points). However, a second foci control point (e.g., F 1  or F 2 ) can be included to provide a symmetrical and more intuitive interface to be used.  
      The end point parameters can be mapped to the movement of the center and foci control points, C, F 1  and F 2 , in a number of other ways. For example, if a user moves the center control point, C, instead of computing the radius of the ellipse in the y direction, R y , to maintain the ratio of R y /R x  constant, the value of R y  can be computed to maintain F C  constant. Also, if a user moves a focal control point (e.g., F 1 ), the other focal control point (e.g., F 2 ) can be maintained constant, instead of maintaining the position of the center control point, C, constant, and vice versa.  
      Although a preferred embodiment of the method and apparatus of the present disclosure has been illustrated in the accompanying drawings and described in the foregoing detailed description, it will be understood that the disclosure is not limited to the embodiment disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the disclosure as set forth and defined by the following claims.