[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Propiedades de los objetos ] | [ Subir : Scheme dentro de LilyPond ] | [ Desplazamientos > ] |
A.2.6 Variables de LilyPond compuestas
Desplazamientos | ||
Fracciones | ||
Dimensiones | ||
Listas-A de propiedades | ||
Cadenas de listas-A |
[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Variables de LilyPond compuestas ] | [ Subir : Variables de LilyPond compuestas ] | [ Fracciones > ] |
Desplazamientos
Los desplazamientos bidimensionales (coordenadas X e Y) se almacenan
como parejas. El car
del desplazamiento es la
coordenada X, y el cdr
es la coordenada Y.
\override TextScript.extra-offset = #'(1 . 2)
Esto asigna la pareja (1 . 2)
a la propiedad
extra-offset
del objeto TextScript. Estos números se miden en
espacios de pentagrama, y así esta instrucción mueve el objeto un
espacio de pentagrama a la derecha, y dos espacios hacia arriba.
Los procedimientos para trabajar con desplazamientos están en ‘scm/lily-library.scm’.
[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Desplazamientos ] | [ Subir : Variables de LilyPond compuestas ] | [ Dimensiones > ] |
Fracciones
Fractions
Las fracciones tal y como se utilizan por parte de LilyPond
se almacenan, de nuevo, como parejas, esta
vez de enteros sin signo. Mientras que Scheme es capaz de representar números racionaes
como un tipo nativo, musicalmente ‘2/4’ y ‘1/2’ no son lo mismo,
y necesitamos poder distinguir entre ellos. De igual forma, no existe el concepto
de ‘fracciones’ negativas en LilyPond. Así pues, 2/4
en LilyPond
significa (2 . 4)
en Scheme, y #2/4
en LilyPond significa
1/2
en Scheme.
[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Fracciones ] | [ Subir : Variables de LilyPond compuestas ] | [ Listas-A de propiedades > ] |
Dimensiones
Las parejas se usan también para almacenar intervalos, que representan
un rango de números desde el mínimo (el car
) hasta el máximo
(el cdr
). Los intervalos se usan para almacenar las
dimensiones en X y en Y de los objetos imprimibles. Para dimensiones
en X, el car
es la coordenada X de la parte izquierda, y el
cdr
es la coordenada X de la parte derecha. Para las
dimensiones en Y, el car
es la coordenada inferior, y el
cdr
es la coordenada superior.
Los procedimientos para trabajar con intervalos están en ‘scm/lily-library.scm’. Se deben usar estos procedimientos siempre que sea posible, para asegurar la consistencia del código.
[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Dimensiones ] | [ Subir : Variables de LilyPond compuestas ] | [ Cadenas de listas-A > ] |
Listas-A de propiedades
Una lista-A de propiedades es una estructura de datos de LilyPond que es una lista-A cuyas claves son propiedades y cuyos valores son expresiones de Scheme que dan el valor deseado de la propiedad.
Las propiedades de LilyPond son símbolos de Scheme, como por ejemplo
'thickness
.
Cadenas de listas-A
Una cadena de listas-A es una lista que contiene listas-A de propiedades.
El conjunto de todas las propiedades que se aplican a un grob se almacena por lo general como una cadena de listas-A. Para poder encontrar el valor de una propiedad determinada que debería tener un grob, se busca por todas las listas-A de la cadena, una a una, tratando de encontrar una entrada que contenga la clave de la propiedad. Se devuelve la primera entrada de lista-A que se encuentre, y el valor es el valor de la propiedad.
El procedimiento de Scheme chain-assoc-get
se usa normalmente
para obtener los valores de propiedades.
Otros idiomas: English, deutsch, français.
Acerca de la selección automática del idioma.