var r = 50//半径
//dg是角度
function cycle(dg){
var out = {}
var dis1 = Math.PI/180 //1度的计算参数
out.x = center.x + Math.cos(dis1 * dg)*r
out.y = center.y - Math.sin(dis1 * dg)*r
return out
}
for(var i = 0 , elem , cyc i <361 i = i +20){
cyc = cycle(i)
elem = document.createElement("div")
elem.setAttribute("style","position:absoluteleft:"+cyc.x+"pxtop:"+cyc.y+"px")
elem.innerText="字"
document.body.appendChild(elem)
}
具体代码实现在这里,原理就是通过临边斜边的函数来进行坐标计算
另外建议楼主问之前先自己多思考,才能得到提高
坐标是 (sindzcosdy, sindxcosdz, sindycosdx)答案是这样算的:
先绕着Z旋转dz,得到(sindz, cosdz,1)
再绕着X旋转得到(sindz, sindxcosdz, cosdx)
最后绕着Y旋转得到 (sindzcosdy, sindxcosdz, sindycosdx)
就旋转法向量就好拉,别的不理.
追问:
谢谢啊!一个字“牛”,一看就是我想要的答案,不过我还想问问就是它的开始朝向垂直轴有没有影响呢?
追答:
youdoido:我刚才也看了一下,有些不可以忽略的东西被我忽略了.. 我的思路是这样的,每次旋转都可以放到平面上旋转的. 绕着X旋转的话, 就可以把X轴忽略掉,并且X坐标不变. 绕着Y轴旋转,可以把Y轴忽略掉,变成平面坐标,而且Y轴的值不变. 我刚才又算了一下,发现答案是有点问题. 我再看看吧. 不好意思哈哈.. 刚打错字了.