-
Data: 2012-04-08 01:09:27
Temat: Re: 4ry wierzchołki (głupi problem)
Od: " M.M." <m...@W...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]slawek <s...@h...pl> napisał(a):
>
> Użytkownik <f...@W...gazeta.pl> napisał w wiadomości grup
> dyskusyjnych:jlol4d$h1d$...@i...gazeta.pl...
> > M.M. <m...@W...gazeta.pl> napisał(a):
> >
> >> <f...@g...SKASUJ-TO.pl> napisał(a):
> >>
> >> > mam cztery wierzcholki prostokata
> >> >
> >> > int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
> >> >
> >> > ktore maja przypisane wartosci, potrzebuje te
> >> > wartosci przwpisac do
> >> >
> >> > int upX, upY, downX, downY, leftX, leftY, rightX, rightY;
> >> >
> >> > zgodnie z nazwami tj ten najbardziej z lewej do leftX leftY
> >> > itp, jak to zrobic w prosty sposob?
> >>
> >> Funkcje min i max będą przydatne.
> >
> > to by bylo chyba za dlugie, chyba moge to zrobic sprawdzajac
> > w jakiej cwiartce jest wektor B-A (mozna zalozyc ze ABCD sa
> > uporzadkowane np prawoskretnie wiec chyba powinno byc ok)
>
> Posortować oddzielnie (Ax, Bx, Cx, Dx) i (Ay, By, Cy, Dy).
>
> Lewe są te z najmniejszymi x-sami, górne te z najmniejszymi (największymi?
> zależy od przyjętego układu współrzędnych) y-kami.
>
> Trochę logiki i powinno działać.
>
> Funkcje min i max nie będą (chyba) szybsze niż if-else .
>
> Najogólniej? Są 24 przypadki, wystarczy "zajarzyć" który z nich i już jest
> prosto.
Jeśli to ma być szybko, to bez ifów i z wykorzystaniem specyficznych cech
danych wejściowych. Jeśli zmienne są nazywane leftX i leftY to rozumiem,
że chodzi tylko o takie kwadraty które da się opisać czterema liczbami:
dwie współrzędne lewego górnego rogu i dwie prawego dolnego. Do wyświetlania
na monitorze w zupełności wystarczy 16 bitów, daje to sporą rozdzielczość
65tys na 65tys punktów logicznych czy tam fizycznych. Czyli apropo
struktury danych mamy cztery liczby upakowane do jednej 64 bitowej, najlepiej
jakby ona znalazła się w rejestrze.
Mamy cztery dane wejściowe:
Ax, Ay, Bx, By, Cx, Cy, Dx, Dy
Być może to już jest błędem, może algorytm wypluwający te dane da się
tak przebudować, aby dawał tylko 4 liczby, gdyż każda współrzędna dla
prostokąta obróconego o wielokrotność 90 stopni występuje dwa razy. Jeśli
się da algorytm wypluwający przebudować, to wystarczy porównać dwie
liczby if( a < b ) szesnastobitowe utworzone odpowiednio z bitów 0-15 i
32-47. W przypadku gdy współrzędne są podawane tak jak zwykle, czyli
najpierw x a potem y, to w przypadku gdy a < b wiemy że lewy górny punkt
jest zakodowany w bitach 0-31, prawy dolny w bitach 32-64 i nic nie musimy
zmieniać. W przypadku gdy a > b to musimy zamienić 32 bity młodsze ze starszymi.
Mniej/więcej coś takiego:
uint64 swp_corners( uint64 input ) {
const uint32 tmp = ( ( input & x_corner_1 ) >> offset_x1 ) < ( ( input &
x_corner_2 ) >> offset_x2 );
return (input>>(32*tmp))|(input<<(32*tmp));
}
Można pomyśleć jeszcze jak w tmp uzyskać jedynkę gdy wynik porównywania
jest prawdziwy i zero gdy jest nieprawdziwy w sposób niewymagający użycia
operatora mniejszości. Tak żeby kompilator nie wstawiał instrukcji
jum_if_less.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 08.04.12 08:50
- 08.04.12 10:19 M.M.
- 08.04.12 15:04 slawek
- 08.04.12 18:48 M.M.
- 08.04.12 18:56 Michoo
- 08.04.12 19:05 slawek
- 08.04.12 19:10 slawek
- 08.04.12 19:43 Michoo
- 08.04.12 20:17 M.M.
- 08.04.12 20:31 Edek Pienkowski
- 08.04.12 20:51 slawek
- 08.04.12 22:42 Michoo
Najnowsze wątki z tej grupy
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
Najnowsze wątki
- 2025-12-30 Zegary DCF
- 2025-12-29 Greta Thunberg aresztowana w Londynie za wsparcie zdelegalizowanej grupy [Palestine Action - przyp. JMJ]
- 2025-12-29 Sarkozy
- 2025-12-29 Czujnik
- 2025-12-29 Warszawa => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Serv
- 2025-12-29 Warszawa => IT Recruiter <=
- 2025-12-29 Warszawa => Solution Architect (Workday) - Legal Systems <=
- 2025-12-29 Warszawa => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-29 Warszawa => Senior Java Developer <=
- 2025-12-29 Katowice => Key Account Manager <=
- 2025-12-29 MON nabyło Hutę Częstochowa. "Historyczne znaczenie"
- 2025-12-28 Czwarta doba strajku na głębokości 500 metrów. "Ministerstwo robi sobie z nas jaja"
- 2025-12-29 Kolejny kraj [WB - przyp. JMJ] zakazuje chowu klatkowego. W Polsce żyje tak 40 mln kur
- 2025-12-29 MON nabyło Hutę Częstochowa. "Historyczne znaczenie"
- 2025-12-28 Norwegia kontra media społecznościowe




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]