Pytanie mam jak w temacie.
Najłatwiejsze wydaje się sprawdzenie, czy w polygonie A znajduje się którykolwiek z wierzchołków polygonu B (lub odwrotnie), np. używając regionów i funkcji PtInRegion. Niestety możliwe są sytuacje, w których dwa polygony będą się częściowo pokrywać, choć żaden z wierzchołków jednego nie wejdzie w obszar drugiego (wyobraźcie sobie małą literę t albo krzyż jako przykład - obie części się stykają, ale bez udziału wierzchołków).
Jedyne co mi przychodzi do głowy, to wyznaczanie dla wszystkich boków obu polygonów funkcji liniowych i sprawdzanie przecięć, a potem określanie, czy przecięcie leży na danym boku czy nie. Zadziałać zadziała, ale będzie to raczej dalekie od wydajności, zwłaszcza, że chciałbym testować w ten sposób bardzo wiele polygonów w krótkim czasie.
Jednym z tych polygonów jest bowiem pole widzenia gracza (o kształcie trójkąta), drugi polygon to ewentualny obiekt, który - o ile znajduje się w tym polu widzenia - musi zostać narysowany na ekranie. Gdy w polu widzenia znajduje się choćby jeden wierzchołek, to resztę jestem w stanie zrobić (dorysowuję sobie wszystkie sąsiednie wierzchołki, łączę je liniami, teksturuje itd). Problem mam z dużymi obiektami (np. ścianami), gdzie gracz nie jest wstanie wyłapać ani jednego wierzchołka, a przecież obiekt znajduje się w jego polu widzenia.