Author: Rafael Losada Liste

X

Y

Z

Tetraedro:

Dodecaedro:

Icosaedro:

6 V

4 C

4 V

8 V

20 V

Ejes

Tetraedro

Tetraedro dual

Zoom

1

2

3

4

5

3

4

2

1

a = 0 rad (slider from 0 to 6.283185307179586, step 0.0017453292519943296)
O_0 = (16.06301374640323, -8.54149198046927)
C: O_0 + (0.0, 0.0)
d = Circle(C, 9.5)
e = OrthogonalLine(C, xAxis)
H = Intersect(d, e, 2.0)
I = Rotate(H, 324.0*°, C)
G = Rotate(I, -(a + 0.01°), C)
ang = Angle(G, C, H)
t: ang / (72.0°) - 0.5
t4 = If(t < 3.0, abs(sgn(t)) * (sgn(t) - 1.0) / -2.0, Min[t - 3.0, 1.0])
t3 = If(t < 2.0, 0.0, Min[t - 2.0, 1.0])
t2 = If(t < 1.0, abs(sgn(t)) * (sgn(t) - 1.0) / -2.0, Min[t - 1.0, 1.0])
t1: abs(sgn(t)) * Min[t, 1.0] * (sgn(t) + 1.0) / 2.0
L = 5
M = (0, 1)
O_r = (0, 0)
mira2 = Ellipse(O_r - (0.0, 0.95), O_r + (0.0, 0.95), 1.0)
B = Point(mira2)
mira1 = Ellipse(O_r - (0.95, 0.0), O_r + (0.95, 0.0), 1.0)
A = Point(mira1)
U = (1, 0)
V3 = punto3d(A, B, M, O_0, O_r, -1.0, 1.0, 1.0, U, L)
V1 = punto3d(A, B, M, O_0, O_r, 1.0, 1.0, -1.0, U, L)
V4 = punto3d(A, B, M, O_0, O_r, -1.0, -1.0, -1.0, U, L)
C4 = Baricentro1(V1, V4, V3)
V2 = punto3d(A, B, M, O_0, O_r, 1.0, -1.0, 1.0, U, L)
C2 = Baricentro1(V1, V2, V4)
S6 = Midpoint(C2, C4)
C1 = Baricentro1(V1, V2, V3)
S3 = Midpoint(C1, C4)
S4 = Midpoint(C1, C2)
S346 = Baricentro1(S4, S3, S6)
t5: abs(sgn(t)) * (2.0 * t - 5.0 * sgn(t) + 5.0) / 2.0
t6 = If(t5 < 4.0, 0.0, t5 - 4.0)
octV6' = Midpoint(V1, V4)
octV1' = Midpoint(V1, V2)
octV2' = Midpoint(V1, V3)
octV3' = Midpoint(V4, V3)
octV4' = Midpoint(V2, V4)
octV5' = Midpoint(V2, V3)
t5' = If(t < 0.0, t + 5.0, t)
t6': -2.0 * t5' + 11.0
D = (24.10184597053289, -2.4068098206312887)
t32 = If(t > 2.0, 2.0, 1.0)
t2' = If(t < 1.0, 0.0, If[t > 2.0, 3.0 - t, t - 1.0])
t31 = If(t > 2.0, (t2' - 1.0) / 2.0, 0.0)
Mira1, Mira2, Mira3, Mira4 = Intersect(mira1, mira2)
θ = Angle(M, O_r, B)
φ = Angle(U, O_r, A)
xx: L * sin(φ)
xy: L * (-cos(φ) * sin(θ))
xz = 0
yx: L * cos(φ)
yy: L * sin(φ) * sin(θ)
yz: L * cos(θ)
u = Vector(O_r, O_0)
Xr: (xx, xy)
Yr: (yx, yy)
Zr: (0.0, yz)
X0 = Translate(Xr, u)
Z0 = Translate(Zr, u)
Y0 = Translate(Yr, u)
v_1 = Vector(O_0, Z0)
w = Vector(O_0, Y0)
z = Vector(O_0, X0)
c = Circle(O_0, L)
a_1 = Line(O_0, Y0)
b = Line(O_0, yAxis)
g = Line(O_0, X0)
j = Line(Z0, O_0)
P1x = 0
P1y = 1
P1z = 1.618033988749895
P1r: (P1x * xx + P1y * yx, P1x * xy + P1y * yy + P1z * yz)
P1 = Translate(P1r, u)
k = Segment(Mira3, Mira2)
l = Segment((-1.0, 0.0), U)
m = Segment((0.0, -1.0), M)
verticesOcta = false
carasTetra = false
verticesTetra = false
verticesCubo = false
verticesDod = false
verEjes = false
verTetraedro = false
verTetraedro2 = false
ver1 = If(t1 > 0.0 ∧ t2 ≟ 0.0, true, false)
ver2 = If(t > 1.0 ∧ t ≤ 2.0, true, false)
ver3 = If(t3 > 0.0 ∧ t3 ≤ 1.0 ∧ t4 ≟ 0.0, true, false)
ver4 = If(t4 > 0.0 ∧ t6 ≟ 0.0, true, false)
ver5 = If(t6 > 0.0, true, false)
E = Intersect(d, e, 2.0)
F = Intersect(d, e, 1.0)
J = Rotate(H, 252.0*°, C)
K = Rotate(H, 108.0*°, C)
N = Rotate(H, 36.0*°, C)
O = Rotate(H, 210.0*°, C)
P = Rotate(H, 132.0*°, C)
Q = Rotate(H, 64.5*°, C)
R = Rotate(H, 277.0*°, C)
α = Angle(I, C, H)
β = Angle(J, C, H)
γ = Angle(H, C, K)
δ = Angle(H, C, N)
ε = Angle(O, C, H)
ζ = Angle(P, C, H)
η = Angle(Q, C, H)
ι = Angle(R, C, H)
h = OrthogonalLine(C, yAxis)
f = CircleArc(C, N, I)
p = CircleArc(C, I, N)
V1a: (1.0 - t1 / 2.0) * V1 + t1 / 2.0 * V4
V4a: (1.0 - t1 / 2.0) * V4 + t1 / 2.0 * V1
V1b: (1.0 - t1 / 2.0) * V1 + t1 / 2.0 * V3
V1c: (1.0 - t1 / 2.0) * V1 + t1 / 2.0 * V2
V4b: (1.0 - t1 / 2.0) * V4 + t1 / 2.0 * V2
V4c: (1.0 - t1 / 2.0) * V4 + t1 / 2.0 * V3
V3a: (1.0 - t1 / 2.0) * V3 + t1 / 2.0 * V4
V3b: (1.0 - t1 / 2.0) * V3 + t1 / 2.0 * V1
V3c: (1.0 - t1 / 2.0) * V3 + t1 / 2.0 * V2
V2a: (1.0 - t1 / 2.0) * V2 + t1 / 2.0 * V4
V2b: (1.0 - t1 / 2.0) * V2 + t1 / 2.0 * V3
V2c: (1.0 - t1 / 2.0) * V2 + t1 / 2.0 * V1
H4 = Baricentro(V2c, V2b, V3c, V3b, V1b, V1c)
A1 = Midpoint(V2, V3)
H1 = Baricentro(V2a, V2c, V1c, V1a, V4a, V4b)
H2 = Baricentro(V3a, V3c, V2b, V2a, V4b, V4c)
H3 = Baricentro(V1a, V1b, V3b, V3a, V4c, V4a)
A2 = Midpoint(V1, V4)
A3 = Midpoint(V1, V2)
A4 = Midpoint(V1, V3)
A5 = Midpoint(V2, V4)
A6 = Midpoint(V4, V3)
B1 = Baricentro1(A2, A4, A3)
B2 = Baricentro1(A1, A3, A5)
B3 = Baricentro1(A4, A6, A1)
B4 = Baricentro1(A1, A3, A4)
B5 = Baricentro1(A5, A6, A1)
B6 = Baricentro1(A5, A6, A2)
B7 = Baricentro1(A3, A5, A2)
B8 = Baricentro1(A6, A4, A2)
B4a: (1.0 - t2) * A1 + t2 * B4
B4b: (1.0 - t2) * A3 + t2 * B4
B4c: (1.0 - t2) * A4 + t2 * B4
B5a: (1.0 - t2) * A1 + t2 * B5
B5b: (1.0 - t2) * A5 + t2 * B5
B5c: (1.0 - t2) * A6 + t2 * B5
B7a: (1.0 - t2) * A2 + t2 * B7
B7b: (1.0 - t2) * A3 + t2 * B7
B7c: (1.0 - t2) * A5 + t2 * B7
B8a: (1.0 - t2) * A2 + t2 * B8
B8b: (1.0 - t2) * A4 + t2 * B8
B8c: (1.0 - t2) * A6 + t2 * B8
HE1 = Baricentro(B8c, B5c, B5b, B7c, B7a, B8a)
HE2 = Baricentro(B4a, B5a, B5b, B7c, B7b, B4b)
HE3 = Baricentro(B7b, B4b, B4c, B8b, B8a, B7a)
HE4 = Baricentro(B8b, B8c, B5c, B5a, B4a, B4c)
C3 = Baricentro1(V2, V3, V4)
C1a: (1.0 - t3 / 2.0) * C2 + t3 / 2.0 * C1
C1b: (1.0 - t3 / 2.0) * C3 + t3 / 2.0 * C1
C1c: (1.0 - t3 / 2.0) * C4 + t3 / 2.0 * C1
C2a: (1.0 - t3 / 2.0) * C1 + t3 / 2.0 * C2
C2b: (1.0 - t3 / 2.0) * C3 + t3 / 2.0 * C2
C2c: (1.0 - t3 / 2.0) * C4 + t3 / 2.0 * C2
C3a: (1.0 - t3 / 2.0) * C1 + t3 / 2.0 * C3
C3b: (1.0 - t3 / 2.0) * C2 + t3 / 2.0 * C3
C3c: (1.0 - t3 / 2.0) * C4 + t3 / 2.0 * C3
C4a: (1.0 - t3 / 2.0) * C1 + t3 / 2.0 * C4
C4b: (1.0 - t3 / 2.0) * C2 + t3 / 2.0 * C4
C4c: (1.0 - t3 / 2.0) * C3 + t3 / 2.0 * C4
HEX1 = Baricentro(C1c, C3c, C4c, C1b, C3a, C4a)
HEX2 = Baricentro(C2a, C4a, C1c, C2c, C4b, C3b)
HEX3 = Baricentro(C1a, C3b, C2a, C2b, C3a, C1b)
HEX4 = Baricentro(C4c, C2b, C3c, C2c, C4b, C3b)
S1 = Midpoint(C1, C3)
S2 = Midpoint(C3, C4)
S5 = Midpoint(C2, C3)
S145 = Baricentro1(S5, S1, S4)
S256 = Baricentro1(S5, S2, S6)
S123 = Baricentro1(S1, S2, S3)
P1a: (1.0 - t4) * S1 + t4 * S123
P1b: (1.0 - t4) * S2 + t4 * S123
P1c: (1.0 - t4) * S3 + t4 * S123
P2a: (1.0 - t4) * S1 + t4 * S145
P2b: (1.0 - t4) * S4 + t4 * S145
P2c: (1.0 - t4) * S5 + t4 * S145
P3a: (1.0 - t4) * S3 + t4 * S346
P3b: (1.0 - t4) * S4 + t4 * S346
P3c: (1.0 - t4) * S6 + t4 * S346
P4a: (1.0 - t4) * S2 + t4 * S256
P4b: (1.0 - t4) * S5 + t4 * S256
P4c: (1.0 - t4) * S6 + t4 * S256
HEXA1 = Baricentro(P2b, P2a, P1a, P1c, P3a, P3b)
HEXA2 = Baricentro(P4c, P3c, P3b, P2b, P2c, P4b)
HEXA3 = Baricentro(P4a, P1b, P1c, P3a, P3c, P4c)
HEXA4 = Baricentro(P4b, P4a, P1b, P1a, P2a, P2c)
Q1: (1.0 - t6) * S346 + t6 * V1
Q2: (1.0 - t6) * S145 + t6 * V2
Q3: (1.0 - t6) * S123 + t6 * V3
Q4: (1.0 - t6) * S256 + t6 * V4
angH1 = Angle(V4a, H1, V1a)
angH2 = Angle(V4b, H2, V2a)
angH3 = Angle(V3b, H3, V1b)
angH4 = Angle(V1b, H4, V3b)
angV1 = Angle(V1a, V1c, V1b)
angV2 = Angle(V2c, V2a, V2b)
angV3 = Angle(V3c, V3a, V3b)
angV4 = Angle(V4a, V4c, V4b)
angTR1 = Angle(B4c, B4b, B4a)
angTR2 = Angle(B7a, B7c, B7b)
angTR3 = Angle(B8c, B8a, B8b)
angTR4 = Angle(B5a, B5b, B5c)
angHE1 = Angle(B7a, HE1, B7c)
angHE2 = Angle(B4b, HE2, B4a)
angHE3 = Angle(B4c, HE3, B4b)
angHE4 = Angle(B8c, HE4, B5c)
angHEX1 = Angle(C3c, HEX1, C4c)
angHEX2 = Angle(C4b, HEX2, C2c)
angHEX3 = Angle(C1a, HEX3, C2a)
angHEX4 = Angle(C2c, HEX4, C4b)
angTRI1 = Angle(C4a, C2a, C3a)
angTRI2 = Angle(C4b, C3b, C1a)
angTRI3 = Angle(C2c, C1c, C3c)
angTRI4 = Angle(C2b, C4c, C1b)
angHEXA1 = Angle(P3b, HEXA1, P3a)
angHEXA2 = Angle(P2b, HEXA2, P2c)
angHEXA3 = Angle(P1b, HEXA3, P1c)
angHEXA4 = Angle(P1a, HEXA4, P1b)
angTRIA1 = Angle(P2b, P2c, P2a)
angTRIA2 = Angle(P1b, P1c, P1a)
angTRIA3 = Angle(P3a, P3c, P3b)
angTRIA4 = Angle(P4a, P4b, P4c)
angPL1 = Angle(Q2, Q1, Q4)
angPL2 = Angle(Q3, Q1, Q2)
angPL3 = Angle(Q3, Q4, Q1)
angPL4 = Angle(Q2, Q4, Q3)
v34' = Segment(V4, V3)
v12' = Segment(V2, V1)
v13' = Segment(V1, V3)
v14' = Segment(V4, V1)
v24' = Segment(V2, V4)
v23' = Segment(V2, V3)
he1, tr3he1', he14', tr4he1', he12', tr2he1', he13' = Polygon(B8a, B8c, B5c, B5b, B7c, B7a)
he2, he24, tr4he2', he12, tr2he2', he23, tr1he2' = Polygon(B4a, B5a, B5b, B7c, B7b, B4b)
he3, he13, tr3he3', he34', tr1he3', he23', tr2he3' = Polygon(B7a, B8a, B8b, B4c, B4b, B7b)
he4, tr3he4', he14, tr4he4', he24', tr1he4', he34 = Polygon(B8b, B8c, B5c, B5a, B4a, B4c)
tri1, tri1hex3, tri1hex1, tri1hex2 = Polygon(C2a, C3a, C4a)
tri2, tri2hex3, tri2hex2, tri2hex4 = Polygon(C3b, C1a, C4b)
tri3, tri3hex2, tri3hex1, tri3hex4 = Polygon(C2c, C1c, C3c)
tri4, tri4hex3, tri4hex1, tri4hex4 = Polygon(C2b, C1b, C4c)
hex1, tri3hex1', hex14', tri4hex1', hex13', tri1hex1', hex12' = Polygon(C1c, C3c, C4c, C1b, C3a, C4a)
hex2, hex23, tri2hex2', hex24', tri3hex2', hex12, tri1hex2' = Polygon(C2a, C1a, C4b, C2c, C1c, C4a)
hex3, hex13, tri1hex3', hex23', tri2hex3', hex34', tri4hex3' = Polygon(C1b, C3a, C2a, C1a, C3b, C2b)
hex4, hex34, tri2hex4', hex24, tri3hex4', hex14, tri4hex4' = Polygon(C2b, C3b, C4b, C2c, C3c, C4c)
tria1, tria11, tria14, tria12 = Polygon(P2b, P2a, P2c)
tria2, tria21, tria24, tria23 = Polygon(P1c, P1a, P1b)
tria3, tria32, tria33, tria31 = Polygon(P3b, P3c, P3a)
tria4, tria42, tria44, tria43 = Polygon(P4c, P4b, P4a)
hexa1, tria21', hexa13, tria31', hexa12, tria11', hexa14 = Polygon(P1a, P1c, P3a, P3b, P2b, P2a)
hexa2, hexa23, tria42', hexa24, tria12', hexa12', tria32' = Polygon(P3c, P4c, P4b, P2c, P2b, P3b)
hexa3, tria33', hexa13', tria23', hexa34', tria43', hexa23' = Polygon(P3c, P3a, P1c, P1b, P4a, P4c)
hexa4, tria44', hexa24', tria14', hexa14', tria24', hexa34 = Polygon(P4a, P4b, P2c, P2a, P1a, P1b)
poly1, q14, q13, q12 = Polygon(Q2, Q4, Q1)
poly2, q24, q23, q12' = Polygon(Q2, Q3, Q1)
poly3, q34, q23', q13' = Polygon(Q4, Q3, Q1)
poly4, q24', q34', q14' = Polygon(Q2, Q3, Q4)
v12 = Segment(V2, V1)
v13 = Segment(V1, V3)
v14 = Segment(V4, V1)
v23 = Segment(V2, V3)
v24 = Segment(V2, V4)
v34 = Segment(V4, V3)
h1, a14, a1t2', a12, a1t4', a13, a1t1' = Polygon(V1c, V2c, V2a, V4b, V4a, V1a)
h2, a2t2', a24, a2t3', a23, a2t4', a12' = Polygon(V2a, V2b, V3c, V3a, V4c, V4b)
h3, a43, a3t3', a23', a3t4', a13', a3t1' = Polygon(V1b, V3b, V3a, V4c, V4a, V1a)
h4, a4t2', a24', a4t3', a43', a4t1', a14' = Polygon(V2c, V2b, V3c, V3b, V1b, V1c)
t02, a1t2, a2t2, a4t2 = Polygon(V2c, V2a, V2b)
t01, a3t1, a4t1, a1t1 = Polygon(V1a, V1b, V1c)
t04, a1t4, a2t4, a3t4 = Polygon(V4a, V4b, V4c)
t03, a3t3, a4t3, a2t3 = Polygon(V3a, V3b, V3c)
tr1, tr1he2, tr1he4, tr1he3 = Polygon(B4b, B4a, B4c)
t4', tr4he2, tr4he4, tr4he1 = Polygon(B5b, B5a, B5c)
tr2, tr2he2, tr2he1, tr2he3 = Polygon(B7b, B7c, B7a)
tr3, tr3he1, tr3he4, tr3he3 = Polygon(B8a, B8c, B8b)
i = Segment(B5, B7)
n = Segment(B5, B8)
q = Segment(B5, B4)
r = Segment(B7, B4)
s = Segment(B4, B8)
a1 = Segment(B8, B7)
ang1 = Angle(V2, V1, V4)
ang2 = Angle(V2, V3, V1)
ang3 = Angle(V4, V1, V3)
ang4 = Angle(V2, V4, V3)
κ = Angle(H, O_0, G)
v = 5 (slider from 1 to 10, step 1)
nada = 3.2 (slider from -5 to 5, step 0.1)

Tool: punto3d
clic en A, B, M, O, Or, las 3 coords,U y escala (teclear "e")
Input: A, B, M, O, O_r, P1_x, P1_y, P1_z, U, escala
Output: P1

c = Circle(O_r, 1.0)
d = Circle(O_r, 0.5)
θ = Angle(M, O_r, B)
φ = Angle(U, O_r, A)
y_z: escala * cos(θ)
u = Vector(O_r, O)
x_x: escala * sin(φ)
x_y: escala * (-cos(φ) * sin(θ))
y_x: escala * cos(φ)
y_y: escala * sin(φ) * sin(θ)
P1_r: (P1_x * x_x + P1_y * y_x, P1_x * x_y + P1_y * y_y + P1_z * y_z)
P1 = Translate(P1_r, u)

Tool: Baricentro
Baricentro[A,B,C,D,E,F]
Input: A, B, C, D, E, F
Output: G

G: (A + B + C + D + E + F) / 6.0

Tool: Baricentro (command Baricentro1)
Baricentro[A,B,C]
Input: A, B, C
Output: D

D: (A + B + C) / 3.0