Gibas11 Temat założony przez niniejszego użytkownika |
Kolizja piksela z sześciokątem (sf::CircleShape) » 2015-08-30 16:28:24 Jak w temacie, mam sześciokąt utworzony tak: sf::CircleShape triangle = sf::CircleShape( 29, 3 );
I chcę sprawdzić czy pixel się w nim zawiera, wymyśliłem jakieś rozwiązanie na około z wykorzystaniem sf::RenderTexture ale prędkość nie powala, a ja potrzebuję maksymalnej wydajności. Pozdrawiam! EDIT: Nie zwracać uwagi na "triangle", pierwotnie miał to być trójkąt i jeszcze nie zmieniłem nazw. :/ |
|
DejaVu |
» 2015-08-30 16:58:42 wyprowadz wzor matematyczny jak chcesz szybko sprawdzac czy punkt nalezy do szesciokata. |
|
Gibas11 Temat założony przez niniejszego użytkownika |
» 2015-08-30 17:23:42 A jak taki wzór wygląda? Niestety, ale moja edukacja stoi jeszcze na stosunkowo niskim poziomie (teraz idę do 1. klasy liceum) i na żadnym Polskim forum nie znalazłem przejrzystych informacji na ten temat. :/ |
|
michal11 |
» 2015-08-30 19:12:34 |
|
DejaVu |
» 2015-08-30 20:46:08 triangle.getGlobalBounds().contains( px, py ); Nie sprawdzałem tego dokładnie ale powinno działać, oczywiście px i py to współrzędne twojego piksela.
|
Sądzę, że to sprawdza czy punkt się zawiera w kole, a nie w sześcianie. |
|
Gibas11 Temat założony przez niniejszego użytkownika |
» 2015-08-30 21:24:04 Niestety, nie ma tak miło, funkcja, którą podałeś sprawdza czy piksel zawiera się w prostokącie, "opisanym" (sądzę, że można to tak nazwać, niewiele brakuje) na figurze. :/ Ale problem rozwiązany, jednak rozgryzłem jak ogarnąć ten wzór. Wprawdzie przy założeniu, że sześciokąt foremny zawsze stoi "prosto", ale zawsze coś. :) Tematu na razie nie zamykam, jak będę miał gotowy kod, to tu wrzucę, będzie dla kolejnych pokoleń. :) |
|
maly |
» 2015-08-31 07:13:57 Do stwierdzenia czy punkt znajduje się wewnątrz wielokąta nie potrzebne są wzory matematyczne, wystarczy algorytm opisany na tej stronie http://www.alienryderflex.com/polygon/ który załatwia sprawę nie tylko z wielokątami wypukłymi ale także z wklęsłymi jak i posiadającymi w sobie dziury. |
|
« 1 » |