我正在进行一款2D城堡防御游戏的编程,今天遇到了一个问题,但是我无法找到一个好的解决方案。请看下面的图片:
我希望在这个矩形区域中找到一个最接近当前鼠标位置的可放置红色矩形的位置,且不会与其他矩形重叠。所谓的最接近可能的位置是指相对于给定点最接近的位置。针对该问题,什么是正确的算法呢?
谢谢!
我正在进行一款2D城堡防御游戏的编程,今天遇到了一个问题,但是我无法找到一个好的解决方案。请看下面的图片:
我希望在这个矩形区域中找到一个最接近当前鼠标位置的可放置红色矩形的位置,且不会与其他矩形重叠。所谓的最接近可能的位置是指相对于给定点最接近的位置。w,h
,则决策变量是红色矩形的x,y位置。然后,非重叠约束为:对于所有i = 1..n,都有x>= x_i + w_i
或y>= y_i + h_i
或x <= x_i - w
或y <= y_i - h
。您可以以多种方式定义目标(红色矩形与光标之间的距离):