Bawię się mapami wysokości (mapami bitowymi), staram się tworzyć własne w swojej grze i muszę zaimplementować podstawowe metody rysowania. Szybko zdałem sobie sprawę, że rysowanie linii prostych nie jest tak proste, jak myślałem.
To proste, jeśli punkty mają współrzędne X lub Y, lub jeśli są wyrównane, dzięki czemu można narysować idealnie ukośną linię. Ale we wszystkich innych przypadkach jest to trudniejsze.
Jakiego algorytmu używasz do określania, jakie piksele należy pokolorować, aby stał się „linią prostą”?
źródło
to->red = br * (float)from->red;
do tego poniżej:to->red = (br * (float)from->red) + ((1-br) * (float) to->red);
. Zrób to samo w odniesieniu do zielonego i niebieskiegoOto niezwykle prosty sposób rysowania linii. Funkcję tę można łatwo zmienić w celu użycia w projektach.
źródło