2011-06-17 11 views
8

Tengo un archivo svg que contiene rutas complejas con curvas de bezier. Necesito convertir esta ruta de datos para usarla en html map-area, así que de hecho solo necesito las coordenadas (pero para curvas grandes, sería muy bueno tener algunas coordenadas 'entre' los dos puntos finales .SVG: ¿simplifica la ruta para eliminar curvas?

probé función de simplificación de trazado de Inkscape, pero esos caminos todavía contienen curvas ...

¿hay alguna herramienta o fórmula para convertir estas curvas en coordenadas simples?

Tal vez otro Inkscape productos de formato que no usa curvas en sus coordenadas?

+0

Si sólo necesita las coordenadas, que no se puede extraer fuera de la Imagen SVG utilizando un script? –

Respuesta

12

En Inkscape:

  • Seleccione Editar ruta por nodos herramienta (F2).
  • Haga clic en su camino para seleccionarlo
  • Ctrl-A para seleccionar todos los nodos en ese camino
  • Haga clic en Hacer segmentos seleccionados Líneas (en la barra de herramientas en la parte superior - el icono es una recta diagonal línea entre dos nodos cuadrados).
6

Para la automatización, pruebe la extensión incluida Flatten Bezier en Inkscape. Descripción here.

+1

Esto funciona mucho mejor que "Crear líneas de segmentos seleccionados", ya que de hecho agregará nodos para aproximar las curvas. –

+0

Esta es la solución correcta. Aborda el 'pero para curvas grandes, sería muy bueno tener algunas coordenadas 'entre' los dos puntos finales 'en la pregunta. La extensión está en 'Extensions'>' Modify Path'> 'Flatten Beziers ...' en Inkscape 0.92. –

0

No hay manera más técnica para simplificar la ruta SVG - https://github.com/mattdesl/simplify-path

var path = [ [250, 150], [250, 150], [25, 25], [24, 25], [10, 10] ] 
var tolerance = 10 
path = simplify(path, tolerance) 
//result: 
//[ [ 250, 150 ], [ 25, 25 ], [ 10, 10 ] ]