FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and Scale Siju Wu, Amine...
-
Upload
godfrey-lynch -
Category
Documents
-
view
212 -
download
0
Transcript of FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and Scale Siju Wu, Amine...
FingerOscillation: Clutch-free Methods for 3D Object Translation, Rotation and
ScaleSiju Wu, Amine Chellali, Samir Otmane
IBISC Lab, Evry University, France
Problem
FingerOscillation
FingerShake
FingerRotate
Properties
Is it possible to propose a group of methods to manipulate 3D virtual objects by using finger movements in air? Can virtual objects be manipulated in a more continuous way without using a clutch gesture? How to make the interaction less tiring?
The FingerShake is designed to translate virtual objects in the 3D space by using to-and-fro oscillatory finger gesture. It uses stroke orientation, stroke amplitude and oscillation frequency to control the translation movement.To translate an object, the index finger should be dragged in the wanted direction. Then by dragging the finger forward and backward alternatively, the object keep translating in the initial direction until the finger stops moving.
The FingerOscillation model has the following properties:
• Humans are apt to make reasonably accurate cyclic gestures after training.
• Oscillatory gestures allows more continuous control of variables to be manipulated.
• Large range of hand movements are avoided and fewer muscles are involved in.
• No need to change the hand posture to indicate the onset and the end of the manipulation.
We have proposed three techniques for 3D virtual object manipulation. Objects can be translated, rotated and scaled by using the FingerShake, the FingerRotate and the FingerSwing respectively.
These three techniques refer to a more generic concept which we call the FingerOscillation. It is an elliptic oscillatory model of straight and circular periodical 3D finger movements. Abundant degrees of freedom of the model can be used to design new techniques.
Objective
• Propose a group of manipulation techniques based on finger movements. Avoid taking use of hand and arm movements as much as possible.
• Design manipulation gestures which require only tiny finger motions.
• Instead of using discrete movements, take use of periodical finger motions to make the interaction more consistent.
FingerOscillation
Translation:FingerShake
Rotation: FingerRotate
Scale:FingerSwing
To identify different finger strokes, we check the curvature of the trajectory in each frame. If, we segment the finger trajectory.
In each frame, we use the following algorithm to control the translation.
The FingerRotate uses circular periodical finger motions to rotate an object. To start the rotation, the index finger should be used to draw a circle in air. The normal vector of the circle is chosen as the rotation axis. Continue dragging the finger in a circular way can rotate the object around this axis.
FingerSwing
The FingerSwing allows the user to scale an object by repeating drawing half a circle. Keep drawing the upper (lower) part of the circle can magnify (shrink) the object.
Is the translation started?
N
Can the trajectory be segmented?
Can the previous
stroke be fitted to a line?
Is the first starting
stroke found?Set the previous
stroke as the first starting
stroke
Is the previous stroke in the
reverse direction of the first starting
stroke?
Start the translation
Clear the first starting stroke
Can the trajectory be segmented?
Refresh the translation gain
Is the finger motion large
enough?
Y
Y
N
N
Y
Translate the object
Stop the translation
Create a new stroke
Create a new stroke
N
Y
Y
Y
N
Y
Is the scale started?
N
Can the trajectory be segmented?
Can the previous stroke be fitted to
an arc of a circle?
Is the first starting
stroke found?Set the previous
stroke as the first starting
stroke
Is the last stroke in the
reverse direction of the
first starting stroke?
Start the scaleClear the first starting stroke
Can the trajectory be segmented?
Refresh the fitting circle
radius
Is the finger motion large
enough?
Y
Y
N
N
Y
Zoom the objectStop the scale
Create a new stroke
Create a new stroke
N
Y
Y
Y
N
Y
In each frame, we use the following algorithm to control the rotation.
In each frame, we use the following algorithm to control the scale.
N
N
N
N
a. b.
Is the rotation started?
Is the finger movement big
enough?
Rotate the object
Can the stroke be fitted to arc
of a circle?
If the angle correspoding to the arc is larger
than 360?
Segment the trajectory and start
the rotation
Stop the rotation
If the angle correspoding to the arc is larger
than 360?
Refresh the fitting circle radius
N
Y
Y
N
N
Y
Y
Y
N
N