logowanie

matematyka » forum » forum zadaniowe - uczelnie wy縮ze » zadanie

Geometria, zadanie nr 521

ostatnie wiadomo艣ci  |  regulamin  |  latex

AutorZadanie / Rozwi膮zanie

revv83
post贸w: 1
2012-09-22 00:29:52

Witam wszystkich.

W zasadzie jestem tu pierwszy raz i pisz臋 z nadziej膮, 偶e kto艣 podpowie mi jak rozwi膮za膰 pewien irytuj膮cy problem.
Tworz臋 aplikacj臋, w kt贸rej potrzebuj臋 dopasowywa膰 dane zdj臋cie do ustalonego, sta艂ego kadru o wymiarach AxB.
Szkopu艂 tkwi w tym, i偶 w aplikacji chcia艂bym obraca膰 dane zdj臋cie wzgl臋dem 艣rodka kadru i jednocze艣nie skalowa膰 je tak, aby zawsze wype艂nia艂o obszar ca艂ego kadru AxB (pewne zb臋dne fragmenty zdj臋cia znalaz艂yby si臋 w贸wczas poza kadrem). W praktyce wygl膮da艂oby to tak, 偶e dla pewnych warto艣ci k膮ta obrotu zdj臋cie powi臋ksza艂oby si臋 lub zmniejsza艂o, po to by ustalony kadr zawsze by艂 wype艂niony zdj臋ciem.

Za艂膮czam zdj臋cia, aby zobrazowa膰 problem.


1. Zdefiniowany kadr o wymiarach AxB znajduje si臋 na 艣rodku ekranu. Zielony obszar to rzeczywiste wymiary przyk艂adowego zdj臋cia.





2. Zdj臋cie przeskalowane do kadru.





3. Tak wygl膮da zdj臋cie obr贸cone o 5 stopni. Wida膰, 偶e ca艂y kadr nie jest wype艂niony (wida膰 bia艂e t艂o).





4. I w tym miejscu mam problem. Taki efekt chcia艂bym uzyska膰. Zdj臋cie wype艂nia tylko niezb臋dny obszar kadru (reszta, mo偶liwie jak najmniej - zostanie 艣ci臋ta).




Ot贸z, jak dla tego przypadku wyprowadzi膰 wz贸r na procentow膮 skal臋 powi臋kszenia zdj臋cia wzgl臋dem jego rzeczywistych wymiar贸w posiadaj膮c:
- rzeczywiste wymiary zdj臋cia
- k膮t obrotu, np. 5 stopni
- wymiary kadru AxB

Dla niekt贸rych k膮t贸w, np. 30 stopni uda艂o mi si臋 to policzy膰 z funkcji trygonometrycznych. Przy k膮cie 5 stopni sytuacja wygl膮da nieco inaczej, s膮 inne warunki geometryczne (nie tworz膮 si臋 tr贸jk膮ty, kt贸rych jednym z bok贸w jest wymiar A lub B), nie mog臋 sobie z tym poradzi膰. Chcia艂bym aby wz贸r by艂 uniwersalny, tak aby mo偶na by艂o policzy膰 ka偶dy k膮t, ew. k膮ty z pierwszej 膰wiartki i jako艣 potem je zredukowa膰 do pozosta艂ych 膰wiartek. Nie jestem specjalist膮 w tego typu obliczeniach, dlatego przepraszam za 艂opatologiczne t艂umaczenie i z g贸ry dzi臋kuj臋 za pomoc.


tumor
post贸w: 8070
2012-09-22 09:00:51

Boki mo偶na opisa膰 prostymi.

Interesuje nas r贸wnanie prostej po obrocie, jakie艣 $Cx+Dy+E=0 $(je艣li nie inaczej, to je mo偶esz ustali膰 po obrocie dw贸ch punkt贸w, potem prosta przechodz膮ca przez te punkty).
Zale偶nie od k膮ta interesuje nas odleg艂o艣膰 tej obr贸conej prostej od odpowiedniego wierzcho艂ka kadru. (Je艣li obracali艣my o k膮t ostry w lewo, to interesuje nas odleg艂o艣膰 prostej zawieraj膮cej prawy bok zdj臋cia od prawego g贸rnego wierzcho艂ka kadru).
I oczywi艣cie potrzebujesz informacji, czy prosta jest nad wierzcho艂kiem czy pod. Liczenie odleg艂o艣ci to wz贸r (nawet wiki ma odleg艂o艣膰 punktu od prostej :P), albo te偶 uk艂ad r贸wna艅, albo obliczenie wektora od punktu do prostej.
A sprawdzenie, gdzie le偶y prosta, to na przyk艂ad wyliczenie $y$ dla $x=\frac{A}{2}$.

Odleg艂o艣膰 (jako odcinek czy wektor) jest r贸wnoleg艂a do boku, kt贸ry chcesz przeskalowa膰.

Za艂贸偶my, 偶e obr贸ci艂e艣 i wysz艂o, 偶e $X$ musisz zwi臋kszy膰 o $R_x$, $Y$ o $R_y$, czyli skalujesz wi臋ksz膮 z liczb
$\frac{X+R_x}{X}, \frac{Y+R_y}{Y}$.

Sytuacja jest symetryczna, wi臋c oczywi艣cie wystarczy policzy膰 dla dw贸ch (r贸偶nych) bok贸w te odleg艂o艣ci.

strony: 1

Prawo do pisania przys艂uguje tylko zalogowanym u偶ytkownikom. Zaloguj si臋 lub zarejestruj

© 2019 Mariusz iwi駍ki      o serwisie | kontakt   drukuj