123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- import os
- from vedo import printc, Text2D, Text3D, show, Plotter
- from vedo import fonts, fonts_path, settings
- import numpy as np
- ################################################################################## 2D
- inred = Text2D(
- "°monospaced fonts are marked in red", c="r5", pos="bottom-center", font="VictorMono"
- )
- acts2d = [inred]
- txt = "The quick fox jumps over the lazy dog. 1234567890 αβγδεθλμνπστφψω"
- for i, f in enumerate(fonts):
- bg = None
- if f in ["Calco", "Glasgo", "SmartCouric", "VictorMono"]:
- bg = "red5"
- t = Text2D(f"{f}: {txt}", pos=(0.015, 1 - (i + 3) * 0.06), font=f, s=1.3, c="k", bg=bg)
- acts2d.append(t)
- acts2d.append(Text2D("List of built-in fonts", pos="top-center", bg="k", s=1.3))
- plt0a = show(acts2d, bg2="cornsilk", size=(1300, 800), interactive=False)
- ## online fonts:
- acts2d = []
- i = 0
- for key, props in sorted(settings.font_parameters.items()):
- if props["islocal"]:
- continue
- if key in ("Justino2", "Justino3"):
- continue
- bg = None
- if props["mono"]:
- bg = "red5"
- t = Text2D(f"{key}: {txt}", pos=(0.015, 1 - (i + 2) * 0.03), font=key, c="k", bg=bg)
- acts2d.append(t)
- i += 1
- plt0b = show(
- acts2d,
- Text2D("Additional fonts (https://vedo.embl.es/fonts)", pos="top-center", bg="k"),
- bg2="lb",
- size=(1300, 1350),
- pos=(1200, 0),
- new=True,
- )
- ################################################################################ printout
- for font in fonts:
- printc(font + " - available characters:", " " * 25, bold=1, invert=1)
- fontfile = os.path.join(fonts_path, font + ".npz")
- font_meshes = np.load(fontfile, allow_pickle=True)["font"][0]
- for k in font_meshes.keys():
- printc(k, end=" ")
- print()
- printc("\n(use the above to copy&paste any char into your python script!)", italic=1)
- printc("Symbols ~ ^ _ are reserved modifiers:", italic=1)
- printc(" use ~ to add a short space, 1/4 of the default size,", italic=1)
- printc(" use ^ and _ to start up/sub scripting, space terminates them.\n", italic=1)
- ################################################################################## 3D
- # Symbols ~ ^ _ are reserved modifiers:
- # use ~ to add a short space, 1/4 of the default size,
- # use ^ and _ to start up/sub scripting, a space terminates them.
- txt = """The quick fox jumps over the lazy dog.
- Symbols: !@#$%&*()+=-{}[]:;|<>?/:euro1234567890
- Units: :delta=0.25E-03 ~μm, T_sea ~=~5.3~±0.7~:circC
- LaTeX: :nabla:dotE=~4:pi~:rho, :nabla:timesE=~-1/c~~:partialB/:partialt
- ih~:partial/:partialt~:Psi = [-h^2 /2m:nabla^2 + V(r,t)]~:Psi(r,t)
- :DeltaE~=~h:nu, y = :Sigma_n ~A_n cos(:omega_n t+:delta_n ) sin(k_n x)
- :intx:dot~dx = :onehalf x:^2 + const.
- d^2 x^:mu + :Gamma^:mu_:alpha:beta ~dx^:alpha ~dx^:beta = 0
- -∇:^2u(x) = f(x) in Ω, u(x)~=~u_D (x) in :partial:Omega
- """
- plt = Plotter(N=4, pos=(300, 0), size=(1600, 950))
- cam = dict(
- pos=(3.99e5, 8.51e3, 6.47e5),
- focal_point=(2.46e5, 1.16e5, -9.24e3),
- viewup=(-0.0591, 0.983, 0.175),
- distance=6.82e5,
- clipping_range=(5.26e5, 8.92e5),
- )
- for i, fnt in enumerate(["Kanopus", "Normografo", "Theemim", "VictorMono"]):
- t = Text3D(txt, font=fnt, italic=0).c("darkblue").scale(12300)
- plt.at(i)
- plt.show(
- t,
- Text2D("Font: " + fnt, font=fnt, bg="r"),
- axes=dict(
- xtitle="my units for L_x (:mum)",
- ytitle="my Y-axis with:na long description",
- title_font=fnt,
- label_font=fnt,
- digits=2,
- ),
- camera=cam,
- resetcam=not bool(i),
- )
- plt.interactive().close()
- plt0b.close()
- plt0a.close()
|