我在Silverlight中有一个Polygon(棋盘游戏的Hex),类似于;Silverlight多边形 - 单击内?
public class GridHex : IGridShape
{
.....
public IList<Point> Points { get; protected set; }
public bool Intersects(Point point) { ... }
}
我想能够说
if(myHex.Intersects(clickedPoint)) { ... }
但是我不确定到相交方法中使用的算法 - 目前我使用的是内部的“边界框”内的每个六角形检测一个点是否在它内部,但是必须有一个算法来解决这个问题?我知道每个Hexagon的6个点的坐标。
我想我可以创建一个Silverlight多边形并进行某种打击测试?当然,这将是相当大的内存密集(我会迭代大量的Hexes来查看鼠标点击的是哪个Hex),所以使用数学公式来计算点是否在一个十六进制....