我希望有人能帮助我,我被要求为一个游戏编写一些Lua脚本的代码。首先,我不是Lua Scripter,我敢肯定没有数学家。创建函数在平行四边形中生成随机点
我需要做的是在平行四边形内生成随机点,所以随着时间的推移,整个平行四边形变得充满。我玩过脚本,并且在平行四边形(矩形)上直线上下或90度时取得了一些成功。旋转平行四边形时出现问题。
正如您在图像中看到的,事情会因地图区域中心的坐标而变得更糟,平行四边形可以放置在地图区域的任何位置。平行四边形本身由3对坐标定义,start_X和Start_Y,Height_X和Height_Y,最后是Width_X和Width_Y。无论位置或方向如何,生成的随机点都必须在这些坐标的范围内。
Map coordinates and example parallelogram
坐标的一个例子是...
Start_X = 122.226 Start_Y = -523.541
Height_X = 144.113 Height_Y = -536.169
Width_X = 128.089 Width_Y = -513.825
在我的脚本测试中,我已经将小数点减少到了.5,因为任何较小的似乎对最终结果都没有影响。另外,实际上,在最终使用时,起始宽度和高度可以处于任何方向。
有没有人与病人解释我需要做些什么来得到这个工作,我的数学是非常基本的,所以请温柔。
感谢您的阅读和预期的答复。 伊恩
嗨,彼得,谢谢你的回复,但我没有在出生时得到一个数学头的幸运,我对前两行感到困惑。 你是说a和b可以是0或1,或者我需要在坐标值之间生成一个像start_x和height_x之间的随机数。诚实地说,我没有得到0 <= a <= 1位,请你解释一下。 – Ian 2012-02-18 10:27:25
您需要为一个可以是0.0到1.0范围内的任意数字(例如0.0 0.23,0.7等)的随机数产生一个随机数。通常有一个标准函数为您执行此操作,如math.random() – 2012-02-19 09:41:33