我有一个圆圈的图像,在 Titanium 中分为n 个扇区。现在在每个扇区内我需要放置一个图像。每个图像角度都是从将在中心旋转的第一张图像中计算出来的。
我怎样才能做到这一点 ?将第一个图像及其枢轴放在中心顶部,然后将其他图像以一定角度距离放置在其他扇区中。
您可以对每个图像应用旋转。
我做过类似的事情,也许它可以帮助你。我想在每个部门都贴上标签。为此,首先我必须创建一个或多或少覆盖扇区的透明视图,然后将扇区放在旋转它的位置,然后将标签放在扇区视图内。
这是我使用的代码:
var numberArray = [1, 2, 3, 4, 5, 6, 7, 8];
var angle = 360 / 8;
var rotation = 0;
for (var i = 0; i < 8; i++) {
var sector = Ti.UI.createView({
backgroundColor : 'transparent',
width : 25,
height : circle.height / 2,
top : 0
});
circle.add(sector);
rotation = rotation + angle*i;
var matrix = Ti.UI.create2DMatrix()
matrix = matrix.rotate(rotation);
var a = Ti.UI.createAnimation({
transform : matrix,
duration : 1000,
autoreverse : false,
repeat : 0
});
a.anchorPoint = {
x : 0.5,
y : 0.5
}
sector.anchorPoint = {
x : 0.5,
y : 0.5
}
sector.animate(a);
// Create a Label.
var numberLabel = Ti.UI.createLabel({
text : numberArray[i],
color : '#FF0000',
font : {
fontSize : 26
},
textAlign : 'center',
top : 10
});
// Add to the parent view.
sector.add(numberLabel);
}