如何计算对象(黑色)行进方向(绿色)的有效范围(红色)。绿色是 Vector2,其中 x 和 y 的范围是 -1 到 1。
我在这里尝试做的是创造火箭燃料燃烧效果。所以我得到的是
- 火箭速度( float )
- 火箭方向(Vector2 x = [-1, 1], y = [-1, 1])
我可能认为火箭速度并不重要,因为燃料燃烧效果(粒子)是在位置上以其自身的速度产生的。
使用 2D 向量的一个廉价而有趣的技巧是转置 x 和 y,然后翻转其中一个上的符号以获得垂直向量(伪代码):
Vector2 perpendicular ( -original.y, original.x ) // Or original.y, -original.x
然后你可以这样做:
direction + perpendicular * rand(-0.3 , 0.3)
更新:意识到问题要求相反的向量(太忙于看图片了!)我想我最好也回答这个问题。将“方向”乘以 -1 得到相反的向量。所以这个:
perpendicular * rand(-0.3 , 0.3) - direction
应该在您的范围内的某处为您提供一个随机方向向量(未标准化,但对于这些目的来说足够接近)。然后,您可以将该结果乘以一个随机数,具体取决于您想要尾部的长度。
我是一名优秀的程序员,十分优秀!