То, что вы ищете, это tangent
, что составляет 90 градусов к normal
(который используется чаще).Эти два термина должны помочь вам в поиске.
Это тривиально, если у вас есть данные контура многоугольника.Если все, что у вас есть, это изображение, то вам нужно придумать способ преобразовать его в многоугольник.
Возможно, он не совсем подходит для вашей проблемы, но первое, на что я бы остановился, это Farseer Physics Engine , который имеет функцию «текстура в многоугольник», которую вы, возможно, можете использовать повторно.
Если вы используете местность как своего рода «землю», вы можете обманутьнемного, глядя на соседний столбец пикселей и используя его, чтобы определить наклон земли в этой точной точке.Вроде того, что делают Лемминги и Черви.
Если вы сделаете это определение на границе между каждым пикселем, вы можете получить градиенты роста: бегите между двумя пикселями по горизонтали.Обычно вы просто разбиваете его на категории: такие плоские (1: 1), 45 градусов (2: 1) или слишком крутые (> 3: 1).С более сложным алгоритмом, который смотрит наружу на большее количество столбцов, вы можете получить лучшее разрешение.