Algoritmo para crear esquinas redondeadas en un polígono

Estoy buscando un algoritmo que me permita crear esquinas redondeadas a partir de un polígono. En Input, obtengo una matriz de puntos que representa el polígono (línea roja) y en la salida, una matriz de puntos que representa el polígono con esquina redondeada (línea negra).

También me gustaría tener una manera de controlar el radio de cada esquina. Ya intenté usar Bezier y Subdivision pero no es lo que estoy buscando. Bezier y Subdivision están suavizando todo el polígono. Lo que quiero, es solo redondear las esquinas.

Alguien sabe algún buen algoritmo para hacer eso? Estoy trabajando en C # pero el código tiene que ser independiente de cualquier biblioteca .NET.

Respuestas a la pregunta(5)

Su respuesta a la pregunta