Witam, chcę napisać prostego Paint'a z użyciem SFML. Wolę wszystko wcześniej obmyślić...
Przez jakiś czas zastanawiałem się nas tym jaki algorytm użyć do zapełniania danego obszaru kolorem, wiem że mogłem na ten temat poczytać w internecie ale celowo chcę myśleć samemu. W końcu wpadłem na bardzo prosty rekurencyjny sposób:
Mamy obszar który chcemy wypełnić na pomarańczowo, zapisujemy do zmiennej początkowy kolor pierwszego "klikniętego" piksela ( biały ). Następnie zmieniamy jego kolor na pomarańczowy oraz wywołujemy rekurencyjnie funkcje dla ośmiu sąsiednich pikseli. Dla nich robimy to samo, tyle że jeśli pobrany kolor piksela będzie różny od tego zapisanego w zmiennej ( w tym przypadku białego ) to nic już nie robimy ( powrót ). Co sądzicie o tej metodzie?
Drugie pytanie dotyczy tego co lepiej zastosować jako "płótno". Mamy w SFML do dyspozycji sf::Texture oraz sf::Image, co lepiej wykorzystać? Wydaje mi się że chyba niżej poziomowe jest sf::Texture ( więc szybsze ). Ale nie jestem pewny. Co prawda możliwość zapisu obrazka do pliku daje tylko sf::Image, ale sf::Texture może być na ten typ skonwertowany...
Z góry dziękuje za rady :)