gpt4 book ai didi

lua - 如何计算两个矩形之间的距离? (上下文 : a game in Lua. )

转载 作者:行者123 更新时间:2023-12-03 12:28:50 28 4
gpt4 key购买 nike

给定两个具有 x、y、宽度、高度(以像素为单位)和以度为单位的旋转值的矩形——如何计算它们的轮廓彼此之间的最近距离?

背景:在用 Lua 编写的游戏中,我随机生成 map ,但要确保某些矩形彼此不会太近 - 这是必需的,因为如果矩形进入某个近距离位置, map 将变得无法解决,如一个球需要在他们之间传递。速度不是一个大问题,因为我没有很多矩形,而且每个级别只生成一次 map 。我在 StackOverflow 上找到的以前的链接是 thisthis

提前谢谢了!

最佳答案

不在 Lua 中,这是基于 M Katz 建议的 Python 代码:

def rect_distance((x1, y1, x1b, y1b), (x2, y2, x2b, y2b)):
left = x2b < x1
right = x1b < x2
bottom = y2b < y1
top = y1b < y2
if top and left:
return dist((x1, y1b), (x2b, y2))
elif left and bottom:
return dist((x1, y1), (x2b, y2b))
elif bottom and right:
return dist((x1b, y1), (x2, y2b))
elif right and top:
return dist((x1b, y1b), (x2, y2))
elif left:
return x1 - x2b
elif right:
return x2 - x1b
elif bottom:
return y1 - y2b
elif top:
return y2 - y1b
else: # rectangles intersect
return 0.

在哪里
  • dist是点之间的欧几里德距离
  • 矩形1 由点组成 (x1, y1)(x1b, y1b)
  • 矩形2 由点组成 (x2, y2)(x2b, y2b)
  • 关于lua - 如何计算两个矩形之间的距离? (上下文 : a game in Lua. ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978323/

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