Plantilla 3D
Author: Rafael Losada Liste

Desarrolla

C = (-8.8, 6.22)
zz1 = OrthogonalLine(C, yAxis)
zz0 = Circle(C, 0.62)
ZZ1 = Intersect(zz0, zz1, 1.0)
ZZ2 = Intersect(zz0, zz1, 2.0)
zElipse1 = Ellipse(ZZ1, ZZ2, 0.65)
XY = Point(zElipse1)
zz2 = OrthogonalLine(C, xAxis)
ZZ3 = Intersect(zz0, zz2, 2.0)
ZZ4 = Intersect(zz0, zz2, 1.0)
ZZ5, ZZ6 = Intersect(zElipse1, zz1)
zElipse2 = Ellipse(ZZ3, ZZ4, 0.65)
zPunto1 = Intersect(zElipse2, zElipse1, 1.0)
zPunto2 = Intersect(zElipse2, zElipse1, 4.0)
zSeg2 = Segment(zPunto1, zPunto2)
ZZ7, ZZ8 = Intersect(zElipse2, zz2)
zz3 = Segment(ZZ7, ZZ8)
zz4 = Segment(ZZ5, ZZ6)
Z = Point(zElipse2)
escala = 1.9 (slider from 1.9 to 3.4, step 0.01)
G100 = Punto3D(C, XY, Z, {escala, -(escala), -(escala)})
G000 = Punto3D(C, XY, Z, {-(escala), -(escala), -(escala)})
a1 = Segment(G100, G000)
A1 = Point(a1)
a: 2.0 * escala
G010 = Punto3D(C, XY, Z, {-(escala), escala, -(escala)})
G001 = Punto3D(C, XY, Z, {-(escala), -(escala), escala})
G110 = Punto3D(C, XY, Z, {escala, escala, -(escala)})
G101 = Punto3D(C, XY, Z, {escala, -(escala), escala})
G011 = Punto3D(C, XY, Z, {-(escala), escala, escala})
G111 = Punto3D(C, XY, Z, {escala, escala, escala})
r = AffineRatio(G000, G100, A1)
A2: G000 + r * (G010 - G000)
A3: G000 + r * (G001 - G000)
A4: A1 + A3 - G000
A5: A2 + A3 - G000
A7: A1 + A2 - G000
A8: A7 + A3 - G000
polígono1: {Polygon[A3, A5, A8, A4]}
polígono2: {Polygon[G000, A3, A4, A1]}
polígono3: {Polygon[A4, A8, A7, A1]}
b: 10.0 * AffineRatio[G000, G100, A1]
b': round(100.0 * b) / 100.0
b3 = Segment(A3, A4)
b4 = Segment(A4, A1)
b5 = Segment(A4, A8)
b6 = Segment(A5, A8)
b7 = Segment(A8, A7)
t = 0 (slider from 0 to 2, step 0.01)
x0: escala * r * t
y0: escala * r * sqrt(4.0 - t^(2.0))
A4a = Punto3D(C, XY, Z, {-(escala) + 2.0 * escala * r + x0, -(escala), -(escala) + y0})
A8a = Punto3D(C, XY, Z, {-(escala) + 2.0 * escala * r + x0, -(escala) + 2.0 * escala * r, -(escala) + y0})
A3a = Punto3D(C, XY, Z, {-(escala) - x0, -(escala), -(escala) + y0})
A5a = Punto3D(C, XY, Z, {-(escala) - x0, -(escala) + 2.0 * escala * r, -(escala) + y0})
A3b = Punto3D(C, XY, Z, {-(escala), -(escala) - x0, -(escala) + y0})
A4b = Punto3D(C, XY, Z, {-(escala) + 2.0 * escala * r, -(escala) - x0, -(escala) + y0})
A8b = Punto3D(C, XY, Z, {-(escala) + 2.0 * escala * r, -(escala) + 2.0 * escala * r + x0, -(escala) + y0})
A5b = Punto3D(C, XY, Z, {-(escala), -(escala) + 2.0 * escala * r + x0, -(escala) + y0})
x1: 2.0 * escala * r * t
y1: escala * r * sqrt(8.0 * t - 4.0 * t^(2.0))
A4c = Punto3D(C, XY, Z, {-(escala) + 2.0 * escala * r, -(escala) + x0 + x1, -(escala) + y0 + y1})
A3c = Punto3D(C, XY, Z, {-(escala), -(escala) + x0 + x1, -(escala) + y0 + y1})
polígono4: {Polygon[G000, A3b, A4b, A1]}
polígono5: {Polygon[A1, A4a, A8a, A7]}
polígono6: {Polygon[A7, A8b, A5b, A2]}
polígono7: {Polygon[A8b, A4c, A3c, A5b]}
polígono8: {Polygon[A1, A7, A2, G000]}
polígono9: {Polygon[A2, A5a, A3a, G000]}
c = OrthogonalLine(A, yAxis)
lista6 = Sequence(Segment[A1 + s * (G110 - G100), A4a + s * (G110 - G100)], s, 0.1, b' / 10.0, 0.1)
xG0: escala * t
xG1: 2.0 * escala * t
yG0: escala * sqrt(4.0 - t^(2.0))
yG1: escala * sqrt(8.0 * t - 4.0 * t^(2.0))
A3Ga = Punto3D(C, XY, Z, {-(escala) - xG0, -(escala), -(escala) + yG0})
A3Gb = Punto3D(C, XY, Z, {-(escala), -(escala) - xG0, -(escala) + yG0})
A3Gc = Punto3D(C, XY, Z, {-(escala), -(escala) + xG0 + xG1, -(escala) + yG0 + yG1})
A4Ga = Punto3D(C, XY, Z, {escala + xG0, -(escala), -(escala) + yG0})
A4Gb = Punto3D(C, XY, Z, {escala, -(escala) - xG0, -(escala) + yG0})
A4Gc = Punto3D(C, XY, Z, {escala, -(escala) + xG0 + xG1, -(escala) + yG0 + yG1})
A5Ga = Punto3D(C, XY, Z, {-(escala) - xG0, escala, -(escala) + yG0})
A5Gb = Punto3D(C, XY, Z, {-(escala), escala + xG0, -(escala) + yG0})
A8Ga = Punto3D(C, XY, Z, {escala + xG0, escala, -(escala) + yG0})
A8Gb = Punto3D(C, XY, Z, {escala, escala + xG0, -(escala) + yG0})
lista9 = Sequence(Segment[A1 + s * (A4Ga - G100), A7 + s * (A4Ga - G100)], s, 0.0, b' / 10.0, 0.1)
lista7 = Sequence(Segment[G000 + s * (A3Gb - G000), A1 + s * (A3Gb - G000)], s, 0.0, b' / 10.0, 0.1)
lista4 = Sequence(Segment[G000 + s * (G100 - G000), A3b + s * (G100 - G000)], s, 0.0, b' / 10.0, 0.1)
lista5 = Sequence(Segment[A3c + s * (G100 - G000), A5b + s * (G100 - G000)], s, 0.0, b' / 10.0, 0.1)
lista8 = Sequence(Segment[A3c + s * (A5Gb - A3Gc), A4c + s * (A5Gb - A3Gc)], s, 0.1, b' / 10.0, 0.1)
lista1 = Sequence(Segment[A2 + s * (G100 - G000), A5b + s * (G100 - G000)], s, 0.1, b' / 10.0, 0.1)
lista2 = Sequence(Segment[A2 + s * (A5Gb - G010), A7 + s * (A5Gb - G010)], s, 0.0, b' / 10.0, 0.1)
lista3 = Sequence(Segment[G000 + s * (A3Ga - G000), A2 + s * (A3Ga - G000)], s, 0.0, b' / 10.0, 0.1)
lista10 = Sequence(Segment[G000 + s * (G010 - G000), A3a + s * (G010 - G000)], s, 0.0, b' / 10.0, 0.1)
lista11 = Sequence(Segment[G000 + s * (G100 - G000), A2 + s * (G100 - G000)], s, 0.0, b' / 10.0, 0.1)
lista12 = Sequence(Segment[G000 + s * (G010 - G000), A1 + s * (G010 - G000)], s, 0.0, b' / 10.0, 0.1)
d = Segment(A5, A3)
e = Segment(A5, A2)
polígono10: {Polygon[A7, A2, A5, A8]}
f = Segment(A3, G000)
polígono11: {Polygon[G000, A2, A5, A3]}
B = Midpoint(A2, A3)
ang1 = Angle(A2, B, G000)
D = Midpoint(A8, A2)
ang2 = Angle(A7, D, A2)
polígono11f: {Polygon[G000, A2, A5, A3]}
polígono10f: {Polygon[A7, A2, A5, A8]}
E = Midpoint(A4, A7)
F = Midpoint(A4, G000)
ang3 = Angle(A1, E, A7)
ang4 = Angle(G000, F, A1)
polígono3f: {Polygon[A4, A8, A7, A1]}
polígono2f: {Polygon[G000, A3, A4, A1]}
g = Segment(A2, A5a)
h = Segment(A7, A8a)
i = Segment(A2, A5b)
j = Segment(A5a, A3a)
k = Segment(A7, A8b)
l = Segment(A8b, A4c)
m = Segment(A4c, A3c)
n = Segment(A8a, A4a)
p = Segment(A4a, A1)
q = Segment(A4b, A1)
s = Segment(A3b, A4b)
texto1: "Escala = " + (escala - 0.9)
texto2: "Arista = " + (10.0 * r)
a_1 = Segment(A2, A7)
b_1 = Segment(A7, A1)
c_1 = Segment(A3, G000)
d_1 = Segment(A4, A1)
e_1 = Segment(A8, A7)
f_1 = Segment(A5, A2)
g_1 = Segment(A2, G000)
h_1 = Segment(G000, A1)
i_1 = Segment(A3, G000)
j_1 = Segment(A7, A2)
k_1 = Segment(A7, A1)
l_1 = Segment(G000, A1)

Tool: Punto3D
[C,XY,Z,Lista 3D]
Input: C, XY, Z, A
Output: H'

z1 = OrthogonalLine(C, yAxis)
z0 = Circle(C, 0.62)
Z1 = Intersect(z0, z1, 1.0)
Z2 = Intersect(z0, z1, 2.0)
zElipse1 = Ellipse(Z1, Z2, 0.65)
Z5, Z6 = Intersect(zElipse1, z1)
z2 = OrthogonalLine(C, xAxis)
Z3 = Intersect(z0, z2, 2.0)
Z4 = Intersect(z0, z2, 1.0)
zElipse2 = Ellipse(Z3, Z4, 0.65)
Z7, Z8 = Intersect(zElipse2, z2)
zAngInc = Angle(Z8, C, Z)
zAngRot = Angle(Z6, C, XY)
A: {1.9, 1.9, 1.9}
H': (Element[A, 1.0] * sin(zAngRot) + Element[A, 2.0] * cos(zAngRot), -(Element[A, 1.0]) * cos(zAngRot) * sin(zAngInc) + Element[A, 2.0] * sin(zAngRot) * sin(zAngInc) + Element[A, 3.0] * cos(zAngInc))