在上一次比赛中,我被赋予了一系列建筑物,我需要在这些建筑物周围创建最小长度的围栏。栅栏可能触及建筑物的角落,墙壁,但可能无法通过建筑物,所有建筑物都必须位于一个区域内。
我知道我需要建立围栏多边形边缘的角落。但我不知道如何为计算机编写它
答案 0 :(得分:1)
一个普通的凸面船体将是你的最小长度的围栏。只需采用一组描述建筑物角落的点(假设您的建筑物是多边形),并在这些点周围建造一个凸包。
对于一组点,Convex hull是一个经典的,基本的,研究得很好的计算几何问题。
http://en.wikipedia.org/wiki/Convex_hull_algorithms
Gift wrapping算法非常易于理解和实现。