Это - одна из нерешаемых проблем самой ранней 3Д графики. Если использовать алгоритм Художника. Тоесть сортировать объекты в пространстве и рисовать их полигонами то всё равно будет ситуация когда какую-то фигуру нариовать невозможно. Круговое перекрытие.
Решений два. (Всё в 3d графике. Тоесть ваши полигончики лежат не на плоскости а в пространстве X,Y,Z)
Первое. Берем и разрезаем один полигончик плоскостью другого и у нас получается уже не 3 а 4 полигончика
но они рисуются корректно.
И второе - это Z буффер. Тоесть для каждого пиксела экрана проставляем глубину. Изначально она равна бесконечности. Но каждый полинончик эту глубину корректирует. Различные варианты Z буфера сейчас работают во всех современных играх.
mayton2019, вот бы посмотреть как это реализовать ( это сильно упрощенный пример для легкого понимания, по факту вместо отрезков сложные элементы с большой вложенностью)
Сергей К, знаю. Я вам уже два варианта написала за это время, а вы всё спорите.
1. Разрезать один из слоев.
2. Не заводить градиент под шапку. Зачем он там?