То, что Вы показали, не совсем треугольник, а иногда совсем не треугольник

Наглядно увидеть легко, но "изобразить" это в коде будет сложнее, как пример самый левый "пик" имеет в подъёме горизонтальный кусок, для второго слева, изначально образуется обратный "треугольник" и т.д...
PS Вы должны понять одну простую вещь, для компьютера существует только 2 состояния - это 0 или 1, всё остальное - это сложные расчёты этих состояний. Поэтому нужны только чёткие условия