Не могли бы вы разместить метку в наивном центре (возможно, ограничительной рамки), а затем переместить ее на основе пересечений локальных краев многоугольника и BB метки? Перемещение по нормали пересекающихся ребер, и если несколько ребер пересекаются, суммировать их нормали для движения?
Просто угадай здесь; в такой проблеме я, вероятно, попытался бы решить итеративно, если производительность не слишком важна.