Skalowanie układu współrzędnych

Obiekty i przekształcenia geometryczne, opisane za pomocą układu (nie zawsze prostokątnego) współrzędnych.
Galmido
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 4 paź 2009, o 19:51
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy

Skalowanie układu współrzędnych

Post autor: Galmido »

Witam.

Natknąłem się na kolejny problem podczas programowania skryptu.

Spróbuję wyjaśnić obrazowo.
Mam obszar o rozmiarze 400px wysokości i dowolnej szerokości.
Na tym obszarze mam układ współrzędnych, kolejno w wysokości co 10% (co 40px).
Wygląda to w ten sposób:
Poziome linie na wykresie oznaczają kolejno 10%, 20% itd.

Teraz chciałbym przeskalować cały układ współrzędnych, tak, aby współrzędna, która znajduje się na 10% znalazła się na 0%, czyli na samym dole. Logicznym jest więc rozciągnięcie układu współrzędnych o 40px (10%) w dół, a następnie usunięcie dolnych 10%. Jednak, wcześniej nie wziąłem pod uwagę, że rozciągną się także przestrzenie między współrzędnymi. W efekcie, po opercji rozciągnięcia o 10%, a następnie usunięcia tych 10% otrzymuję taki efekt:


Brakuje dokładnie 1%, przy rozciągnięciu o 11% i usunięciu 11% współrzędna znajdująca się na 10% pierwotnego układu znajduje się na samym dole.
Przy próbie przeniesienia współrzędnej z 20% na sam dół, brakuje już 5%.
Próbowałem znaleźć jakąś zależność, ale nic nie zauważyłem, szukałem także wzorów na wyliczenie rozciągnięcia współrzędnych, ale także nic nie znalazłem.

Tak wyglądają zależności między ilością procent rozciągniętych, a brakującą ilością do pożądanego efektu:
10% - 1%
20% - 5%
30% - 13%
40% - 26%

Jestem przekonany, że istnieje jakiś prosty wzór, pozwalający obliczyć, ile brakuje do uzyskania pożądanego efektu.

Mam nadzieję, że wytłumaczyłem wszystko w przystępny sposób.
Pozdrawiam.
anna_
Użytkownik
Użytkownik
Posty: 16328
Rejestracja: 26 lis 2008, o 20:14
Płeć: Kobieta
Podziękował: 35 razy
Pomógł: 3247 razy

Skalowanie układu współrzędnych

Post autor: anna_ »

Spróbuj rozciągnąć o \(\displaystyle{ 11 \frac{1}{9} \%}\)
ODPOWIEDZ