3D云词图旋转如何控制旋转方向呢?
我做了一个圆形的3d云此词图,通过滑动屏幕控制云此图的旋转速度,现在不知道如何写来控制旋转方向,求一个大佬看看我的代码,教我怎么通过滑动方向来控制旋转方向
init: function() {
var tagEle = [
]
var arr = this.data.roast_list
for(var index in arr){
tagEle.push({
title: arr[index].body,
x: 0,
y: 0,
z: 0,
s: 0,
o: 1,
f: 15,
angleX: 0,
angleY: 0
})
}
for (var i = 0; i < tagEle.length; i++) {
var fallLength = 100 //圆的焦点
var k = (2 * (i + 1) - 1) / tagEle.length - 1;
//计算按圆形旋转
var a = Math.acos(k);
var b = a * Math.sqrt(tagEle.length * Math.PI);
//计算元素x,y坐标
var numx = 120 * Math.sin(a) * Math.cos(b)
var numy = 120 * Math.sin(a) * Math.sin(b);
var numz = 220 * Math.cos(a);
// console.log(numo)
//计算元素缩放大小
tagEle[i].x = numx * 2
tagEle[i].y = numy * 2
tagEle[i].z = numz
tagEle[i].s = 350 / (400 - tagEle[i].z)
}
//动画
var interBoolean = true;
this.setData({
timer:setInterval(() => {
if(interBoolean == true){
interBoolean = false
for (var i = 0; i < tagEle.length; i++) {
tagEle[i].s = 350 / (400 - tagEle[i].z)//字体大小
var cos = Math.cos(angleX);//返回余弦值
var sin = Math.sin(angleX);//返回正弦值
var y1 = tagEle[i].y * cos - tagEle[i].z * sin;
var z1 = tagEle[i].z * cos + tagEle[i].y * sin;
tagEle[i].y = y1;
tagEle[i].z = z1;
var cos = Math.cos(angleY);//返回余弦值
var sin = Math.sin(angleY);//返回正弦值
var x1 = tagEle[i].x * cos - tagEle[i].z * sin;
var z1 = tagEle[i].z * cos + tagEle[i].x * sin;
tagEle[i].x = x1;
tagEle[i].z = z1;
}
this.setData({
tagEle: tagEle
})
interBoolean = true
}
}, 25)
})
},