Programación en castellano
-Tutoriales

SVG / JavaScript


SVG: Geometría

. Rectángulo

<svg xmlns="http://www.w3.org/2000/svg" width="200px" height="200px">
  <rect x="25" y="25" width="100" height="100" fill="blue" opacity="0.5" />
  <rect x="50" y="50" rx="20" ry="20" width="100" height="100" fill="red"
    opacity="0.5" />
  <rect x="75" y="75" width="100" height="100" fill="green" opacity="0.5" />
</svg>

"x" e "y". Desplazamiento del objeto respecto al origen de coordenadas. "width" y "height". Ancho y alto del objeto. "rx" y "ry". Redondean las esquinas del objeto. El resto de atributos añaden propiedades sobre el estilo de la visualización.

rectangulo.svg

. Círculo

<svg xmlns="http://www.w3.org/2000/svg" width="200px" height="200px">
  <circle cx="100px" cy="100px" r="50px"
    style="fill:red; stroke:black; stroke-width:0.1cm" transform="translate(-20,20)" />
  <circle cx="100px" cy="100px" r="50px"
    style="fill:green; stroke:black; stroke-width:0.1cm" transform="translate(10,-20)"/>
  <circle cx="100px" cy="100px" r="50px"
    style="fill:blue; stroke:black; stroke-width:0.1cm" transform="translate(40,40)" />
</svg>

"cx" e "cy". Desplazamiento del objeto respecto al origen de coordenadas el cual indica el centro del objeto. "r". Radio del objeto. El resto de atributos añaden propiedades sobre el estilo de la visualización.

circulo.svg

. Elipse

<svg xmlns="http://www.w3.org/2000/svg" width="200px" height="200px">
  <ellipse cx="96.5" cy="143" rx="59.5" ry="41"
    style="fill:rgb(255,229,242); stroke:rgb(242,0,125); stroke-width:3"/>
</svg>

"cx" y "cy". Desplazamiento del objeto respecto al origen de coordenadas el cual indica el centro del objeto. "rx" y "ry". Definen el radio horizontal y vertical de la elipse.

elipse.svg

. Línea

<svg xmlns="http://www.w3.org/2000/svg" width="200px" height="200px">
  <line x1="10" y1="10" x2="150" y2="150" stroke="red" stroke-width="2" />
</svg>

"x1" y "y1". Coordenadas del inicio de la línea. "x2" y "y2". Coordenadas del fin de la línea.

linea.svg

La continuidad de las líneas pude ser modificada gracias al atributo de estilo "stroke-dasharray". Con este atributo podemos definir la línea como una sucesión de tramos visibles e invisibles. El atributo "stroke-dasharray" permite definir una lista de números separados por comas de forma que por parejas nos marcan la continuidad de la línea.

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" width="200px" height="200px">
  <line x1="10" y1="10" x2="150" y2="150" stroke="red"
    stroke-width="8" stroke-dasharray="18, 4, 4, 18" />
</svg>
linea-dash.svg

. Polilínea

<svg xmlns="http://www.w3.org/2000/svg" width="300" height="100">
  <polyline
    points="0,0 0,20 40,20 40,0 80,0 80,20 120,20 120,0 160,0 160,20 200,20 200,0 240,0 240,20"
    style="stroke:red; stroke-width:2; fill:none;" transform="translate(20,20)" />
</svg>
polilinea.svg

. Polígono

<svg xmlns="http://www.w3.org/2000/svg" width="150" height="200">
  <polygon points="100,0,50,174,0,128,0,0"
           style="stroke:none; stroke-width:1; stroke-opacity:1; fill:#d5fbfd; fill-opacity:1" />
</svg>
poligono.svg

. Texto

<svg xmlns="http://www.w3.org/2000/svg" width="150" height="200">
  <text style="font-size: 72; font-weight: 900; fill: yellow; stroke: black; stroke-width: 0.6">
    <tspan x="10" y="100">Texto en SVG</tspan>
  </text>
</svg>
texto.svg

También existe la posibilidad de introducir elemenos definidos en otros espacios de nombres como es XHTML. Así, podemos insertar pedazos de XHTML dentro del documento SVG. Este ejemplo no funciona con el plugin de Adobe, para visualizarlo utilizar el Mozilla.

<foreignObject x="82" y="100" width="40px" height="10px"
               requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <span class="forobjpts">(100,100)</span>
  </html>
</foreignObject>

. Caminos

Definición de un conjunto de líneas de forma encadenada y con diferentes formas.

Comandos disponibles para definir caminos:

  • M. Permite moverse a un punto determinado sin pintar ninguna línea.

  • L. Creación de una línea hasta la coordenada indicada.

  • H. Creación de una línea horizontal hasta la coordenada indicada.

  • V. Creación de una línea vertical hasta la coordenada indicada.

  • C. Creación de una línea curva hasta la coordenada indicada.

  • S. Creación de una línea curva suave (smooth) hasta la coordenada indicada.

  • Q. Creación de una línea curva cuadrática de Bezier hasta la coordenada indicada.

  • T. Creación de una línea curva suave cuadrática de Bezier hasta la coordenada indicada.

  • A. Creación de una línea elíptica hasta la coordenada indicada.

  • Z. Cerrar el comino.

Todos estos comandos tienen también su equivalente en minúsculas, de forma que el posicionamiento en este caso se considerará relativo y no absoluto.

<svg xmlns="http://www.w3.org/2000/svg" width="200px" height="200px">
  <path d="M10 10 h 100 v  30 h -100 v -30 Z" fill="blue" />
  <path d="M10 80 H 110 V 130 H   10 V  80 Z" fill="red" />
  <path d="M10 80 C 10 80 60 30 110 80 Z" fill="green" />
</svg>
caminos.svg
<path d="M50,100 Q200,0 200,200 100,500 600,200" style="fill:none; stroke:blue; stroke-width:2" />
camino-bezier.svg
<path d="M 10 10 L 65 90 A 5 10 0 0 0 75 90" style="stroke: black; fill: #ffcccc" />
camino-elipse.svg

Debido a la complejidad de definir figuras geométricas basadas en caminos, se hace mucho más recomendable el uso de programas gráficos de edición para este menester.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados