伸縮的概念
Author: 藍邦偉  老師

伸縮變換

\left [\begin{array}{cc} r & 0 \ 0 & r \ \end{array}   \right ]\left [ \begin{array}{cc} x  \ y \ \end{array}  \right ]=\left [  \begin{array}{cc} rx \ ry \ \end{array} \right ]    

\left [\begin{array}{cc} h & 0 \ 0 & k \ \end{array}   \right ] \left [\begin{array}{cc} x \ y \ \end{array}   \right ] =\left [ \begin{array}{cc} hx \ ky \ \end{array}  \right ] 

1

3

Reset

A = (-6.67546566157991, -3.372594075016075)
a = 5 (slider from 0.1 to 10, step 0.1)
C: A + (a, a)
O: 0.5 * (A + C)
a_1: 0.3 * Segment[O, A]
h = 1 (slider from 0.1 to 5, step 0.1)
k = 1 (slider from 0.1 to 5, step 0.1)
B: A + (a, 0)
D: A + (0, a)
b = Segment(A, B)
c = Segment(B, C)
d = Segment(C, D)
e = Segment(D, A)
r = 1 (slider from 0.1 to 5, step 0.1)
O_1: O - (-15, 0)
A': O_1 + r * Vector[O, A]
B': O_1 + r * Vector[O, B]
C': O_1 + r * Vector[O, C]
D': O_1 + r * Vector[O, D]
f = Segment(D', A')
g = Segment(A', B')
l = false
O_2: O + (15, 0)
u = Vector((x(O), y(A)), (x(A), y(A)))
v = Vector((x(A), y(A)), (x(A), y(O)))
B_0: O_2 - h * u - k * v
C_0: O_2 + h * u + k * v
D_0: O_2 - h * u + k * v
A_1: O + (a_1, 0)
q = Segment(C_0, D_0)
s = Segment(D_0, B_0)
t = Segment(C_0, B_0)
o = false
C_a = Circle(O, 0.3 * Segment[O, A])
A_2: O + (a_1 * cos(30°), a_1 * sin(30°))
i = Segment(D', C')
j = Segment(C', B')
A_0: O_2 + h * u - k * v
m = Segment(C_0, A_0)
n = Segment(A_0, B_0)
A_3: O + (a_1 * cos(60°), a_1 * sin(60°))
A_4: O + (a_1 * cos(90°), a_1 * sin(90°))
A_5: O + (a_1 * cos(120°), a_1 * sin(120°))
A_6: O + (a_1 * cos(150°), a_1 * sin(150°))
A_7: O + (a_1 * cos(180°), a_1 * sin(180°))
A_8: O + (a_1 * cos(210°), a_1 * sin(210°))
A_9: O + (a_1 * cos(240°), a_1 * sin(240°))
A_{10}: O + (a_1 * cos(270°), a_1 * sin(270°))
A_{11}: O + (a_1 * cos(300°), a_1 * sin(300°))
A_{12}: O + (a_1 * cos(330°), a_1 * sin(330°))
a_2: 0.3 * Segment[O_1, A']
B_2: O_1 + (a_1 * r * cos(30°), a_1 * r * sin(30°))
B_1: O_1 + (a_1 * r * cos(0°), a_1 * r * sin(0°))
B_3: O_1 + (a_1 * r * cos(60°), a_1 * r * sin(60°))
B_4: O_1 + (a_1 * r * cos(90°), a_1 * r * sin(90°))
B_5: O_1 + (a_1 * r * cos(120°), a_1 * r * sin(120°))
B_6: O_1 + (a_1 * r * cos(150°), a_1 * r * sin(150°))
B_7: O_1 + (a_1 * r * cos(180°), a_1 * r * sin(180°))
B_8: O_1 + (a_1 * r * cos(210°), a_1 * r * sin(210°))
B_9: O_1 + (a_1 * r * cos(240°), a_1 * r * sin(240°))
B_{10}: O_1 + (a_1 * r * cos(270°), a_1 * r * sin(270°))
B_{11}: O_1 + (a_1 * r * cos(300°), a_1 * r * sin(300°))
B_{12}: O_1 + (a_1 * r * cos(330°), a_1 * r * sin(330°))
p = Line(A_4, O)
b_1 = Line(A_5, O)
c_{10} = Line(A_6, O)
e_{10} = Line(A_7, O)
f_{10} = Line(A_8, O)
g_1 = Line(A_9, O)
D_4 = Intersect(p, d)
D_5 = Intersect(b_1, d)
D_6 = Intersect(c_{10}, e)
D_7 = Intersect(e, e_{10})
D_8 = Intersect(f_{10}, e)
D_9 = Intersect(g_1, b)
D_{11} = Intersect(b_1, b)
D_{12} = Intersect(c_{10}, c)
D_2 = Intersect(f_{10}, c)
D_3 = Intersect(g_1, d)
D_{10} = Intersect(p, b)
h_1 = Line(B_4, B_{10})
i_1 = Line(B_9, B_3)
j_1 = Line(B_8, B_2)
k_1 = Line(B_7, B_1)
l_1 = Line(B_6, B_{12})
m_1 = Line(B_5, B_{11})
E_4 = Intersect(h_1, i)
E_5 = Intersect(m_1, i)
E_6 = Intersect(f, l_1)
E_7 = Intersect(k_1, f)
E_8 = Intersect(j_1, f)
E_9 = Intersect(i_1, g)
E_{10} = Intersect(h_1, g)
E_{11} = Intersect(g, m_1)
E_{12} = Intersect(l_1, j)
E_1 = Intersect(k_1, j)
E_2 = Intersect(j_1, j)
E_3 = Intersect(i_1, i)
C_1: O_2 + (h * a_1 * cos(0°), k * a_1 * sin(0°))
C_2: O_2 + (h * a_1 * cos(30°), k * a_1 * sin(30°))
C_3: O_2 + (a_1 * h * cos(60°), a_1 * k * sin(60°))
C_4: O_2 + (h * a_1 * cos(90°), k * a_1 * sin(90°))
C_5: O_2 + (h * a_1 * cos(120°), k * a_1 * sin(120°))
C_6: O_2 + (h * a_1 * cos(150°), k * a_1 * sin(150°))
C_7: O_2 + (h * a_1 * cos(180°), k * a_1 * sin(180°))
C_8: O_2 + (h * a_1 * cos(210°), k * a_1 * sin(210°))
C_9: O_2 + (h * a_1 * cos(240°), k * a_1 * sin(240°))
C_{10}: O_2 + (h * a_1 * cos(270°), k * a_1 * sin(270°))
C_{11}: O_2 + (h * a_1 * cos(300°), k * a_1 * sin(300°))
C_{12}: O_2 + (h * a_1 * cos(330°), k * a_1 * sin(330°))
Γ: (x - x(O_2))^(2) / (h * a_1)^(2) + (y - y(O_2))^(2) / (k * a_1)^(2) = 1
n_1 = Line(C_4, C_{10})
p_1 = Line(C_5, C_{11})
q_1 = Line(C_6, C_{12})
r_1 = Line(C_7, C_1)
s_1 = Line(C_2, C_8)
t_1 = Line(C_3, C_9)
F_4 = Intersect(q, n_1)
F_5 = Intersect(p_1, q)
F_6 = Intersect(q_1, m)
F_7 = Intersect(r_1, m)
F_8 = Intersect(s_1, m)
F_9 = Intersect(t_1, n)
F_{10} = Intersect(n_1, n)
F_{11} = Intersect(p_1, n)
F_{12} = Intersect(q_1, s)
F_1 = Intersect(r_1, s)
F_2 = Intersect(s_1, s)
F_3 = Intersect(t_1, q)
b_2 = Line(O, D_7)
D_1 = Intersect(b_2, c)
c_1 = Segment(D_4, A_4)
c_3 = Segment(F_4, C_4)
c_2 = Segment(E_4, B_4)
c_4 = Segment(D_3, A_3)
c_6 = Segment(F_3, C_3)
c_5 = Segment(E_3, B_3)
c_7 = Segment(A_2, D_2)
c_9 = Segment(C_2, F_2)
c_8 = Segment(B_2, E_2)
d_1 = Segment(A_1, D_1)
d_3 = Segment(C_1, F_1)
d_2 = Segment(B_1, E_1)
d_4 = Segment(D_{12}, A_{12})
d_6 = Segment(C_{12}, F_{12})
d_5 = Segment(B_{12}, E_{12})
e_1 = Segment(A_{10}, D_{10})
d_7 = Segment(D_{11}, A_{11})
d_9 = Segment(C_{11}, F_{11})
d_8 = Segment(B_{11}, E_{11})
e_2 = Segment(B_{10}, E_{10})
e_5 = Segment(B_9, E_9)
e_8 = Segment(B_8, E_8)
f_2 = Segment(B_7, E_7)
f_5 = Segment(B_6, E_6)
f_8 = Segment(B_5, E_5)
f_9 = Segment(F_5, C_5)
f_6 = Segment(F_6, C_6)
f_3 = Segment(C_7, F_7)
e_9 = Segment(F_8, C_8)
e_6 = Segment(C_9, F_9)
e_3 = Segment(C_{10}, F_{10})
e_4 = Segment(A_9, D_9)
e_7 = Segment(A_8, D_8)
f_1 = Segment(A_7, D_7)
f_4 = Segment(A_6, D_6)
f_7 = Segment(A_5, D_5)
C_b = Circle(O_1, 0.3 * r * Segment[O, A])