我有一个Vector2

Vector2 v = new Vector2(1,0);


如何以[0,360]度范围内的均匀分布随机旋转此向量(大约(0,0))?

最佳答案

要逆时针随机旋转矢量v

Vector2 v = new Vector2( 1,0 );

Random rnd = new Random();
double rotationAngle = 2.0 * Math.PI * rnd.nextDouble();

Vector2 vRotated = new Vector2(
   (v.x)*Math.cos(rotationAngle) + (v.y)*Math.sin(rotationAngle),
   (v.y)*Math.cos(rotationAngle) - (v.x)*Math.sin(rotationAngle)
);


转换数学来自here

关于java - 如何均匀地在0和360度之间随机旋转Vector2?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7274005/

10-13 04:24