Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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_Canvas_Line - Fatal编程技术网

Javascript 单击画布中的行

Javascript 单击画布中的行,javascript,canvas,line,Javascript,Canvas,Line,如果单击画布中的行,是否可以获取信息 var画布; var x=200; 变量y=200; var-dx=4; var-dy=4; var d=5; 宽度、高度; 函数init(){ canvasE=document.getElementById('game'); canvas=canvasE.getContext('2d'); 宽度=canvasE.width; 高度=canvasE.height; canvasE.addEventListener(“单击”,onClick,false);

如果单击画布中的行,是否可以获取信息

var画布;
var x=200;
变量y=200;
var-dx=4;
var-dy=4;
var d=5;
宽度、高度;
函数init(){
canvasE=document.getElementById('game');
canvas=canvasE.getContext('2d');
宽度=canvasE.width;
高度=canvasE.height;
canvasE.addEventListener(“单击”,onClick,false);
画圈();
}
函数drawCircle(){
清除();
arc(x-1,y-1,d,0,Math.PI*2,true);
canvas.beginPath();
arc(x-1,y-1,d,0,Math.PI*2,true);
canvas.closePath();
canvas.fill();
canvas.beginPath();
canvas.moveTo(20,20);
canvas.lineTo(150100);
canvas.stroke();
//检查是否在当前路径中单击坐标
if(canvas.isPointInPath(x,y)){
document.getElementById(“inPath”).innerHTML=“是”;
}否则{
document.getElementById(“inPath”).innerHTML=“否”;
}
canvas.closePath();
}
函数clear(){
canvas.fillStyle=“#ffffff”;
canvas.fillRect(0,0,宽度,高度);
canvas.fillStyle=“#ff0000”;
帆布。strokeRect(0,0,宽度,高度);
}
函数onClick(e){
var元素=canvasE;
var offsetX=0,offsetY=0
if(元素offsetParent){
做{
offsetX+=element.offsetLeft;
offsetY+=element.offsetTop;
}而((element=element.offsetParent));
}
x=e.pageX-抵销x;
y=e.pageY-偏移;
画圈();
document.getElementById(“info”).value=“x:+x+”,y:+y;
}
init()
canvas,输入{
利润率:10px;
文本对齐:居中;
}
基于,请注意,每个像素在数组中表示为4个元素,即数据[0]=红色的(0,0),数据[1]=绿色的(0,0),数据[2]=蓝色的(0,0),数据[3]=阿尔法的(0,0),数据[4]=红色的(0,1)

var画布;
var x=200;
变量y=200;
var-dx=4;
var-dy=4;
var d=5;
宽度、高度;
函数init(){
canvasE=document.getElementById('game');
canvas=canvasE.getContext('2d');
宽度=canvasE.width;
高度=canvasE.height;
canvasE.addEventListener(“单击”,onClick,false);
画圈();
}
函数drawCircle(){
清除();
arc(x-1,y-1,d,0,Math.PI*2,true);
canvas.beginPath();
arc(x-1,y-1,d,0,Math.PI*2,true);
canvas.closePath();
canvas.fill();
canvas.beginPath();
canvas.moveTo(20,20);
canvas.lineTo(150100);
canvas.stroke();
//检查是否在当前路径中单击坐标
if(canvas.isPointInPath(x,y)){
document.getElementById(“inPath”).innerHTML=“是”;
}否则{
document.getElementById(“inPath”).innerHTML=“否”;
}
canvas.closePath();
}
函数clear(){
canvas.fillStyle=“#ffffff”;
canvas.fillRect(0,0,宽度,高度);
canvas.fillStyle=“#ff0000”;
画布.strokeRect(0,0,宽度,高度);
}
函数onClick(e){
var元素=canvasE;
var offsetX=0,
offsetY=0
if(元素offsetParent){
做{
offsetX+=element.offsetLeft;
offsetY+=element.offsetTop;
}而((element=element.offsetParent));
}
x=e.pageX-抵销x;
y=e.pageY-偏移;
document.getElementById(“info”).value=“x:+x+”,y:+y;
函数像素索引(x,y){
返回4*(y*canvasE.width+x);
}
//数据是一个数组,其中每4个元素定义一个像素,分别为红色、绿色、蓝色和alpha
var data=canvas.getImageData(0,0,canvasE.width,canvasE.height);
var pixelIndexStart=pixelIndex(x,y);
//只需要前三个就可以看有没有画出来的东西
var red=255-数据[pixelIndexStart+0];
var green=255-数据[pixelIndexStart+1];
var blue=255-数据[pixelIndexStart+2];
var hasLine=红色+绿色+蓝色>0;
document.getElementById(“info”).value='有行:'+hasLine;
画圈();
}
init()
canvas,
输入{
利润率:10px;
文本对齐:居中;
}