Centrar

Rotar cierto ángulo

Reflejar en la otra dirección

Reflejar en la horizontal

Celda primitiva

Aplicar simetrías

Azulejo

Vectores de traslación

Centros de rotación

Ejes de reflexión

Copiar parte del mosaico

Dibujo libre

Rastro

Color manual

centrar = false
xT = 8.94 (slider from 1.72 to 20, step 0.1)
yT = 0.26
TT0: (xT, yT)
A = (6.8, -0.88)
A0 = (-3.24, 2.2)
xF = 1.04 (slider from -0.16 to 1.04, step 0.01)
yF = 4.474 (slider from 4.474 to 5.88, step 0.01)
F: (xF, yF)
CRot: (F + A0) / 2
CRot': CRot + A - A0
k = 3 (slider from 0 to 20, step 1)
B0 = Point(Segment[A0 + (2, 0), A0 + (5, 0)])
J: F + A0 - B0
B: A + B0 - A0
C: A + J - A0
xP = 10.6 (slider from 2.26 to 20, step 0.01)
yP = 0.9400000000000001
P: Corner[pincel, 1] + (0.05, 0)
yT1 = -0.3
xT1 = 5.8 (slider from 1.72 to 20, step 0.1)
T1: (xT1, yT1)
a = Line(A, C)
yR = 1.74
xR = 9.74 (slider from 2.3 to 20, step 0.1)
T = If(centrar, CRot', TT0)
R0: (xR, yR)
R: R0 - (0.78, 1.47)
rota = false
fi = 1.618033988749895
E = (-2.58, -2.3000000000000003)
d = Circle(E, 1 / fi)
G = Point(d)
β0 = Angle(E + (0.5, 0), E, G)
β = If(rota, round(β0), 0°)
reflejoD = false
reflejoH = false
motivo = true
isometrías = false
patrón = true
vectores = false
rotación = false
reflexión = false
copia = false
libre = false
rastro = false
manual = false
A1 = 1
A2 = 2
xGoma = -0.9 (slider from -1.4 to -0.9, step 0.01)
yGoma = -1.78 (slider from -2 to -1.7, step 0.01)
rojoM = 70 (slider from 0 to 100, step 1)
verdeM = 54 (slider from 0 to 100, step 1)
azulM = 22 (slider from 0 to 100, step 1)
H = (0.2, -4.88)
α = Angle(B0, A0, J)
rAB = Line(A, B)
rAC = Line(A, C)
patron: {Polygon[B, A, C, C + B - A]}
b = Line(A, B)
py = Line(P, b)
Py = Intersect(a, py)
px = Line(P, a)
listaP = Sequence(Sequence[P + (s * (B - A)) - (t * (C - A)), s, (-k), k], t, (-k), k)
Px = Intersect(b, px)
PuntoGoma: (xGoma, yGoma)
A3: (2 * A2) - A1
A4: (2 * A3) - A2
A5: (2 * A4) - A3
A6: (2 * A5) - A4
A7: (2 * A6) - A5
A8: (2 * A7) - A6
A9: (2 * A8) - A7
A10: (2 * A9) - A8
A11: (2 * A10) - A9
A12: (2 * A11) - A10
A13: (2 * A12) - A11
A14: (2 * A13) - A12
A15: (2 * A14) - A13
A16: (2 * A15) - A14
A17: (2 * A16) - A15
A18: (2 * A17) - A16
A19: (2 * A18) - A17
A20: (2 * A19) - A18
A21: (2 * A20) - A19
A22: (2 * A21) - A20
A23: (2 * A22) - A21
A24: (2 * A23) - A22
A25: (2 * A24) - A23
A26: (2 * A25) - A24
A27: (2 * A26) - A25
A28: (2 * A27) - A26
A29: (2 * A28) - A27
A30: (2 * A29) - A28
A31: (2 * A30) - A29
A32: (2 * A31) - A30
A33: (2 * A32) - A31
A34: (2 * A33) - A32
A35: (2 * A34) - A33
A36: (2 * A35) - A34
A37: (2 * A36) - A35
A38: (2 * A37) - A36
A39: (2 * A38) - A37
A40: (2 * A39) - A38
A41: (2 * A40) - A39
A42: (2 * A41) - A40
A43: (2 * A42) - A41
A44: (2 * A43) - A42
A45: (2 * A44) - A43
A46: (2 * A45) - A44
A47: (2 * A46) - A45
A48: (2 * A47) - A46
B1 = Element(Element[listaP, 1 + Div[A1, (2 * k) + 1]], 1 + Mod[A1, (2 * k) + 1])
B2 = Element(Element[listaP, 1 + Div[A2, (2 * k) + 1]], 1 + Mod[A2, (2 * k) + 1])
B3 = Element(Element[listaP, 1 + Div[A3, (2 * k) + 1]], 1 + Mod[A3, (2 * k) + 1])
B4 = Element(Element[listaP, 1 + Div[A4, (2 * k) + 1]], 1 + Mod[A4, (2 * k) + 1])
B6 = Element(Element[listaP, 1 + Div[A6, (2 * k) + 1]], 1 + Mod[A6, (2 * k) + 1])
B5 = Element(Element[listaP, 1 + Div[A5, (2 * k) + 1]], 1 + Mod[A5, (2 * k) + 1])
B7 = Element(Element[listaP, 1 + Div[A7, (2 * k) + 1]], 1 + Mod[A7, (2 * k) + 1])
B8 = Element(Element[listaP, 1 + Div[A8, (2 * k) + 1]], 1 + Mod[A8, (2 * k) + 1])
B9 = Element(Element[listaP, 1 + Div[A9, (2 * k) + 1]], 1 + Mod[A9, (2 * k) + 1])
B10 = Element(Element[listaP, 1 + Div[A10, (2 * k) + 1]], 1 + Mod[A10, (2 * k) + 1])
B11 = Element(Element[listaP, 1 + Div[A11, (2 * k) + 1]], 1 + Mod[A11, (2 * k) + 1])
B12 = Element(Element[listaP, 1 + Div[A12, (2 * k) + 1]], 1 + Mod[A12, (2 * k) + 1])
B13 = Element(Element[listaP, 1 + Div[A13, (2 * k) + 1]], 1 + Mod[A13, (2 * k) + 1])
B14 = Element(Element[listaP, 1 + Div[A14, (2 * k) + 1]], 1 + Mod[A14, (2 * k) + 1])
B15 = Element(Element[listaP, 1 + Div[A15, (2 * k) + 1]], 1 + Mod[A15, (2 * k) + 1])
B16 = Element(Element[listaP, 1 + Div[A16, (2 * k) + 1]], 1 + Mod[A16, (2 * k) + 1])
B17 = Element(Element[listaP, 1 + Div[A17, (2 * k) + 1]], 1 + Mod[A17, (2 * k) + 1])
B18 = Element(Element[listaP, 1 + Div[A18, (2 * k) + 1]], 1 + Mod[A18, (2 * k) + 1])
B19 = Element(Element[listaP, 1 + Div[A19, (2 * k) + 1]], 1 + Mod[A19, (2 * k) + 1])
B20 = Element(Element[listaP, 1 + Div[A20, (2 * k) + 1]], 1 + Mod[A20, (2 * k) + 1])
B21 = Element(Element[listaP, 1 + Div[A21, (2 * k) + 1]], 1 + Mod[A21, (2 * k) + 1])
B22 = Element(Element[listaP, 1 + Div[A22, (2 * k) + 1]], 1 + Mod[A22, (2 * k) + 1])
B23 = Element(Element[listaP, 1 + Div[A23, (2 * k) + 1]], 1 + Mod[A23, (2 * k) + 1])
B24 = Element(Element[listaP, 1 + Div[A24, (2 * k) + 1]], 1 + Mod[A24, (2 * k) + 1])
B25 = Element(Element[listaP, 1 + Div[A25, (2 * k) + 1]], 1 + Mod[A25, (2 * k) + 1])
B26 = Element(Element[listaP, 1 + Div[A26, (2 * k) + 1]], 1 + Mod[A26, (2 * k) + 1])
B27 = Element(Element[listaP, 1 + Div[A27, (2 * k) + 1]], 1 + Mod[A27, (2 * k) + 1])
B28 = Element(Element[listaP, 1 + Div[A28, (2 * k) + 1]], 1 + Mod[A28, (2 * k) + 1])
B29 = Element(Element[listaP, 1 + Div[A29, (2 * k) + 1]], 1 + Mod[A29, (2 * k) + 1])
B30 = Element(Element[listaP, 1 + Div[A30, (2 * k) + 1]], 1 + Mod[A30, (2 * k) + 1])
B31 = Element(Element[listaP, 1 + Div[A31, (2 * k) + 1]], 1 + Mod[A31, (2 * k) + 1])
B32 = Element(Element[listaP, 1 + Div[A32, (2 * k) + 1]], 1 + Mod[A32, (2 * k) + 1])
B33 = Element(Element[listaP, 1 + Div[A33, (2 * k) + 1]], 1 + Mod[A33, (2 * k) + 1])
B34 = Element(Element[listaP, 1 + Div[A34, (2 * k) + 1]], 1 + Mod[A34, (2 * k) + 1])
B35 = Element(Element[listaP, 1 + Div[A35, (2 * k) + 1]], 1 + Mod[A35, (2 * k) + 1])
B36 = Element(Element[listaP, 1 + Div[A36, (2 * k) + 1]], 1 + Mod[A36, (2 * k) + 1])
B37 = Element(Element[listaP, 1 + Div[A37, (2 * k) + 1]], 1 + Mod[A37, (2 * k) + 1])
B38 = Element(Element[listaP, 1 + Div[A38, (2 * k) + 1]], 1 + Mod[A38, (2 * k) + 1])
B39 = Element(Element[listaP, 1 + Div[A39, (2 * k) + 1]], 1 + Mod[A39, (2 * k) + 1])
B40 = Element(Element[listaP, 1 + Div[A40, (2 * k) + 1]], 1 + Mod[A40, (2 * k) + 1])
B41 = Element(Element[listaP, 1 + Div[A41, (2 * k) + 1]], 1 + Mod[A41, (2 * k) + 1])
B42 = Element(Element[listaP, 1 + Div[A42, (2 * k) + 1]], 1 + Mod[A42, (2 * k) + 1])
B43 = Element(Element[listaP, 1 + Div[A43, (2 * k) + 1]], 1 + Mod[A43, (2 * k) + 1])
B44 = Element(Element[listaP, 1 + Div[A44, (2 * k) + 1]], 1 + Mod[A44, (2 * k) + 1])
B45 = Element(Element[listaP, 1 + Div[A45, (2 * k) + 1]], 1 + Mod[A45, (2 * k) + 1])
B46 = Element(Element[listaP, 1 + Div[A46, (2 * k) + 1]], 1 + Mod[A46, (2 * k) + 1])
B47 = Element(Element[listaP, 1 + Div[A47, (2 * k) + 1]], 1 + Mod[A47, (2 * k) + 1])
B48 = Element(Element[listaP, 1 + Div[A48, (2 * k) + 1]], 1 + Mod[A48, (2 * k) + 1])
rectas1 = Sequence(Line[A + (s * (B - A)), A + (s * (B - A)) - (C - A)], s, (-k), k)
rectas2 = Sequence(Line[A - (s * (C - A)), A + B - A - (s * (C - A))], s, (-k), k)
rojoA: Distance[P, rAC] / Distance[B, rAC]
verdeA: Distance[P, rAB] / Distance[C, rAB]
azulA: Distance[P, B] / Distance[C, B]
rojo = If(manual, rojoM / 100, rojoA)
verde = If(manual, verdeM / 100, verdeA)
azul = If(manual, azulM / 100, azulA)
muestraColor: {Polygon[H, H + (1, 0), H + (1, fi), H + (0, fi)]}
texto1: "% Rojo = " + rojoM + "

% Verde = " + verdeM + "

% Azul = " + azulM
listaCisne = Sequence(Sequence[Translate[cisne, Vector[(s * (B - A)) - (t * (C - A))]], s, (-k), k], t, (-k), k)
test: (AffineRatio[A, B, Px] ≥ 0) ∧ (AffineRatio[A, B, Px] ≤ 1) ∧ (AffineRatio[A, C, Py] ≥ 0) ∧ (AffineRatio[A, C, Py] ≤ 1) ∧ libre ∧ rastro
celda, celdaa, celdab, celdac, celdad = Polygon(A0, B0, F, J)
texto2: "Ángulo rotado = " + β
D: (B + C) / 2
A'' = If(β > 0, Rotate[CRot', β, R], R)
u = Vector(A, B)
v = Vector(A, C)
w = Vector(CRot', T)
baseCopia: {Polygon[Rotate[A - u - v + w, β, R], Rotate[B + u - v + w, β, R], Rotate[C + (2 * u) + v + w, β, R], Rotate[C - u + v + w, β, R]]}
listaCisneC = Sequence(Sequence[Rotate[Translate[cisne, Vector[w + Vector[(s * (B - A)) - (t * (C - A))]]], β, R], s, -1, 1], t, -1, 1)
f = 7
c: {Distance[T1, rAC] / Distance[B, rAC], Distance[T1, rAB] / Distance[C, rAB], Distance[T1, B] / Distance[C, B]}
vectoresT1: {Vector[T1 - (B0 - A0) / 2, T1 + (B0 - A0) / 2], Vector[T1 + (B0 - A0) / 2, T1 - (B0 - A0) / 2], Vector[T1 - (F - B0) / 2, T1 + (F - B0) / 2], Vector[T1 + (F - B0) / 2, T1 - (F - B0) / 2]}
baseCopiaH: {Polygon[Mirror[Rotate[A - u - v + w, β, R], Line[T, T + (1, 0)]], Mirror[Rotate[B + u - v + w, β, R], Line[T, T + (1, 0)]], Mirror[Rotate[C + (2 * u) + v + w, β, R], Line[T, T + (1, 0)]], Mirror[Rotate[C - u + v + w, β, R], Line[T, T + (1, 0)]]]}
e = Segment(T - (3 * (B0 - A0) / 2), T + (3 * (B0 - A0) / 2))
listaCisneCH = Sequence(Sequence[Mirror[Translate[cisne, Vector[w + Vector[(s * (B - A)) - (t * (C - A))]]], Line[T, T + (1, 0)]], s, -1, 1], t, -1, 1)
cisne0 = Translate(cisne, Vector[A, A0])
PPP: (xP, yP)