SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br

PyTikZ3D
Uma sociedade sera - sempre - avaliado
Pelo jeito que trata seus mais fracos.
Mahatma
Tetrahedron
Python Code:
Python Listing: ../TikZ_Examples/6_8.py.
import os,sys,math
from Matrix import *

O=Vector([0,0,0])

#Z axis upwards
i=Vector([1,0,0])
k=Vector([0,1,0])
j=Vector([0,0,1])

#Tetrahedron
size=5
A=-size*i 
B=0.5*size*(i+j+0.5*k)
C=-sqrt(2)*size*j
D=(1.75*size)*k


third=1.0/3.0
AA=third*(B+C+D)
BB=third*(A+C+D)
CC=third*(B+A+D)
DD=third*(B+C+A)

G=0.25*(A+B+C+D)

GD=1.0/3.0*(AA+BB+CC)


u=(B-A).Normalize()
v=(C-A).Normalize()
w=(D-A).Normalize()

t=0.5

MAB=Convex(A,B,t)
MAC=Convex(A,C,t)
MAD=Convex(A,D,t)

MBC=Convex(B,C,t)
MBD=Convex(B,D,t)
MCD=Convex(C,D,t)

t=2.0/3.0

PAD=Convex(D,A,t)
PBD=Convex(D,B,t)
PCD=Convex(D,C,t)

mytikz=TikZ()

tikz_base=[]

titles=[
    "A","B","C","D"
]

tikz_base+=mytikz.TikZ_Tetrahedron_Draw(
    [A,B,C,D],titles,[
        "left","right","below","above",
    ]
)

tikz_base+=mytikz.TikZ_Tetrahedron_Midpoints_Draw(
    [A,B,C,D],titles
)

tikz_base+=mytikz.TikZ_Tetrahedron_BaryCenters_Draw(
    [A,B,C,D],titles
)

#Start fig a
tikz=[]
tikz+=mytikz.TikZ_Points(
    [PAD,PBD,PCD],
    pts=1,
    style="",
    titles=["P_{AD}","P_{BD}","P_{CD}"],
    node_style=["left","right","right"]
)

tikz+=mytikz.TikZ_Polygon_Draw(
    [D,DD,MAC],
    draw="\\fill",
    style="magenta,opacity=0.25",
)
tikz+=mytikz.TikZ_Polygon_Draw(
    [A,D,MBC],
    draw="\\fill",
    style="orange,opacity=0.25",
)

tikz+=mytikz.TikZ_Polygon_Draw(
    [B,D,DD],
    draw="\\fill",
    style="magenta,opacity=0.25",
)

tikz+=mytikz.TikZ_Polygon_Draw(
    [A,D,DD],
    draw="\\fill",
    style="orange,opacity=0.25",
)

tikz+=mytikz.TikZ_Polygons_Draw(
    [
        [A,AA],
        [D,DD],
        [B,BB],
        [C,CC],
    ],
    styles="dashed",
)

triangle=TriConvexes(D,[A,B,C],2.0/3.0)

tikz+=mytikz.TikZ_Polygon_Draw(
    triangle,
    style="gray",
)

pdf=mytikz.TikZ_LaTeX_Save_Run(
    mytikz.TikZ_LaTeX_Picture(tikz_base+tikz),
    "6_8/a.pdf"
)



#Figure b
tikz=[]

triangle1=[MAB,MAC,MAD]
triangle2=[D,B,C]

MM=1.0/3.0*(MAB+MAC+MAD)

tikz+=mytikz.TikZ_Point(MM)


triangle3=TriConvexes(A,[B,C,D],0.25)
triangle4=TriConvexes(A,[B,C,D],0.75)
triangle5=TriConvexes(D,[A,B,C],0.75)


tikz+=mytikz.TikZ_Polygons_Draw(
    [
        triangle1,
        
    ],
    styles="red",
)


tikz+=mytikz.TikZ_Polygon_Draw(
    triangle2,
    style="blue,thick",
)

tikz+=mytikz.TikZ_Polygon_Draw(
    triangle3,
    style="cyan",
)

tikz+=mytikz.TikZ_Points(
    triangle3,
    titles=["","","\\frac{1}{4}"],
    node_style=["","","left"]
)
tikz+=mytikz.TikZ_Polygon_Draw(
    triangle4,
    style="cyan",
)

tikz+=mytikz.TikZ_Points(
    triangle4,
    titles=["","","\\frac{3}{4}"],
    node_style=["","","left"]
)

tikz+=mytikz.TikZ_Lines_By_Points(
    [
        [D,MBC],
    ],
    style="dashed"
)

tikz+=mytikz.TikZ_Lines_By_Points(
    [
        [
            triangle3[2],
            0.5*(triangle3[0]+triangle3[1])
        ],
    ],
    style="dashed,cyan"
)
tikz+=mytikz.TikZ_Lines_By_Points(
    [
        [
            triangle4[2],
            0.5*(triangle4[0]+triangle4[1])
        ],
    ],
    style="dashed,cyan"
)

tikz+=mytikz.TikZ_Lines_By_Points(
    [
        [
            MAD,
            0.5*(MAB+MAC)
        ],
    ],
    style="dashed,red"
)


tikz+=mytikz.TikZ_Polygon_Draw(
    triangle5,
    style="orange"
)

tikz+=mytikz.TikZ_Lines_By_Points(
    [
        [
            triangle5[0],
            0.5*(triangle5[2]+triangle5[1])
        ],
    ],
    style="dashed,orange"
)


tikz+=mytikz.TikZ_Points(
    triangle5,
    titles=["","","\\frac{1}{3}"],
    node_style=["","","right"]
)


tikz+=mytikz.TikZ_Polygons_Draw(
    [
        [A,AA],
        [A,MBC],        
    ],
    styles="dotted",
)

MM=1.0/3.0*(triangle3[0]+triangle3[1]+triangle3[2])

tikz+=mytikz.TikZ_Point(MM,title="M'")

pdf=mytikz.TikZ_LaTeX_Save_Run(
    mytikz.TikZ_LaTeX_Picture(tikz+tikz_base),
    "6_8/b.pdf"
)

tikz=[]

tikz+=mytikz.TikZ_Lines_By_Points(
    [
        [A,AA],
        [B,BB],
        [C,CC],
        [D,DD],
    ],
    style="dashed"
)



pdf=mytikz.TikZ_LaTeX_Save_Run(
    mytikz.TikZ_LaTeX_Picture(tikz+tikz_base),
    "6_8/c.pdf"
)
  • $\LaTeX$ Generated, a;
  • $\LaTeX$ Generated, b;
  • $\LaTeX$ Generated, c.
Messages:
0 secs.