Skalowanie
|
Skalowanie rysunku narzędziami klasy lo28 |
||
W klasie lo28 przyjęto skalę "1:1" tzn jednostka=20 piksli ekranowych. Nie przewiduję bezpośrednio wbudowanego mechanizmu skalującego wykonywany rysunek.
Zacznijmy od sytuacji prostej. Niekiedy wystarcza zastosować jednokładność Niech: A(-lo28.max_x() , lo28.max_y()); B(lo28.max_x() , -lo28.max_y()); C(x_min , y_max); D(x_max , y_min); Nowy obszar (z przekątna CD) umieszczamy znowu na naszym aplecie, tak by zajął całą płaszczyznę. Aby uzyskać ten efekt wykonamy złożenie jednokładności z przesunięciem równoległym : Jk(0,0)T[-s.x,-s.y] Oto procedura, która przygotuje odpowiednie zmienne:
dl, sz - rzeczywiste wymiary powiększanego obszaru s(x,y) - środek powiększanego obszaru kx, ky - skala powiększenia (odpowiednio pozioma / pionowa) dx, dy - dokładność nowego rysunku - zobacz zb.Mandelbrota Operacje graficzne (np punkt p(x,y) ) adresujemy :
Opisany mechanizm powiększania zastosowałem rysując również figury Chladniego 2D oraz figury Chladniego 3D |