es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la unidad de medida de x y y en canvasrendering2d.moveTo() en canvas de HTML5?

Todos. He creado un lienzo de diferentes tamaños y he dibujado una línea con los mismos valores para moveTo() y lineTo(), pero obtengo líneas de diferentes tamaños.

Este es el código.

function testCanvas(height, width){
    canvas = document.createElement("canvas");
    ctx = canvas.getContext('2d');

    canvas.style.display = "inline-block";
    canvas.style.border = "1px solid black";

    canvas.height = height;
    canvas.width = width;

    document.getElementById("chartContainer").appendChild(canvas);
}

function drawLine(x1, y1, x2, y2){
    ctx.beginPath();
    ctx.moveTo(x1,y1);
    ctx.lineTo(x2,y2);

    ctx.stroke();
}
  1. Cuando voy a “Inspeccionar elemento” > “Consola” y llamo a:
testCanvas(300,300);
drawLine(10,50,110,50);

y

testCanvas(150,150);
drawLine(10,50,110,50);

La longitud de las líneas no es igual.
Ahora, si las entradas para moveTo y lineTo estuvieran en píxeles, ¿estas líneas tendrían la misma longitud, no es así? ¿Cuál es la unidad predeterminada aquí?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    La unidad predeterminada para las coordenadas pasadas a los métodos moveTo() y lineTo() del lienzo HTML5 es en píxeles. Por lo tanto, si se proporcionan los mismos valores para ambos métodos en diferentes tamaños de lienzo, las líneas deberían tener la misma longitud en píxeles. Sin embargo, es posible que la longitud percibida de las líneas pueda diferir debido a que se muestran en lienzos de diferentes tamaños con diferentes densidades de píxeles.

Comments are closed.