|
发表于 2010-9-27 22:30:16
|
显示全部楼层
这个嘛~~~ 你可以用参数方程...
首先 你这个东西是在一个垂直地面的平面上的圆,咱们就在这个平面上建立一个直角坐标系( u , v )
坐标系原点暂定为这个圆的圆心,于是圆在(u,v)上的参数方程就是
u= 半径 * sin(t)
v= 半径 * cos(t)
然后把(u,v)放进咱游戏里的(x,y,z)坐标系里。由于(u,v)平面垂直于地面,所以
z= v + 圆心高度
然后(u,v)面的面向角度应该是已知的,比如施法单位朝向什么的~,可知
x= sin(朝向角度) * u + 圆心x坐标
y= cos(朝向角度) * u + 圆心y坐标
将u,v代入x,y,z,得到
z= 圆半径*cos(t) + 圆心z高度
x= sin(圆所在平面朝向角度) * 圆半径*sin(t) + 圆心x坐标
y= cos(圆所在平面朝向角度) * 圆半径*sin(t) + 圆心y坐标
这其中的t,你可以让它随着时间变化,比如每0.1秒让t加1,然后根据上面公式一算,就是圆上某点应该在的位置了。如果需要同时有多个那样的漂浮物,就让每个漂浮物的t加上不同的相位
比如3个漂浮物 就是 t , (t+360*1/3) ,(t+360*2/3)
10个就是 t , (t+360*1/10) , (t+360*2/10) ,…… (t+360*9/10) |
|