![]() |
| |||
| Hola: Otra vez por aquí. Estoy haciendo un documento, en los que comento el funcionamiento de los dígitos de una calculadora. Sé que hay símbolos que me permiten escribir todos los dígitos usando "textifsym" y el paquete "ifsym", pero quiero ir un poco más allá. Necesito símbolos de varios segmentos que no tengan porqué formar dígitos. Por ejemplo, un carácter formado por el dígito superior, el medio y el derecho superior, etc. Si esto no lo hay, ¿cómo los puedo crear? Muchas gracias, y perdón si no me he explicado lo suficiente. Jesús Moreno -- --- |
| | ||||
| ||||
| |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| "Jesús Moreno" <jmonteverdeARROBA***ono.com> writes: > Hola: > > Otra vez por aquí. > Estoy haciendo un documento, en los que comento el > funcionamiento de los dígitos de una calculadora. Sé que hay > símbolos que me permiten escribir todos los dígitos usando > "textifsym" y el paquete "ifsym", pero quiero ir un poco más > allá. > Necesito símbolos de varios segmentos que no tengan porqué > formar dígitos. Por ejemplo, un carácter formado por el > dígito superior, el medio y el derecho superior, etc. > Si esto no lo hay, ¿cómo los puedo crear? He programado unas macros en metapost que permiten generar cualquier combinación de los siete segmentos. Lo que hace es asignar a cada segmento un numero: 0 +----+ 1| |2 | 3 | +----+ 4| |5 | 6 | +----+ y recibe como parámetro una cantidad decimal entre 0 y 127. Cada bit de esa cantidad indica si el correspondiente segmento debe estar encendido o apagado. Así, para sacar el "3", hay que encender los segmentos 0,2,3,5 y 6, lo que significa pasarle el parámetro 2^0+2^2+2^3+2^5+2^6 que es 109. Etc. La macro permite elegir el color del display LCD, de los segmentos encendidos y de los segmentos apagados. Por defecto pone el display blanco (papel), los encendidos a negro y los apagados a gris muy clarito. Pero puedes usar cualquier otro color si te mola más :-) Usando esta macro he creado 127 figuras, una para cada combinación posible (un simple bucle for), llamadas 7seg.0, 7seg.1, 7seg.2, .... 7seg.127 (por ejemplo, la última tiene todos los segmentos encendidos y por tanto es el "8"). Estas figuras son EPS y puedes incluirlas en tu documento latex. Este sería un ejemplo, para mostrar la cantidad 231, con dos "espacios blancos" por la izquierda: \documentclass{article} \usepackage{graphicx} \usepackage[latin1]{inputenc} \DeclareGraphicsRule{*}{mps}{*}{} % Para que admita la extension .1, .2, etc % Defino una macro para que sea más cómodo incluir las figuras, % y que las escala además al tamaño de letra actual \def\sseg#1{\includegraphics[width=1ex]{7seg.#1}} \begin{document} El resultado salió 231, es decir, el display mostró: \fbox{\sseg{0}\sseg{0}\sseg{93}\sseg{109}\sseg{36} }. \end{document} Y a continuación el programa metapost que genera los 128 caracteres. Debes guardarlo con el nombre 7seg.mp y compilarlo con mpost (forma parte de las distribuciones latex más corrientes). Si no te aclaras con la compilación metapost, puedo enviarte por email los 128 ficheros que genera como resultado. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % 7seg.mp % Genera las 128 combinaciones posibles de un display de % siete segmentos % (c) 2003 Jose Luis Diaz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% prologues:=2; w:=1cm; % Ancho y alto de cada segmento h:=3mm; color encendido, apagado, fondo; % Combinaciones de colores. Descomenta solo una de ellas % Combinacion blanco, negro y gris fondo:=white; encendido:=black; apagado:=.95white; % Combinacion blanco y negro % fondo:=white; % encendido:=black; % apagado:=white; % Combinacion LCD % fondo:=(.5,.99,.7); % encendido:=(.1, .3, .2); % apagado:=(.5,.9,.6); % Combinación fosforo verde % fondo:=black; % encendido:=(.7,.99, .7); % apagado:=(.1,.3,.1); vardef segmento = % Macro que proporciona la forma de un segmento save p; pair p[]; p[0]=(-w/2,0); p[1]=p[0] shifted (h/2, -h/2); p[2]=p[3] shifted (-h/2, -h/2); p[3]=(w/2, 0); p[4]=-p[1]; p[5]=-p[2]; (for i:=0 upto 5: p[i]-- endfor cycle) enddef; % Macro que pinta los 7 segmentos, cada uno encendido o apagado % segun los bits del entero que recibe como parámetro vardef display(expr n) = save p, r, m; pair p[]; % Posición del centro de cada segmento numeric r[]; % Rotación de cada segmento numeric m; m:=n; % Inicialización de p y r. Los segmentos se numeran así: % % 0 % +----+ % 1| |2 % | 3 | % +----+ <-- origen de coordenadas en el centro del % 4| |5 segmento 3 % | 6 | % +----+ % p[3]=origin; p[0]=p[3] shifted (0,w); p[6]=-p[0]; p[1]=p[3] shifted (-w/2, w/2); p[5]=-p[1]; p[4]=p[3] shifted (-w/2, -w/2); p[2]=-p[4]; r[0]=r[3]=r[6]=0; r[1]=r[2]=r[4]=r[5]=90; % Pintar el rectángulo de fondo filldraw (origin--(w+1.2h,0)--(w+1.2h,2w+1.2h)--(0,2w+1.2h)--cycle) shifted (-w/2-1.2h/2, -w-1.2h/2) withcolor fondo; % Y ahora los 7 segmentos for i:=0 upto 6: % Recorrer los 7 segmentos if (m mod 2=1): % Si activado, pintarlo en color encendido filldraw segmento rotated r[i] shifted p[i] withcolor encendido; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; else: % si no está activado, lo pintamos en color apagado filldraw segmento rotated r[i] shifted p[i] withcolor apagado; draw segmento rotated r[i] shifted p[i] withpen pencircle scaled .05w withcolor fondo; fi; m:=(m - m mod 2)/2; % Desplazar para acceder al siguiente bit endfor; enddef; % Y ahora generar las 128 figuras en un bucle for for i:=0 upto 127: beginfig(i); display(i); endfig; endfor; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% % Fin de 7seg.mp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%% ¡Que aproveche! -- JL Diaz |
| |||
| Gracias, pero me encuentro con un problema: He compilado con mpost, y me ha generado todos los archivos. Sólo he tenido que hacer una modificación al código tex que mandaste: No admitía la línea \DeclareGraphicsRule{*}{mps}{*}{} Supongo que te referías a {eps}. Con esto funcionó la compilación del tex. El problema es que no me visualiza el caracter. Yo uso WinEdt y la distribución latex de MiKTeX. También me bajé el programa visor de GhostScript, pues la aplicación YAP me lo pedía. Con esto, desaparecieron los errores, pero sigue sin verse el caracter en el DVI. Yo he tenido que meter todos los archivos que me generó el mpost en la misma carpeta donde tengo el archivo tex. ¿Debo colocarlo en otro lado? Muchas gracias y perdona mi desconocimiento del tema. |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Funcion + digitos finales! | Javier Esquinas | Newsgroup es.ciencia.matematicas | 48 | 03-06-2008 19:37:18 |
| Mas dígitos al final | León-Sotelo | Newsgroup es.ciencia.matematicas | 10 | 04-03-2008 10:46:34 |
| Dígitos olímpicos | León-Sotelo | Newsgroup es.ciencia.matematicas | 6 | 27-02-2008 06:52:04 |
| Multicanal 16 o 32 digitos | jeyme@wanadoo.es | Newsgroup es.rec.tv.decodificacion | 2 | 08-12-2007 05:16:39 |
| Factorial del cuenta dígitos | León-Sotelo | Newsgroup es.ciencia.matematicas | 3 | 30-09-2007 10:48:14 |