Javascript 如何找到由画布创建的文本的中心位置坐标?
我想找到画布动态创建的文本的中心位置坐标。例如,我想找到数字2文本中心的x和y坐标,该文本使用arial字体系列以50px的间隔书写600px。例如: HTMLJavascript 如何找到由画布创建的文本的中心位置坐标?,javascript,html,path,html5-canvas,coordinates,Javascript,Html,Path,Html5 Canvas,Coordinates,我想找到画布动态创建的文本的中心位置坐标。例如,我想找到数字2文本中心的x和y坐标,该文本使用arial字体系列以50px的间隔书写600px。例如: HTML <canvas id="myCanvas"></canvas> 文本、字体系列和字体大小可动态更改。如何找到中心位置坐标实际上取决于如何定义文本的“中心位置”。一种方法是搜索定义文本边界框的特定像素。此边界框始终是一个矩形,在每个标注(x,y)中分别具有最小/最大坐标的边 因此,文本的中心可以定义为该边界
<canvas id="myCanvas"></canvas>
文本、字体系列和字体大小可动态更改。如何找到中心位置坐标实际上取决于如何定义文本的“中心位置”。一种方法是搜索定义文本边界框的特定像素。此边界框始终是一个矩形,在每个标注(x,y)中分别具有最小/最大坐标的边 因此,文本的中心可以定义为该边界框的中心。这就是
getCenterCoordsFromText
所做的,它基于边界框或整个画布的坐标系返回居中的x/y坐标
var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
ctx.fillStyle=“#000000”;
ctx.font=“100px Arial”;
ctx.fillText(“2”,14,92);
函数getCenterCoordsFromText(颜色、相对画布){
var imageData=ctx.getImageData(0,0,canvas.width,canvas.height);
var数据=imageData.data;
var minX=无穷大;
var minY=无穷大;
var maxX=0;
var-maxY=0;
对于(变量i=0;iy){
minY=y;
}
if(最大值x){
minX=x;
}
if(maxX
画布{
边框:1px实心#A3A3;
}
.bbcs{
颜色:红色;
}
.ccs{
颜色:#A3A3;
}
相对于边界框坐标系的:
相对于画布坐标系:
目前看来,这是最好的方法。但是,我们希望measureText()方法能很快得到改进:是的,我也考虑过使用measureText
,但它仍然很模糊。
const myCanvas = document.getElementById('myCanvas');
const ctx = myCanvas.getContext('2d');
ctx.font = "600px Arial"; // ** Font family and Font-Size Changeable
ctx.fillText('2',10,450); // ** Number Changeable