Cambiando al mundo... un post a la vez.

Líneas Diagonales

Lineas Diagonales

El efecto de las líneas diagonales es cada vez más popular entre las web 2.0. Todos sabémos cómo hacer un efecto de línea diagonal de 1px de ancho. Es fácil: creamos una nueva imagen de 3x3 en nuestro editor gráfico favorito (el mío es el Macromedia Fireworks) y trazamos una diagonal a la mitad del cuadro en la dirección que queremos la diagonal:

Diagonal de 1px

Y con este patrón podemos crear cajas como esta:

Caja con un patrón diagonal de 1px.

¿Pero qué pasa cuándo queremos crear lineas diagonales más anchas? En este tutorial les explicaré cómo crear patrones para lineas más gruesas, que creanme, es más sencillo de lo que creen.

Determinar el tamaño

El primer paso es determinar el tamaño de nuestro patrón, lo cuál es más difícil de lo que creen. Primero que nada deben saber que para crear un patrón de líneas diagonales el ancho de la misma debe ser un número impar. ¿Queda claro? Esto quiere decir que no podrás crear un patrón de lineas diagonales de 2px cada una, deberán ser de 3px.

Una vez aclarado eso debemos elegir el ancho de nuestro canvas (el tamaño de la imagen, pues). Existen dos factores que determinan el tamaño de nuestro canvas. El primero es el ancho de la línea y el segundo es el espacio que quieres que exista entre cada línea. Para este ejemplo usaremos una línea de 11px de ancho con un espacio entre lineas de 9px. Para hacer esto, crearemos un canvas de 20x20px. ¿Cómo supe esto? Bueno, como buen ingeniero he creado una fórmula para hacerles la vida más sencilla:

[(a - 1) / 2] + e + {[(a - 1) / 2] + 1} = tamaño del canvas

Donde 'a' es el ancho de la línea, mientras que 'e' es el espacio que quieres entre las líneas.

Aplicando esta formulita a nuestro ejemplo, tenemos que a = 11px y e = 9px. Por lo tanto:

[(11 - 1) / 2] + 9 + {[(11 - 1) / 2] + 1} = tamaño del canvas
[5] + 9 + {[5] + 1} = tamaño del canvas
14 + {6} = tamaño del canvas
20 = tamaño del canvas

Por lo tanto, necesitaremos crear un canvas de 20x20px.

Actualización: 24 de Marzo del 2007

Y es que a veces nos gusta complicarnos TANTO la vida que dejamos pasar lo obvio por alto. El buen Cleverson nos comenta que con solo sumar el ancho de la columna y el espacio entre las lineas podemos obtener el tamaño de nuestro canvas. Tan obvio y sencillo que se me escapó de la vista. En fin, me disculpo. :P

Creando la diagonal

Ya que tienes tu canvas de 20x20px es hora de empezar creando la diagonal. Empezaremos creando la diagonal que todo mundo sabe crear: la diagonal de 1px (que llamaremos 'diagonal principal') que no es más que una línea que va desde una esquina de nuestro canvas a la esquina contraria en forma diagonal:

Primer paso para línea diagonal

Una vez que tenemos esta línea en el centro de nuestro canvas, debemos poner los pixeles necesarios alrededor de nuestra diagonal principal para hacerla del ancho que queremos. Como en este caso buscamos crear una diagonal de 11px de ancho y, como ya tenemos uno de esos 11px (el pixel de nuestra diagonal principal), debemos agregar 10px más. Por motivos de simetría, serán 5px a la izquierda y 5 a su derecha:

Segundo paso para línea diagonal

¡Ya tenemos nuestra diagonal de 11px! La mayoría de las personas pensarían que han terminado y pueden usarlo a placer, pero si lo intentan obtendrán algo como esto:

Error de la diagonal

'Completando' la diagonal

Para evitar que nuestra diagonal salga incompleta es necesario llenar las esquinas que quedaron vacías de nuestro canvas. ¿Con cuántos pixeles, te preguntas? Bueno, el mismo número de pixeles que colocaste alrededor de la diagonal principal. En este ejemplo, colocamos 5px a la izquierda y 5px a la derecha en el paso anterior ¿recuerdas? Pues lo mismo haremos ahora, solo que en las esquinas que quedaron vacías:

Tercer paso para línea diagonal

¡Y listo! Ya hemos terminado nuestro patrón. Ahora guardalo y aplicalo donde quieras, se verá como esto:

Lineas Diagonales

Nota: Algunos editores gráficos (como el Macromedia Fireworks) requieren que el fondo del patrón sea de color blanco, así que pon el fondo de este color antes de guardar y usarlo.

17 Comentarios

  1. #1 gravatar DaN *pekitas* 7 de Marzo del 2007, 23:37

    jajaa.. aii sii aii sii.. s0i un mAster en la p0mpuu!! ayy sii!!
    XD... j0jo kik's me caES w0o0 chik00!!... bs0..... baiikk

  2. lindo tutorial gracias =)

  3. Comparto al fireworks como favorito, y debo decir que la formula es útil para evitar andarse con cuentas raras y largas en la cabeza!! :P

    Saludos!

  4. El mío es Photoshop y uso el mudialmente conocido algoritmo de prueba&error. XD

  5. Genial... mil gracias ;-)

  6. Podríamos agregar solamente la anchura de la línea con el espacio entre las líneas:

    a = 11px y e = 9px.
    Canvas = a + e
    Canvas = 11 + 9
    Canvas = 20

  7. Cleverson me parece o desarrollaste la formula:

    cavas=a+e

    queria desarrollar la formula para que la vean (solo operen sumen, factoricen y resten) pero no se prque la tecla de division no me sale :D

    Saludos y excelente tutorial

  8. ¿Para la línea diagonal de 1 px no es mucho más fácil usar la función Textura que ya viene incluida en Fireworks 8?

  9. cuales son las diagonales???

  10. puedo ber todos las diagonales como ll

  11. hola

  12. disculpa mi pregunta pero y donde veo cuantos pixeles esotyusando?

    es decir donde veo queno me pesao de pixelesç

    gracias

  13. no me salen tienen como un piquito en la parte inferior y ya hice como dices ahi

  14. Waaaaaaaaiii!!!!! que fantastico!!! es increible ahora despues de saber eso me siento tonta ¬__¬ en fin T-T muchas gracias!!!! vaya que tanto trabajo para hacer lineas diagonales >_

  15. exceeeeelente bro, ya resolvi un detallito del ancho con esa explicacion.

    thx

  16. necesito saber cuales son las lineas
    transversales.Y
    diagonales.
    xfavor contesten repido lo necesito para mañana 7 de nov.

  17. jajajaja osea niñitos estupidos a mi la neta no me gusta estudiar formulas ni air a la escuela y eso q voy en la sec a ustesdes tambien bola de paelos

Dejar un comentario

* Campos requeridos
   El Email no será publicado