Поскольку трапеция является выпуклой, легко классифицировать точки относительно трапеции: точка находится внутри, если она находится слева от всех краев трапеции (при условии, что трапеция ориентирована против часовой стрелки).
Предполагая квадратные пиксели (и трапецию больше, чем пиксель), вы можете легко классифицировать пиксели относительно трапеции, классифицируя их углы: если все четыре угла находятся снаружи, то пиксель находится снаружи;если все четыре угла находятся внутри, то пиксель находится внутри.Для других пикселей вы можете сделать сглаживание с помощью суперсэмплинга.
Вы также можете сделать адаптивный рендеринг с использованием квадродерева, как в Алгоритм Уорнока , но вам нужно будет реализовать более надежный тест пересечениядля квадрата против трапеции (или вообще выпуклого многоугольника).Вам нужно только определить, когда квадрат и трапецоид не пересекаются или когда квадрат находится внутри трапеции.Глубина квадродерева за пределами уровня пикселей будет определять, насколько хорошо сглаживание.
Наконец, вы также можете выполнить точный рендеринг, рассчитав процент площади пикселя, покрытой трапецией.Это вопрос обрезки полигонов, и вы можете использовать алгоритм Сазерленда – Ходжмана .