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

313
Visualizações
Obtener la posición X, Y en el lienzo

En JS, podríamos usar Element.getBoundingClientRect() para obtener las coordenadas X e Y del elemento. Pero, ¿qué pasa si queremos saber las coordenadas X, Y de un elemento en el lienzo?

Lo más cercano en lo que podría pensar es CanvasRenderingContext2D.isPointInPath() para verificar que no exista un punto en la forma. ¿Hay una función integrada o alguna forma de obtener las coordenadas X e Y de una forma en el lienzo?

Por ejemplo,

 const canvas = document.querySelector('canvas'); const ctx = canvas.getContext('2d'); ctx.rect(10, 10, 100, 100); ctx.fill();
 canvas{ width:200px; height:200px; background:red; }
 <canvas></canvas>
¿Hay alguna forma de obtener las coordenadas superior/izquierda del rectángulo negro?

Cualquier respuesta será appreicated.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Las coordenadas que usa para especificar el rect comienzan con el par x/y para la esquina superior izquierda del rect en relación con el lienzo .

Uno esperaría que las coordenadas de la pantalla se obtuvieran agregando el valor rect 'sx al valor canvas.getBoundingClientRect().left para la coordenada x de la pantalla, y el valor y agregado al valor canvas.getBoundingClientRect().top daría el coordenada y.

Si está agregando formas al rect usando js, sería relativamente fácil realizar un seguimiento de la parte superior izquierda de cada una de las variables y calcular las coordenadas de la pantalla a medida que avanza.

como un medio aproximado y listo para obtener (manualmente) una estimación razonable de cualquier punto, se podría usar un eventListener de un simple clic para informar las coordenadas de los puntos en los que hace clic:

 const canvas = document.querySelector('canvas'); const ctx = canvas.getContext('2d'); ctx.rect(10, 10, 100, 100); ctx.fill(); canvas.addEventListener ('click', event => { console.log(`x: ${event.screenX}, y: ${event.screenY}`) })
 <canvas width="200px" height="200px" style="background:red"></canvas>

about 4 years ago · Juan Pablo Isaza Relatório

0

Creo que es bastante simple. Donde haces tu caja como esta; ctx.rect(10, 10, 100, 100); , En cambio haz esto;

 var x = 10; var y = 10; ctx.rect(x, y, 100, 100);

Luego puede moverlo como quiera y saber dónde está, por ejemplo, document.getElementById("demo").innerHTML = "x:" + x + "y:" + y; al final de su código y luego coloque <p id="demo"></p> en la parte html. Si desea que se actualice en tiempo real, intente usar requestAnimationFrame , pero primero intente ponerlo en una función.

about 4 years ago · Juan Pablo Isaza 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