U.S. patent application number 11/228742 was filed with the patent office on 2006-01-19 for system and method for specifying elliptical parameters.
This patent application is currently assigned to Computer Associates Think, Inc., a Delaware corporation. Invention is credited to Arnold F. Steed.
Application Number | 20060012600 11/228742 |
Document ID | / |
Family ID | 27757625 |
Filed Date | 2006-01-19 |
United States Patent
Application |
20060012600 |
Kind Code |
A1 |
Steed; Arnold F. |
January 19, 2006 |
System and method for specifying elliptical parameters
Abstract
An interactive elliptical arc control system and method are
disclosed. Three control points are provided--a center control
point and two foci control points--that a user can interactively
manipulate in order to specify and change the elliptical parameters
involved. The center control point can control the radius of the
ellipse in the x direction, while keeping constant the ratio of the
radius of the ellipse in the y direction to the radius of the
ellipse in the x direction. The center control point can also
control the relationship of the sweep flag to the large arc flag
involved. The two foci control points can control the ratio of the
radius of the ellipse in the y direction to the radius of the
ellipse in the x direction, the angle from the x-axis of the
coordinate system to the x-axis of the ellipse, and the value of
the sweep flag.
Inventors: |
Steed; Arnold F.; (Houston,
TX) |
Correspondence
Address: |
FISH & RICHARDSON P.C.
P.O. BOX 1022
MINNEAPOLIS
MN
55440-1022
US
|
Assignee: |
Computer Associates Think, Inc., a
Delaware corporation
|
Family ID: |
27757625 |
Appl. No.: |
11/228742 |
Filed: |
September 15, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10367077 |
Feb 14, 2003 |
6967654 |
|
|
11228742 |
Sep 15, 2005 |
|
|
|
60357480 |
Feb 15, 2002 |
|
|
|
Current U.S.
Class: |
345/442 |
Current CPC
Class: |
G06T 11/203
20130101 |
Class at
Publication: |
345/442 |
International
Class: |
G06T 11/20 20060101
G06T011/20 |
Claims
1. A method for rendering an elliptical arc in response to user
input, comprising: receiving, via a pointing device of a graphical
user interface (GUI), a first end point and a second end point for
an elliptical arc; receiving, via the pointing device of the GUI, a
center point for the elliptical arc; receiving, via the pointing
device of the GUI, a foci point for the elliptical arc; and
rendering the elliptical arc passing through the first and second
end points, and having a center at the center point and a
semi-major axis along a line joining the center point and the foci
point.
2. The method of claim 1, further comprising: receiving, via the
pointing device of the GUI, a second foci point for the elliptical
arc; and rendering the elliptical arc having the semi-major axis
along a line joining the center point and the second foci
point.
3. The method of claim 1, further comprising determining a radius
of the ellipse along the semi-major axis and a radius of the
ellipse along a semi-minor axis based on the received user
input.
4. The method of claim 1, further comprising determining an angle
from an x-axis of a coordinate system of the GUI to an x-axis of
the ellipse based on the received user input.
5. The method of claim 1, further comprising the arc of the ellipse
and a direction of the arc based on the received user input.
6. A system for rendering an elliptical arc in response to user
input, comprising: a graphical user interface; and a pointing
device coupled to the graphical user interface, the graphical user
interface operable to: receive, via the pointing device, a first
end point and a second end point for an elliptical arc; receive,
via the pointing device, a center point for the elliptical arc;
receive, via the pointing device, a foci point for the elliptical
arc; and render the elliptical arc passing through the first and
second end points, and having a center at the center point and a
semi-major axis along a line joining the center point and the foci
point.
7. The system of claim 6, wherein the graphical user interface is
further operable to: receive, via the pointing device of the GUI, a
second foci point for the elliptical arc; and render the elliptical
arc having the semi-major axis along a line joining the center
point and the second foci point.
8. The system of claim 6, wherein the graphical user interface is
further operable to determine the radius of the ellipse along the
semi-major axis and a radius of the ellipse along a semi-minor axis
based on the received user input.
9. The system of claim 6, wherein the graphical user interface is
further operable to determine an angle from an x-axis of a
coordinate system of the GUI to the x-axis of the ellipse based on
the received user input.
10. The system of claim 6, wherein the graphical user interface is
further operable to determine the arc of the ellipse and a
direction of the arc based on the received user input.
11. Software for rendering an elliptical arc in response to user
input, the software being embodied in logic encoded in media and
when executed operable to: receive, via a pointing device of a GUI,
a first end point and a second end point for an elliptical arc;
receive, via the pointing device of the GUI, a center point for the
elliptical arc; receive, via the pointing device of the GUI, a foci
point for the elliptical arc; render the elliptical arc passing
through the first and second endpoints, and having a center at the
center point and a semi-major axis along a line joining the center
point and the foci point; and determine a radius of the ellipse
along the semi-major axis, a radius of the ellipse along a
semi-minor axis and an angle from an x-axis of a coordinate system
of the GUI to an x-axis of the ellipse based on the received user
input.
12. The software of claim 11, wherein the software is further
operable to: receive, via the pointing device of the GUI, a second
foci point for the elliptical arc; and render the elliptical arc
having the semi-major axis along a line joining the center point
and the second foci point.
13. The software of claim 11, wherein the software is further
operable to determine the radius of the ellipse along the
semi-major axis and a radius of the ellipse along a semi-minor axis
based on the received user input.
14. The software of claim 11, wherein the software is further
operable to determine an angle from an x-axis of a coordinate
system of the GUI to the x-axis of the ellipse based on the
received user input.
15. The software of claim 11, wherein the software is further
operable to determine the arc of the ellipse and a direction of the
arc based on the received user input.
16. A system for rendering an elliptical arc in response to user
input, comprising: means for receiving from a user a first end
point and a second end point for an elliptical arc; means for
receiving from a user a center point for the elliptical arc; means
for receiving a foci point for the elliptical arc; means for
rendering the elliptical arc passing through the first and second
end points, and having a center at the center point and a
semi-major axis along a line joining the center point and the foci
point; and means for determining a radius of the ellipse along a
semi-major axis, a radius of the ellipse along a semi-minor axis,
an angle from an x-axis of a coordinate system of the GUI to the
x-axis of the ellipse based on the received user input.
Description
RELATED APPLICATION
[0001] 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. .sctn.119 of Provisional Application Ser. No. 60/357,480
filed Feb. 15, 2002, entitled "System and Method for Specifying
Elliptical Parameters".
TECHNICAL FIELD
[0002] 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
[0003] Certain CAD/CAM drawing tools exist that include elliptical
arcs. To simplify the user interface, these tools typically fix
certain of the ellipses' 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.
[0004] 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
[0005] 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.
[0006] 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.
[0007] 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
[0008] 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:
[0009] FIG. 1 is an exemplary illustrates an example work station
that can be used to implement one or more embodiments of the
present disclosure;
[0010] FIG. 2 is an exemplary block diagram of a drawing tool of
the elliptical arc control system according to the present
disclosure;
[0011] FIGS. 3A-B are exemplary displays of an elliptical arc that
a user can specify by interactively manipulating one or more of the
control points shown;
[0012] FIG. 4 illustrates elliptical arc parameters used for end
point parameterization in an SVG system;
[0013] FIG. 5 illustrates elliptical arc parameters used for center
point parameterization;
[0014] FIG. 6 illustrates elliptical arc parameters used for foci
point parameterization; and
[0015] FIG. 7 is an exemplary flow diagram for implementing one
exemplary embodiment of the present disclosure.
DETAILED DESCRIPTION
[0016] 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.
[0017] A suitable operating system for workstation 10 can be a
UNIX.RTM. or WINDOWS NT.RTM. 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.
[0018] 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.
[0019] 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.
[0020] 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.sub.1 and P.sub.2.
Control points defining the elliptical arc'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.sub.1 and
F.sub.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.sub.1 or F.sub.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.sub.1 and/or F.sub.2) control points. Each end point
P.sub.1, P.sub.2, and control point C and F.sub.1 and/or F.sub.2
can be independently manipulated by selecting and dragging the
point with mouse 20 connected to GUI 16 of the workstation 10.
[0021] In the embodiments of FIGS. 3A-B at least one of the foci
points, F.sub.1 or F.sub.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.
[0022] 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.sub.1 and P.sub.2 represent the start point and end point of the
arc 121. The parameters R.sub.x and R.sub.y represent the radius of
the ellipse 122 in the x direction and y direction, respectively.
The parameter, .phi., 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.sub.A, specifies whether the larger or
smaller arc of the ellipse 122 is used (e.g., large arc flag), and
the parameter, f.sub.S, specifies whether the arc 121 is drawn
clockwise or counter-clockwise (e.g., sweep flag). As described
below, the end points P.sub.1 and P.sub.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.
[0023] 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 .phi., R.sub.x and R.sub.y are as
previously described. The parameter, .theta., represents the start
angle of the arc 121 (from the x-axis of the coordinate system),
and the parameter .DELTA..theta., represents the sweep angle of the
arc 121 (e.g., negative for a clockwise arc).
[0024] FIG. 6 illustrates the ellipse 122 specified by the foci
parameterization component 108. For example, with foci point
parameterization, the parameter F.sub.1 represents the first focal
point of the ellipse 122, the parameter F.sub.2 represents the
second focal point of the ellipse 122, and the parameter F.sub.R
represents the focal radius of the ellipse involved (sum of the
distances from each of the foci to any point on the ellipse).
[0025] 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.sub.1, P.sub.2, F.sub.1, or F.sub.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).
[0026] For example, referring to FIG. 3, the foci, F.sub.1 and
F.sub.2, lie on the semi-major axis of the elliptical arc 120.
Consequently, the rotation angle, .phi. (FIGS. 4 and 5), can be
computed from the foci, F.sub.1 and F.sub.2. Also, the radius of
the ellipse in the x direction (semi-major axis), R.sub.x (FIGS. 4
and 5), can be determined by the relationship, R.sub.x=F.sub.R/2
(where F.sub.R in FIG. 6 is the focal radius of the ellipse 122
involved). If a parameter, F.sub.C, represents the distance from
either foci, F.sub.1 or F.sub.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.sub.y.sup.2, is equal to the
square of the radius of the ellipse in the x direction (semi-major
axis),R.sub.x.sup.2, minus the square of the parameter, F.sub.C
(e.g., R.sub.y.sup.2=R.sub.x.sup.2-F.sub.C.sup.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.sub.S, and the large arc flag, F.sub.A (e.g., either
F.sub.A=F.sub.S or F.sub.A not equal F.sub.S). Also, the foci,
F.sub.1 and F.sub.2 (FIG. 3), can be interchangeable (i.e.,
swapping the values of F.sub.1 and F.sub.2 can result in the same
ellipse). Consequently, the relative positions of the foci, F.sub.1
and F.sub.2, can be used to determine the value of the sweep flag,
F.sub.S, without sacrificing generality. As such, rotating an
ellipse by 180 degrees can result in flipping the value of the
sweep flag, F.sub.S (from true to false or vice versa).
[0027] 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.sub.1 or
F.sub.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.sub.1 and F.sub.2, with the
value of the distance from either foci control point to the center
of the ellipse, F.sub.C, being held fixed. At step 204, the value
of the focal radius, F.sub.R, can be computed twice, based on the
points, P.sub.1 and P.sub.2. At step 205, the smaller value of
F.sub.R based on P.sub.1 or P.sub.2 can be used to re-compute the
radius of the ellipse in the x direction (semi-major axis),
R.sub.x. At step 206, the value of the radius of the ellipse in the
y direction (semi-minor axis), R.sub.y, can be computed from the
ratio of R.sub.y/R.sub.x. At step 208, if the center control point,
C, is moved across a straight line joining the end points, P1 and
P2, then at step 209, the value of F.sub.S can be swapped (e.g.,
the value of F.sub.A is maintained, but the relationship between
F.sub.A and F.sub.S has changed). Otherwise, at step 210, the
center and foci control parameters, C, F.sub.1 and F.sub.2, can be
re-computed based on the new end point parameters, and the
resulting curve and control points can be redrawn.
[0028] At step 212, if a user moves or "drags" the first focal
point of the ellipse, F.sub.1, at step 213, a new F.sub.C (distance
from either foci to the center of the ellipse) and second focal
point of the ellipse, F.sub.2, can be computed with C and the focal
radius, F.sub.R, being held fixed. At step 214, the rotation angle,
.phi., can be re-computed based on the new values of the foci
control points, F.sub.1 and F.sub.2. At step 215, the new F.sub.C
can be used to re-compute the radius of the ellipse in the x
direction, R.sub.x, and the radius of the ellipse in the y
direction, R.sub.y. At step 216, if a user moves the first focal
control point, F.sub.1, across the x-axis, at step 217, the values
of each of the sweep flag, f.sub.S, and the large arc flag,
f.sub.A, can be swapped. Otherwise, at step 218, the center and
foci control parameters, C, F.sub.1 and F.sub.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.sub.2, may be manipulated by performing the same steps
212 through 218 as performed for the first focal point, F.sub.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.sub.1 or F.sub.2) can be included to provide a symmetrical and
more intuitive interface to be used.
[0029] The end point parameters can be mapped to the movement of
the center and foci control points, C, F.sub.1 and F.sub.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.sub.y, to maintain the ratio of R.sub.y/R.sub.x
constant, the value of R.sub.y can be computed to maintain F.sub.C
constant. Also, if a user moves a focal control point (e.g.,
F.sub.1), the other focal control point (e.g., F.sub.2) can be
maintained constant, instead of maintaining the position of the
center control point, C, constant, and vice versa.
[0030] 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.
* * * * *