我在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),所以使用數學公式來計算點是否在一個十六進制....