Javascript坐标之间的随机数

标签 javascript random

我想在以下坐标之间生成点:52.1462 ,5.8676 - 52.1536 ,5.8376 这是绘制我的矩形的地方。

我得到了以下代码来随机化该矩形之间的点:

var x_min = rectangle.getBounds().getEast();
var x_max = rectangle.getBounds().getWest();
var y_min = rectangle.getBounds().getSouth();
var y_max = rectangle.getBounds().getNorth();


var lat = y_min + (Math.random() * (y_max - y_min));
var lng = x_min + (Math.random() * (x_max - x_min));


lngBrd.push([l , b ]); == My starting point. 
lngBrd.push([lng, lat]); == should be random inside the box
lngBrd.push([lng, lat]); == should be random inside the box

但它给了我盒子外面的坐标,请参见图片。

enter image description here

哪里出了问题?

回复评论

如果我登录:

lngBrd.push([l , b ]); == My starting point. 
lngBrd.push([lng, lat]); == should be random inside the box
lngBrd.push([lng, lat]); == should be random inside the box

我明白了:

enter image description here

每次刷新时。 (第一个是正确的,因为那是我的起点)

最佳答案

我认为x_min应该是rectangle.getBounds().getWest();x_max应该是rectangle.getBounds ().getEast(); 假设我们位于笛卡尔平面的第一象限。

var x_min = rectangle.getBounds().getWest();
var x_max = rectangle.getBounds().getEast();
var y_min = rectangle.getBounds().getSouth();
var y_max = rectangle.getBounds().getNorth();

由于坐标为 (52.1462 ,5.8676) (52.1536 ,5.8376),因此先将这些值乘以 10000 可能会很有用然后恢复。

var x_min_int = x_min * 10000;
var x_max_int = x_max * 10000;
var y_min_int = y_min * 10000;
var y_max_int = y_max * 10000;

var lat_int = y_min_int + (Math.random() * (y_max_int - y_min_int));
var lng_int = x_min_int + (Math.random() * (x_max_int - x_min_int));

var lat = lat_int / 10000;
var lng = lng_int / 10000;

由于 Math.random() 最适合整数,因此适当的随机化将适用于矩形的范围

关于Javascript坐标之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60616313/

相关文章:

C 如何防止随机变量重复相同的数字

javascript - 获取 IndexedDB 中添加记录的键

javascript - 在 Highcharts.js 中获取值

javascript - 使用客户端IP作为cookie,识别重复访问并在第一次访问后显示消息

javascript - 将模拟 $state 注入(inject) Angular 单元测试

Java - 生成随机数字簇

string - Web Assembly 绘制灰色 Canvas

java - java中如何生成随机数

c - 在 C 中生成高斯分布随机数 - 如何将值保持在 0 和 1 之间

javascript - 在 Firefox 和 Edge 中隐藏滚动条