stringtranslate.com

Asíntota (lenguaje de gráficos vectoriales)

Asymptote es un lenguaje descriptivo de gráficos vectoriales , desarrollado por Andy Hammerlindl, John C. Bowman (Universidad de Alberta) y Tom Prince, que proporciona un marco de trabajo basado en coordenadas naturales para el dibujo técnico . Asymptote funciona en todas las plataformas principales ( Unix , Mac OS , Microsoft Windows ). Es software libre , disponible bajo los términos de la Licencia Pública General Reducida de GNU (LGPL).

Sintaxis y características destacables

Asymptote compone etiquetas y ecuaciones con LaTeX , produciendo una salida PostScript , PDF , SVG o PRC 3D de alta calidad . [2] Está inspirado en MetaPost , pero tiene una sintaxis similar a C. Proporciona un lenguaje para componer figuras matemáticas, al igual que TeX / LaTeX proporciona un lenguaje para componer ecuaciones. Está orientado matemáticamente (por ejemplo, rotación de vectores por multiplicación compleja) y utiliza el método simplex y dibujo diferido para resolver problemas generales de restricción de tamaño entre objetos de tamaño fijo (etiquetas y puntas de flecha) y objetos que deben escalar con el tamaño de la figura.

Asymptote generaliza completamente los algoritmos de construcción de rutas de MetaPost a tres dimensiones [3] y compila comandos en código de máquina virtual para lograr velocidad sin sacrificar la portabilidad. Los comandos gráficos de alto nivel se implementan en el propio lenguaje Asymptote, lo que permite adaptarlos fácilmente a aplicaciones específicas. También parece ser el primer paquete de software que lleva TeX a tres dimensiones [4] [5] Esto permite que Asymptote se use como un formato de archivo vectorial 3D .

Asymptote también se destaca por tener una interfaz gráfica codificada en Python (y el conjunto de widgets Tk ), xasy.py – esto permite a un usuario inexperto dibujar rápidamente objetos y guardarlos como código fuente .asy que luego puede examinarse o editarse a mano.

La sintaxis del programa se describió originalmente utilizando una gramática compatible con Yacc .

Ejemplos de aplicación

El siguiente código fuente permite dibujar un gráfico de la función Heaviside mediante el lenguaje Asymptote.

importar gráfico ; importar configuraciones ; outformat = "pdf" ;  tamaño ( 300 , 300 );// Función. real [] x1 = { - 1.5 , 0 }; real [] y1 = { 0 , 0 }; real [] x2 = { 0 , 1.5 }; real [] y2 = { 1 , 1 }; dibujar ( graficar ( x1 , y1 ), rojo + 2 ); dibujar ( graficar ( x2 , y2 ), rojo + 2 );            dibujar (( 0 , 0 ) -- ( 0 , 1 ), rojo + 1.5 + tipolinea ( "4 4" )); rellenar ( círculo (( 0 , 1 ), 0.035 ), rojo ); rellenardibujar ( círculo (( 0 , 0 ), 0.03 ), blanco , rojo + 1.5 );     // Ejes. ejex ( Etiqueta ( "$x$" ), Marcas ( nuevo real []{ - 1 , - 0.5 , 0.5 , 1 }), Flecha ); ejey ( Etiqueta ( "$y$" ), Marcas ( nuevo real []{ 0.5 , 1 }), Flecha , ymin =- 0.18 , ymax = 1.25 ); // Origen. etiquetax ( "$O$" , 0 , SO );          

El código anterior produce la siguiente salida en PDF.

Salida compilada del código de ejemplo de Asymptote

Véase también

Referencias

  1. ^ "Versión 2.91". 15 de agosto de 2024. Consultado el 20 de agosto de 2024 .
  2. ^ Asymptote: Un lenguaje de gráficos vectoriales, JC Bowman y A. Hammerlindl, TUGBOAT: Las comunicaciones del grupo de usuarios de TeX, 29:2, 288-294 (2008).
  3. ^ La generalización de asíntota 3D de la interpolación de Bézier MetaPost, JC Bowman, Actas en Matemáticas Aplicadas y Mecánica, 7:1, 2010021-2010022 (2007).
  4. ^ Asíntota: Elevando TeX a tres dimensiones, JC Bowman y Orest Shardt, TUGBOAT: Las comunicaciones del grupo de usuarios de TeX, 30:1, 58-63 (2009).
  5. ^ Parametrización de superficies de regiones Bézier planas no simplemente conexas, O. Shardt y JC Bowman, Computer-Aided Design, 44:5 (2012).

Enlaces externos