• No se han encontrado resultados

O BJETIVOS SECTORIALES DE LA POLÍTICA COMERCIAL

III. POLÍTICA COMERCIAL

4)  O BJETIVOS SECTORIALES DE LA POLÍTICA COMERCIAL

The first interaction we explore deforms a mesh or surface by bending it (see Figure 3.1 middle). The gesture is performed by anchoring the thumb and index finger of one hand to the surface (Figure 3.3 left hand). These two multi-touch anchor points define the center-line axis of the bend, shown as a solid red line. A finger on the other hand (Figure 3.3 right hand) is then used as a clutch to lock the bend axis in place. By pivoting the anchored hand around the anchoring fingers, the user bends the mesh either up or down. As the gesture is performed, the user may slide the clutching finger towards or away from the bend axis to vary the curvature of the bend.

The direction and amount of bend to apply to the 3D model is calculated from tracking the movement of the hand above the surface, in this case, using the multi- camera optical tracking system, and interpreting the 3D motion relative to the multi- touch contacts on the surface. On the touch surface, the two points of contact on the anchored hand (thumb and index finger) indicate the axis about which the bend will be

Figure 3.4: The surface is bent as if wrapping it around a cylinder.

applied. By transforming these 2D inputs to the same 3D coordinate system used by the 3D tracking device, we can define a 3D vector that specifies the direction from the thumb touch point to the index finger touch point. We will call this vector ˆb = (bx, by, bz). After

the clutching finger from the second hand is engaged, the 3D model will be bent around this axis in proportion to the amount of hand movement about the axis. As the hand is pivoted, the change in orientation relative to its initial pose is recorded and the raw 3× 3 rotation matrix is decomposed into an axis of rotation, ˆa = (ax, ay, az), and angle

of rotation about that axis, ϕ. The bend angle, θ is calculated as the rotation of the tracker, ϕ, scaled by the projection of the tracker’s rotation axis onto the bend axis.

θ = (ˆa· ˆb)ϕ (3.1) The next step is to deform each vertex on the 3D model to fit the bend specified. Intuitively, we think of this as rolling the mesh around the form of a cylinder, as pictured in Figure 3.4. The bend stops at the point where the tangent to the cylinder and the

original surface are θ degrees apart. This tangent point is indicated by p′ in Figure 3.4, which is also the point to which the point p in the original 3D model will be deformed after the bend. Therefore, there are two cases for how the vertices should be deformed. Vertices that lie between point p and the bend axis on the original surface are deformed to fit the cylinder curve, whereas vertices further away from the bend axis are deformed to extend along the tangent line. We first describe how the distance from p to the bend axis is calculated for use in determining which case a vertex falls into, followed by how vertices in each case are deformed.

The point p is calculated so as to make the distance from the bend axis to p equal the distance along darc. Given a cylinder of radius, r, and bend angle, θ, darc is calculated

as follows.

darc = 2αr (3.2)

The angle α varies with the bend angle θ which changes the tangent to the cylinder. To determine α, the angle β is first calculated assuming that the original surface is flat.

β = π− θ

2 (3.3)

Once β is known, α can be calculated by making use of the triangle property that interior angles add to π.

α = π

2 − β (3.4)

To move each vertex, vi, the distance, di, is calculated to the closest point on the bend

axis. In the case where di ≤ darc, the deformed vertex will lie on the surface of the

axis and then rotated around the center of the cylinder by an angle, ρ where:

ρ = 2α( di darc

) (3.5)

In the second case where di > darc, the deformed vertex will lie on the tangent extending

beyond the cylinder. The mapping is accomplished by first translating vi by the vector

from p to p′ to make sure that the flat section meets the cylinder without stretching the mesh. vi is then rotated around the closest point on the bend axis by θ.

Using these equations, the mesh can be bent into or out of the table surface by positioning the cylinder center either above or below the bend axis. The curvature of the bend relates to the radius of the cylinder, with a larger radius creating a gentle bend or a smaller radius creating a sharper bend. The distance of the clutching finger to the closest point on the bend axis sets the cylinder radius.

The pivoting action of the fingers maps naturally to bending, much the same way a user might bend a piece of paper, while using the display surface as an anchoring surface provides the stability necessary to specify precise changes in the bend angle. The anchored technique integrates seamlessly with more traditional multi-touch inputs, for example, the touch by the clutching hand. This touch point can be moved on the surface during the bending operation to specify curvature, using a style of bi-manual input that is characteristic of many successful multi-touch interfaces.

Documento similar