gpt4 book ai didi

java - 搜索区域半径内的位置

转载 作者:行者123 更新时间:2023-11-30 06:01:35 25 4
gpt4 key购买 nike

我正在构建一个 Minecraft 插件。

基本上,我的世界限制是通过生成位置的半径来设置的,而不是用 4 个角来确定世界的有限区域。

所以我的世界限制是一个圆形半径,例如 1000 个方 block 的距离。现在我想在 1000 个方 block 半径的区域内放置一个 50x50 的小方 block 圆形区域,因此我需要找到一个随机坐标,它将作为我要制作的圆形区域的中心点。

问题

  1. 如何在基于半径的区域中获得随机坐标,有方程式吗?我不能只执行spawnX + rand(-1000,1000) 和spawnZ,因为该区域是圆形的。

  2. 如何确保我要放入的整个圆形区域适合大半径区域?

最佳答案

在圆中选择一个随机点将是一个随机角度和半径内的随机数:

random_angle = random(2π)
random_dist = random(radius)
random_x = cos(random_angle) * random_dist
random_y = sin(random_angle) * random_dist

为了确保一个圆形区域适合另一个圆形区域,您可以计算小圆形到中间的距离+其半径,只要该距离等于或小于大圆形,那么它就适合。

求距离为a² + b² = c²。因此,将其替换为 x 和 y 即可得到:

distance = √(x_diff² + y_diff²)

这一切都假设您的坐标从 map 圆圈中间的 (0, 0) 开始。如果不是,您可以通过将所有坐标的宽度和高度的一半相加来计算。

关于java - 搜索区域半径内的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57131304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com