Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

194
Visualizações
¿Cómo dibujar líneas dinámicamente en una imagen SVG?

Estoy tratando de desarrollar un Attack Map cuando, básicamente, como todos los mapas, mostrará los "ataques" que están ocurriendo en todo el mundo, pero básicamente serán aleatorios ya que no tengo acceso a las APIs AV's para obtener los datos correctos. A partir de ahora, solo tengo este SVG map se muestra en mi página HTML: ingrese la descripción de la imagen aquí

Y me gustaría dibujar algunas líneas de un país a otro para simular los ataques. He estado buscando sobre esto y he visto dos "soluciones". Uno es un código JS que dibuja una línea en HTML :

 if (stroke){ ctx.strokeStyle = stroke; } if (width){ ctx.lineWidth = width; } ctx.beginPath(); ctx.moveTo(...begin); ctx.lineTo(...end); ctx.stroke(); } const canvas = document.querySelector("#line"); if(canvas.getContext){ const ctx = canvas.getContext('2d'); drawLine(ctx, [100, 100], [300, 100], 'green', 5) }

pero como dije, esto dibuja una línea fuera del SVG map y dentro de HTML. También vi una etiqueta line que se puede colocar dentro de las etiquetas SVG , pero es estática. Quiero ser dinámico y simular los ataques. ¿Hay alguna manera de que pueda hacer esto? ¡Gracias por tu tiempo!

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Incluso si el elemento SVG es estático, puede agregar elementos <line /> dinámicamente cuando se haya cargado el DOM:

 const lines = [ { from: { x: 0, y: 20 }, to: { x: 30, y: 60 } }, { from: { x: 0, y: 20 }, to: { x: 30, y: 60 } } ]; function addLine (x1, y1, x2, y2) { const line = document.createElementNS('http://www.w3.org/2000/svg','line'); line.setAttribute("x1", x1); line.setAttribute("y1", y1); line.setAttribute("x2", x2); line.setAttribute("y2", y2); line.setAttribute("stroke", "white"); document.getElementById("mySvg").appendChild(line); } addEventListener("DOMContentLoaded", function () { for (const line of lines) { addLine(line.from.x, line.from.y, line.to.x, line.to.y); } });
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda