2013-07-23 2 views
1

이미지 회전에 대한 코드가 있습니다. 그러나 회전 중심은 회전 할 이미지의 중심과 동일하지 않습니다.회전 중심 설정 [티타늄]

이미지의 중심을 설정했지만 회전의 중심을 설정하는 방법을 모르겠습니다.

다음

코드입니다 : iOS에서 당신은 안드로이드에 당신이 이후 Ti.UI.Animation's anchorPoint 또는 귀하의 경우를 설정해야는 Ti.UI.View's anchorPoint을 설정해야합니다 당신은 애니메이션 /보기 anchorPoint을 설정해야

// image code 
var image = Titanium.UI.createImageView({ 
    backgroundImage:'test.png', 
    width: 650, 
    height: 650, 
    center:{x:CenterX, y:CenterY}, 
    align:'center' 
}); 
//rotation code 
image.addEventListener('touchstart', function(e){ 
    var conv = e.source.convertPointToView({x: e.x, y:e.y}, win); 

    var newAngle = Math.atan2(conv.y - 500, 380 - conv.x)* -(180/Math.PI); 
    diff = (newAngle - old); 

}); 

image.addEventListener('touchmove', function(e){ 

     var conv = e.source.convertPointToView({x: e.x, y:e.y}, win); 

     var newAngle = Math.atan2(conv.y - 500, 380 - conv.x)* -(180/Math.PI); 
     current = (newAngle-diff); 
     var t = Ti.UI.create2DMatrix().rotate(current); 
     wheel.transform = t; 

}); 

답변

0

당신의 매트릭스를 사용하여 생성시에만 anchorPoint of the Matrix을 설정하면됩니다 (Android의 경우).

/* iOS */ 
var image = Titanium.UI.createImageView({ 
    backgroundImage:'test.png', 
    width: 650, 
    height: 650, 
    anchorPoint: {0.5, 0.5}, // ANchor point is at the center 
}); 

또는 대안을 안드로이드에 : 여기

아이폰 OS을 위해 할 것입니다

오른쪽 이미지의 중심을 설정
/* Android */ 
// Matrix, inside your event listener 
image.addEventListener('touchmove', function(e){ 

    var conv = e.source.convertPointToView({x: e.x, y:e.y}, win); 

    var newAngle = Math.atan2(conv.y - 500, 380 - conv.x)* -(180/Math.PI); 
    current = (newAngle-diff); 

    // Note that I set the anchor point here. 
    var t = Ti.UI.create2DMatrix({anchorPoint: {0.5, 0.5}}).rotate(current); 
    wheel.transform = t; 
}); 
+0

? 나는 회전의 중심과 이미지가 모두 같기를 원한다. – user782400

+0

아니요, anchorPoint는 이미지의 회전 지점을 설정합니다. {0.5, 0.5}로 설정하면 이미지가 가운데를 중심으로 회전합니다. –

관련 문제