Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到由画布创建的文本的中心位置坐标?_Javascript_Html_Path_Html5 Canvas_Coordinates - Fatal编程技术网

Javascript 如何找到由画布创建的文本的中心位置坐标?

Javascript 如何找到由画布创建的文本的中心位置坐标?,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)中分别具有最小/最大坐标的边 因此,文本的中心可以定义为该边界

我想找到画布动态创建的文本的中心位置坐标。例如,我想找到数字2文本中心的x和y坐标,该文本使用arial字体系列以50px的间隔书写600px。例如:

HTML

<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