Homotecia y perspectiva
Disponiblehomothety(objeto, O, k) dibuja la imagen de un punto, un segmento, una recta, una circunferencia, una elipse o una figura desde el centro O con razón k: con k = 2, al doble de distancia de O y del doble de tamaño; con k negativa, del otro lado de O. La razón también puede ser la que lleva un punto a otro: homothety(objeto, O, P, Q).
Imágenes vivas: al mover la figura, el centro o los puntos de la razón, la imagen se rehace.
/qf-dsl
V = point(4, 1)
T1 = point(-6, 3)
P1 = point(-6, 4.4)
B1 = point(-6, -4)
halo1 = circle(T1, P1)
poste1 = segment(B1, T1)
fila = segment(T1, V, dashed)
T2 = on_segment(fila, 0.4)
T3 = on_segment(fila, 0.68)
halo2 = homothety(halo1, V, T1, T2)
poste2 = homothety(poste1, V, T1, T2)
halo3 = homothety(halo1, V, T1, T3)
poste3 = homothety(poste1, V, T1, T3)
/qf-style
halo1, halo2, halo3 { relleno: radial(amarillo, blanco); borde: ninguno }
segmento { grosor: grueso }
fila { grosor: fino; color: gris }
punto { marcador: ninguno; rótulo: no }
V { marcador: cruz; rótulo: sí }Perspectiva de un punto: V es el punto de fuga, y T2 y T3, faroles más lejanos sobre la misma fila. Cada halo y cada poste es el del primero con la razón que lleva T1 a T2 (o a T3): arrastra T2 hacia V y su farol se achica solo.
/qf-dsl
O = point(-5, -1)
T = triangle(A, B, C)
T2 = homothety(T, O, 0.5)
rA = segment(O, A, dashed)
rB = segment(O, B, dashed)
rC = segment(O, C, dashed)A′B′C′ queda a la mitad de la distancia de O, sobre las rectas que van de O a cada vértice. Arrastra O: la imagen lo sigue.
En perspectiva de un punto, la homotecia desde el punto de fuga es exacta para lo que mira de frente: un halo, un farol, una ventana. Lo que está en el piso, como un charco de luz, se achata más con la distancia (a doble distancia, la mitad de ancho y cerca de un cuarto de alto), y la homotecia conserva su forma.