Me gustaría encontrar una forma de hacer la detección de colisiones de polígonos que maneje los polígonos cóncavos/irregulares de forma muy eficiente. Sería genial si ustedes pudieran revisar mis matemáticas y razonamiento hasta el punto en el que estoy atascado, y también ayudarme a resolver la última pregunta.
Así que empezando con lo que sabemos, sabemos que podemos encontrar el área de cualquier forma poligonal bidimensional B utilizando el Teorema de la divergencia :
$$ \iint_B\vec{\nabla}\cdot\vec{F}dA = \oint_{\partial B}(\vec{F}\cdot\hat{n})ds $$
donde $\hat{n}$ es la normal del límite del pologión. Podemos utilizar este término para encontrar el área basándonos únicamente en las posiciones de los vértices de B :
$$ \iint_BdA = \frac{1}{2}\oint_{\partial B}\vec{v} \cdot \hat{n}ds = \frac{1}{2}\oint_{\partial B} \vec{v} \cdot d\vec{r}_{\bot} $$ $$ = \frac{1}{2}\sum_{i=1}^{j}\int_0^1[(1-t)\vec{P}_i+t\vec{P}_{i+1}] \cdot (\vec{P}_{(i+1)\bot} - \vec{P}_{(i)\bot})dt = \frac{1}{2}\sum_{i=1}^j\vec{P}_i \cdot \vec{P}_{(i+1)\bot} $$
Donde $\vec{v} = x(t)\hat{i}+y(t)\hat{j}$ y $\vec{P}_i$ son las posiciones de los vértices del polígono y $\vec{v}_{\bot}$ es la normal de $\vec{v}$ . También $(i+1)$ hará un bucle hasta $i=1$ en la suma una vez $i = j$ .
Lo que acabamos de hacer es encontrar la cantidad de intesidad de $f(\vec{x})=1$ dentro de $B$ ¿cierto? Asumiendo que sí, entonces la idea es que podamos reemplazar $f(\vec{x})=1$ con cualquier función y encontrar la intesidad total de $f(\vec{x})$ dentro de la región B .
Así que con eso en mente, podemos encontrar una función $f(\vec{x})$ cuyo valor sería 1 si $\vec{x}$ está dentro del polígono B y cero en caso contrario. Me gustaría encontrar una representación algerbraica de esto $f(\vec{x})$ basado en el $\vec{P}_i$ como hicimos anteriormente para la zona. Así que bajando por esa misma ruta:
$$ f(\vec{x}) = \iint_B\delta^2(\vec{s}-\vec{x})d^2s = \oint_{\partial B}\vec{\gamma}\cdot d\vec{b}_{\bot} $$
Donde $\vec{b}$ es la parametrización de B bajo el $\vec{s}$ coordenadas. Me gustaría encontrar $\vec{\gamma}$ tal que:
$$ \vec{\nabla} \cdot \vec{\gamma} = \delta^2(\vec{x}-\vec{s}) $$
¿Es posible encontrar una representación de $\vec{\gamma}$ en términos de la función escalonada de Heavi o de otras distribuciones generalizadas?
Gracias por su tiempo.