Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

189
Views
Determine si dos no rectángulos se superponen en JS

Tengo dos elementos html (en mi caso, son elementos de ruta SVG). Cada uno de estos tiene un ancho de trazo diferente. ¿Hay alguna forma de determinar si dos de estos caminos se superponen? He intentado usar la biblioteca de intersección de rutas npm, pero no me permite especificar un ancho. Además, los resultados son aproximados, pero necesito datos más exactos.

No necesito calcular el área de intersección real o las coordenadas. Solo necesito saber si se produce una intersección entre estos dos caminos con anchos definidos. ¿Hay una solución?

editar: aquí hay un ejemplo para demostrar algo que quiero

 <svg xmls="http://www.w3.org/2000/svg"> <path id="p1" d="M10,10 C20,30, 50,70, 100,100" stroke-width="3" stroke='black'></path> <path id="p2" d="M20,0 Q200,30,0,100" stroke-width="5" stroke="red"></path> </svg>
 path { fill: none; } svg { position: absolute; top: 100px; left: 100px; }

en javascript, tengo algo como esto:

 let p1 = document.getElementById("p1"), p2 = document.getElementById("p2"); if (p1 intersects/overlaps with p2) { //run some code }

Ejemplo 1

produce lo anterior, que clasifico como una intersección, ya que los caminos se superponen

ejemplo 2 aquí, produje las mismas líneas, pero una está desplazada. No clasifico esto como una superposición.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!