En mi respuesta sobre Transformaciones afines , hice algunas pequeñas ilustraciones para ayudar a la explicación.
¿Cómo se hace un PNG que se puede cargar rápidamente y que expresa una idea geométrica o matemática?
Esta pregunta se ideó para respaldar mi respuesta PostScript, pero tiene la intención de solicitar otras soluciones que puedan beneficiar a la red SE en general. Pero para tener credibilidad, una respuesta debe estar vinculada a una publicación en la que se haya utilizado esta técnica, así como a una porción de "cómo hacerlo" suficiente si involucra algo más que algo obvio como "Seleccionar exportación del menú".
Hay dos meta preguntas aquí y aquí con respecto a cómo abarcar esta pregunta a la luz de las precedentes que puede establecer para nuestro sitio.
Respuestas:
Utilizo una variedad de herramientas dependiendo de las necesidades particulares del momento. Tengo un sesgo hacia las herramientas gratuitas, ya que no tengo acceso a cosas como Illustrator o Mathematica.
Para fines generales de arte vectorial, uso el Inkscape gratuito . Funciona en archivos .svg y también puede representarlos como .pngs de alta calidad u otros formatos de mapa de bits. Por ejemplo, aquí hay un diagrama que hice en Inkscape para explicar el mapeo UV :
Para los gráficos de funciones 2D, a menudo utilizo la calculadora gráfica en línea Desmos , que tiene la práctica capacidad de permitirle compartir gráficos en línea para que otros puedan verlos y modificarlos. También puede crear controles deslizantes que se pueden variar para jugar con parámetros de curva en tiempo real. Por ejemplo, aquí hay una función de enfoque configurable .
Para tareas gráficas más complejas que involucran un poco de programación, utilizo Maxima , un sistema de álgebra computacional gratuito que también tiene características gráficas. Utilicé Maxima para crear los gráficos en esta respuesta sobre desenfoques gaussianos :
Esto fue un poco demasiado complejo para Desmos, ya que implicaba crear programáticamente una aproximación por partes de un gaussiano.
Para tareas gráficas realmente extrañas que no son manejadas bien por nada más, he usado Python con el paquete svgwrite para generar diagramas mediante programación en archivos .svg. Estos se pueden retocar en Inkscape si se desea y renderizar en mapas de bits usando Inkscape o ImageMagick. Utilicé ese flujo de trabajo para crear las imágenes en esta publicación de blog sobre precisión de profundidad , como esta:
En este caso, no solo quería graficar una función, sino también colocar marcas de verificación de manera programática y no uniforme a lo largo de los ejes y el gráfico, para ilustrar valores discretos de búfer de profundidad.
Y finalmente, si nada más es suficiente, usaré Python con numpy y almohada para renderizar imágenes píxel por píxel. Así es como creé las imágenes de ruido Perlin en esta respuesta (con la ayuda del paquete de ruido también, en este caso).
fuente
Personalmente, mi elección de veneno es Adobe Illustrator. Otras aplicaciones como inkscape, Corel Draw, Xara Designer también funcionarán. En un apuro incluso PowerPoint funcionará. Aunque personalmente no recomiendo PowerPoint debido a problemas graves con su modelo de datos, incluso es difícil la aplicación de dibujo más implementada en el mundo.
También puede ser una buena idea tener una aplicación gráfica a mano. Personalmente uso Mathematica para esto, aunque muchas otras aplicaciones también funcionarían. O si lo desea, puede usar Wolfram alpha, que es una versión gratuita en línea de Mathica.
Descargo de responsabilidad: porque los ejemplos son míos y el desvergonzado autorretrato se toma con una pizca de sal.
Ilustrador
Lo primero que debe hacer en cualquier aplicación de dibujo vectorial es habilitar la cuadrícula de ajuste . Esto reduce el tedio de colocar líneas con precisión. Una de las principales razones por las que no me gusta usar Inkscape es la forma inferior en que implementa este ajuste. PowerPoint en realidad viene con el ajuste de cuadrícula de forma predeterminada.
Illustrator no me satisface realmente, ya que no satisface todas mis necesidades. Pero hasta ahora ningún software lo hace (Maya solía llenar este nicho pero luego ocurrió el autodesk).
La segunda razón por la que elijo Illustrator es porque entiende la posdata de forma nativa. Entonces, si necesito programar algo, puedo hacerlo rápidamente y los documentos existentes se actualizan a medida que mi código madura. La imagen 3 se realiza de esta manera.
Estos son algunos ejemplos de dibujos que he realizado en la red con Illustrator, principalmente por el poder de la cuadrícula:
Imagen 1 : Una de las muchas imágenes que dibujé en Illustrator en este sitio. Nota: Soy un ilustrador bastante experimentado (a veces comercial) y esto es extremadamente simple para mis estándares.
La imagen de la marcha del círculo es bastante simple de hacer. Simplemente dibuja una forma aleatoria haciendo clic alrededor. Después de esto, desactive el complemento y deje que las guías inteligentes hagan su trabajo por usted. Dibuje líneas al punto más cercano en la línea, haga círculos a la línea y (eliminé las líneas de guía después de haber terminado). Enjuague y repita. Me tomó unos 3-5 minutos dibujar la imagen una vez que comencé mi espacio de trabajo.
Imagen 2 : GD.SE ola continuación .
Si bien esta imagen parece bastante más elaborada, no es mucho más trabajo que la primera imagen. Es más técnico, por lo que, además de la referencia a la cuadrícula I, ahora usa la tecla Mayús para restringir las líneas a ángulos de 45 grados. Los rellenos de sombreado se asignan fácilmente a regiones con la herramienta de creación de formas de Illustrator. (ejemplo de generador de formas en uso , captura de pantalla)
Imagen 3 : A veces es más fácil comenzar desde cero en PostScript. Imagen añadida poder escribir en el ENG.SE .
Finalmente, una imagen que realmente es más fácil de hacer escribiendo los valores en postscript. Es relativamente fácil de hacer en postscript. Todavía he hecho la tipografía en ilustrador. Si bien dibujar esto a mano no es un gran problema, prefiero no hacerlo, pero lo haré si debo hacer un juicio a simple vista.
Mathematica
Mathematica es maravilloso si quieres explorar las cosas un poco más. El único inconveniente de Mathematica es que NO es barato. Pero puede hacer casi cualquier cosa rápidamente. He usado Mathematica para algunas de mis fotos en base a nurbs .
Una de las competencias básicas de Mathematicas es que es fácil de desarrollar incluso imágenes bastante complejas sin mucha molestia. También puede animar fácilmente su imagen simple dentro de su editor .
Resultados en la misma imagen que otros tienen. Envolviéndolo dentro de una tabla según los resultados:
Imagen 4 : La animación es simple de hacer dentro del editor de código usando Mathematica.
fuente
PostScript + ps2eps + mogrify
Para la respuesta de Transformaciones afines , escribí un programa postscript muy pequeño y luego guardé varias copias con diferentes nombres y edité cada una para hacer cada tarea diferente: escalar, traducir, rotar. Por ejemplo, aquí está el básico,
ident.ps
que no hace nada para cambiar las coordenadas entre el dibujo rojo y el dibujo negro. Hice las líneas rojas un poco más grandes y siempre las dibujé primero, por lo que las dos aparecen muy bien superpuestas y visibles (IMO). Preestimé con ghostscript con el comando vi (ex):!gs %
. ( todos los archivos fuente )Luego usé el
ps2eps
comando depsutils
para calcular automáticamente los cuadros delimitadoresY finalmente usé el
convert
comando de imagemagick para producir imágenes png recortadas. (No pensé en una forma rápida de automatizar esta parte. Editar: como se comentó, esto se puede hacer conmogrify -format png *.eps
. ¡Gracias, joojaa!)Que produce PNG, listo para cargar.
fuente
mogrify -format png *.eps
mogrify
. Para laps2eps
parte, calcula automáticamente (y agrega) la información del cuadro delimitador. Omitiendo esa parte,convert
producirá imágenes de tamaño de página completaSolo uso Powerpoint para hacer tales diagramas y funciona muy bien tan pronto como te sientas cómodo con sus primitivas básicas. Admite todas las operaciones simples como rotación, traslación, etc. y las revisiones recientes también tienen cizallas y transformaciones 3D. Ejemplos:
Aquí hay un ejemplo de un diagrama de Powerpoint que hice para una respuesta.
Para diagramas más complicados, especialmente en 3D, a veces uso Blender con materiales sin sombra. Puedo elaborar y mostrar ejemplos si es relevante para su pregunta.
Parece que jsfiddle también es popular por aquí.
fuente
No es la caja de herramientas definitiva que podría estar buscando, sino solo una herramienta adicional que uso yo mismo: para gráficos 3D, Blender podría ser útil. Especialmente si usa el complemento Export_SVG (disponible en http://dl.dropbox.com/u/16486113/Blender/archivos/temp/SVG/export_svg.py y http://blenderartists.org/forum/showthread.php? 282824-SVG-salida-script )
Esto le permite obtener objetos 3D de Blenders como gráficos vectoriales en Illustrator o Inkscape. Creo que me da un buen comienzo rápido para crear simples ilustraciones en 3D.
Permítame pegar un ejemplo. (En este ejemplo, uso muchos colores, pero por supuesto, en su lugar, todo se puede hacer negro y rojo sobre blanco)
fuente
Utilizo Powerpoint y varios paquetes CAD (caros). Escribí macros de Powerpoint (código VBA) para hacer algunas cosas especiales como dibujar los polígonos de control de las curvas de Bezier. Luego uso la herramienta de recorte de Windows estándar para tomar capturas de pantalla. Aquí hay unos ejemplos:
Y algunos ejemplos más de Math.SE
Uno
dos
tres
cuatro
cinco
fuente