1. A method for moving an object in a graphical user interface, comprising the steps of:
- a) determining a path of movement for the object along at least one axis, and a period of time for the movement along said path;
- b) establishing a non-constant velocity function along said axis for said period of time;
- c) calculating an instantaneous position for the object along said path in accordance with said function and the relationship of a current time value to said period of time;
- d) displaying said object at said calculated position; and
- e) iteratively repeating steps (c) and (d) during said period of time.
2. The method of claim 1 wherein said function is a non-linear function.
3. The method of claim 2 wherein said function is a sinusoidal function.
4. The method of claim 1 wherein said calculating step comprises the steps of:
- determining the amount of time that has elapsed since the beginning of said period of time;
- calculating the ratio of said elapsed amount of time to the total duration of said period of time;
- applying said ratio to said function to determine a translation factor; and
- using said translation factor to determine the instantaneous position of the object along said path.
5. A method for minimizing a window in a graphical user interface, comprising the steps of:
- in response to a command to minimize a window positioned at a current location, selecting a destination location for the window;
- displaying said window at sequential positions along a path from said current location to said destination location at equal increments of time, such that the distance between successive positions varies in accordance with a non-linear function so that the object appears to be moving at a changing velocity.
6. The method of claim 5 wherein said function is a sinusoidal function, so that the object appears to accelerate and then decelerate along said path.
7. The method of claim 5, further including the step of scaling the size of said window at successive positions as it moves along said path.
8. A user interface for a computer, comprising:
- a display space within which objects are displayed; and
- means responsive to a user action that results in the removal of an object from a series of objects, said means causing other objects in said series to move toward the space occupied by the removed object, by displaying the other objects at different sequential positions during respective increments of time, such that the distance between successive positions varies in accordance with a non-linear function so that the objects appear to be moving at a changing velocity.
9. The user interface of claim 8 wherein said function is a sinusoidal function, so that the objects appear to accelerate and then decelerate as they move toward said space.
10. The user interface of claim 8 wherein said object being removed represents a window, and said user action is a command to open the window in the display space.
11. A user interface for a computer, comprising:
- a display space within which obiects are displayed; and
- means responsive to a user action that results in the insertion of an object into a series of objects, said means causing other objects in said series to move away from the inserted object by displaying the other obiects at different sequential positions during respective increments of time, such that the distance between successive positions varies in accordance with a non-linear function so that the objects appear to be moving at a changing velocity.
12. The user interface of claim 11 wherein said function is a sinusoidal function, so that said other objects appear to accelerate and then decelerate as they move away from the inserted object.
13. The user interface of claim 11 wherein said object is a window in said display space, and said user action is a command to minimize said window.
14. A computer-readable medium containing a program which executes the following steps:
- a) displaying at least one object in a display space;
- b) determining a path of movement for the object along at least one axis within the display space, and a period of time for the movement along said path;
- c) establishing a non-constant velocity function along said axis for said period of time;
- d) calculating an instantaneous position for the object along said path in accordance with said function and the relationship of a current time value to said period of time;
- d) displaying said object at said calculated position; and
- f) iteratively repeating steps (d) and (e) during said period of time.
15. The method of claim 14 wherein said function is a non-linear function.
16. The method of claim 15 wherein said function is a sinusoidal function.
17. A computer-readable medium containing a program which executes the following steps:
- displaying at least one object at a first location in a display space;
- selecting a second location for the object within said display space, and a period of time within which the object is to move from the first location to the second location;
- displaying said object at sequential positions along a path from said first location to said second location at increments of time within said period, such that the distance between successive positions varies in accordance with a non-linear function so that the object appears to be moving at a changing velocity along said path.
18. The method of claim 17 wherein said function is a sinusoidal function, so that the object appears to accelerate and then decelerate along said path.
19. A user interface for a computer, comprising:
- a display space within which an object is displayed at a first location; and
- means responsive to a user action for selecting a second location to which said object is to be moved and a period of time during which the movement is to occur, and for moving said object from said first location to said second location at a non-linear rate of movement during said period of time.
20. The user interface of claim 19 wherein said non-linear rate is a sinusoidal function, so that the object appears to accelerate and then decelerate along a path from said first location to said second location.
21. The user interface of claim 19 wherein said user action is a command to minimize a window.
22. The user interface of claim 19 wherein said user action results in the removal of one object from a series of objects, and said means causes other objects in said series to move toward the space occupied by the removed object at said non-linear rate.
23. The user interface of claim 19 wherein said user action results in the insertion of an object into a series of objects, and said means causes other objects in said series to move away from the inserted object at said non-linear rate.
24. A computer having an operating system that includes a user interface which implements the following steps:
- displaying an object at a first location within a display space;
- selecting a second location to which said object is to be moved and a period of time during which the movement is to occur in response to a user action; and
- moving said object from said first location to said second location at a non-linear rate of movement during said period of time.
25. The computer of claim 24 wherein said non-linear rate is a sinusoidal function, so that the object appears to accelerate and then decelerate along a path from said first location to said second location.
26. The computer of claim 24 wherein said user action is a command to minimize a window.
27. The computer of claim 24 wherein said user action results in the removal of one object from a series of objects, and said means causes other objects in said series to move toward the space occupied by the removed object at said non-linear rate.
28. The computer of claim 24 wherein said user action results in the insertion of an object into a series of objects, and said means causes other objects in said series to move away from the inserted object at said non-linear rate.