共用方式為


Single-Finger旋轉

本節說明如何使用樞紐點旋轉物件。

下圖說明單指旋轉。

顯示兩種單指旋轉類型的圖例:在中央或邊緣周圍

在範例 A 中,物件會使用旋轉手勢繞著物件的中心點旋轉。 在範例 B 中,物件會藉由移動單指繞物件邊緣來旋轉。 操作處理器會使用樞紐點和樞紐半徑值來啟用此旋轉。 下圖說明單指旋轉的元件。

顯示單指旋轉元件的圖例:樞紐點x、樞紐點和 pivotradius

設定 PivotPointXPivotPointYPivotRadius 值之後,後續的翻譯訊息將會納入旋轉。 樞紐半徑愈大,x 和 y 中的變更就越大,才能旋轉物件。 下列程式碼示範如何在操作處理器中設定這些值。

HRESULT STDMETHODCALLTYPE CManipulationEventSink::ManipulationDelta( 
    /* [in] */ FLOAT x,
    /* [in] */ FLOAT y)
{
    m_cStartedEventCount ++;

    // Set the pivot point to the object's center and then set the radius 
    // to the distance from the center to the edge of the object.
    m_pManip->put_PivotPointX(m_objectRef->xPos);
    m_pManip->put_PivotPointY(m_objectRef->yPos);
    
    float fPivotRadius = (FLOAT)(sqrt(pow(m_dObj->get_Width()/2, 2) + pow(m_dObj->get_Height()/2, 2)))*0.4f;
    
    m_pManip->put_PivotRadius(fPivotRadius);
  

    return S_OK;
}    
     

在上一個範例中,物件邊緣 (縮放為 40%) 的距離會當做樞紐半徑使用。 由於物件大小會納入考慮,因此此計算對於每個物件差異都是有效的。 當物件縮放時,樞紐半徑會成長。 這個值和物件的中心 x 和 y 值會傳遞至操作處理器,以繞著樞紐點旋轉物件。

注意

PivotRadius值絕對不能介於 0.0 和 1.0 之間。

 

操作

PivotRadius

PivotPointX

PivotPointY