[C++ SFML 3.0] Punkty na obwodzie kształtu składającego się z kwadratów
Ostatnio zmodyfikowano 2026-07-13 20:37
tBane Temat założony przez niniejszego użytkownika |
[C++ SFML 3.0] Punkty na obwodzie kształtu składającego się z kwadratów » 2026-07-07 17:44:40 Cześć. Piszę program w C++ SFML 3.0. Potrzebuję uzyskać listę punktów obwodu kształtu. Kształt składa sie z kwadratów opisanych przez std::vector<sf::IntRect> _rects. Pomozecie ? :-)  std::vector < sf::IntRect > rects; std::vector < bool > filled;
int side = 16; int countX = 16; int countY = 16;
for( int y = 0; y < countY; y += 1 ) { for( int x = 0; y < countX; x += 1 ) { rects.push_back( sf::IntRect( sf::Vector2i( countX * side, countY * side ), sf::Vector2i( side, side ) ) ); filled.emplace_back( rand() % 2 == 0 ); } }
std::vector < sf::Vector2i > points = getPoints( rects, filled );
for( int i = 0; i < rects.size(); i += 1 ) { sf::RectangleShape rectShape( sf::Vector2f( rects[ i ].size ) ); rectShape.setFillColor(( filled[ i ] ) ? sf::Color::Green : sf::Color::Black ); rectShape.setPosition( sf::Vector2f( rects[ i ].position ) ); Main::render_window->draw( rectShape ); }
|
|
tBane Temat założony przez niniejszego użytkownika |
» 2026-07-07 18:04:01 A może by tak sortować punkty po y,x i jeżeli dodaje się kwadrat i zawiera już istniejące punkty to te punkty kasować? Ale jak potem uporządkować punkty, żeby można było z ich pomoca utworzyć sf::ConvexShape? |
|
skovv |
» 2026-07-09 20:17:01 kształt masz na myśli ten zielony zestaw kwadracików? Punkty mają być tylko po zewnętrznej stronie(4 punkty "po rogach") czy po każdej linii od skrętu? Ja bym zrobił tak że "sprawdzasz" wszystkie kratki tego obiektu, sprawdzał czy jest np ostatnim bloczkiem z lewej i góry(więc narożnym) więc na tym rogu daje krope. itp |
|
tBane Temat założony przez niniejszego użytkownika |
» 2026-07-13 20:37:39 Dobra... Jak wymyślę ten algorytm to go tu wrzucę :-) |
|
| « 1 » |