У меня есть Polygon (Hex для настольной игры) в Silverlight, что-то вроде;Silverlight Polygon - нажмите внутри?
public class GridHex : IGridShape
{
.....
public IList<Point> Points { get; protected set; }
public bool Intersects(Point point) { ... }
}
Я хотел бы быть в состоянии сказать
if(myHex.Intersects(clickedPoint)) { ... }
Однако я не уверен в какой алгоритм использовать в рамках метода пересекающего - в настоящее время я использую внутренний «ограничивающий прямоугольник» внутри каждого Шестиугольник, чтобы определить, находится ли в нем точка, но должен ли быть алгоритм, чтобы понять это? Я знаю координаты для 6 пунктов каждого шестиугольника.
Я думал, что могу создать Silverlight Polygon и провести какое-то тестирование на удар? Конечно, это было бы довольно интенсивно с памятью (я бы повторил большое количество гексов, чтобы увидеть, какой Хек щелчок мыши попал внутрь ...), поэтому было бы лучше использовать математическую формулу для разработки, если точка находится внутри a Hex ....