1.背景
最近在自学游戏开发,在gayhub上找了一个简单的人生重开模拟器的项目来学习。项目地址:https://github.com/gameall3d/LifeRestart_Cocos
这个游戏的开始游戏界面,有一个词云的效果实现。如下图:
ps:这是我单独另建了一个测试项目,把词云的实现部分拿出来测试,原项目首页不是这个样子。
- 问题
在词云的实现逻辑里,有一小段数学计算,用来计算每个词的初始摆放位置。如下:
const RADIUS: number = 200;
for (let i = 0; i < tagLength; i++) {
const k = (2 * (i+1) -1) / tagLength - 1;
const a = Math.acos(k);
const b = a * Math.sqrt(tagLength * Math.PI);
var x = RADIUS * Math.sin(a) * Math.cos(b);
var y = RADIUS * Math.sin(a) * Math.sin(b);
var z = RADIUS * Math.cos(a);
…
}
想了解这一段位置计算为什么要这么去算

