2016-06-01 167 views
0

我试图找到一种方法,我可以单击各个像素,然后像素的XY坐标将被记录/打印。我发现在线下面的代码,但它只显示最后点击的像素的坐标。有没有办法保存/打印我点击过的所有像素的坐标。我正在为Java applet做这件事,这会让我更容易制作多边形。 我宁愿输出(当我点击像素)是这样的,这样我就可以复制&粘贴到Java:记录像素onclick的XY坐标

int [] x={x1,x2,x3,x4,x...}; 
int [] y={y1,y2,y3,y4,y...}; 

这里是我发现的代码:

<html> 
 
<head> 
 
<script language="JavaScript"> 
 
function point_it(event){ 
 
\t pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("pointer_div").offsetLeft; 
 
\t pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("pointer_div").offsetTop; 
 
\t document.getElementById("cross").style.left = (pos_x-1) ; 
 
\t document.getElementById("cross").style.top = (pos_y-15) ; 
 
\t document.getElementById("cross").style.visibility = "visible" ; 
 
\t document.pointform.form_x.value = pos_x; 
 
\t document.pointform.form_y.value = pos_y; 
 
} 
 
</script> 
 
</head> 
 
<body> 
 
<form name="pointform" method="post"> 
 
<div id="pointer_div" onclick="point_it(event)" style = "background-image:url('image.jpg');width:2400px;height:1848px;"> 
 
<img src="point.gif" id="cross" style="position:relative;visibility:hidden;z-index:2;"></div> 
 
You pointed on x = <input type="text" name="form_x" size="4" /> - y = <input type="text" name="form_y" size="4" /> 
 
</form> 
 
</body> 
 
</html>

+0

'document.pointform.form_x.value = pos_x; document.pointform.form_y.value = pos_y;'显示位置。这里是对javascript数组的描述:http://www.w3schools.com/js/js_arrays.asp – Sang

回答

0

<html> 
 

 
<head> 
 
    <script language="JavaScript"> 
 
    var x = []; 
 
    var y = []; 
 

 
    function point_it(event) { 
 
     pos_x = event.offsetX ? (event.offsetX) : event.pageX - document.getElementById("pointer_div").offsetLeft; 
 
     pos_y = event.offsetY ? (event.offsetY) : event.pageY - document.getElementById("pointer_div").offsetTop; 
 
     document.getElementById("cross").style.left = (pos_x - 1); 
 
     document.getElementById("cross").style.top = (pos_y - 15); 
 
     document.getElementById("cross").style.visibility = "visible"; 
 
     x.push(pos_x); 
 
     y.push(pos_y); 
 
     document.getElementById("form_x").innerHTML = x; 
 
     document.getElementById("form_y").innerHTML = y; 
 
    }; 
 

 
    function remove_it() { 
 
     x.pop(); 
 
     y.pop(); 
 
     document.getElementById("form_x").innerHTML = x; 
 
     document.getElementById("form_y").innerHTML = y; 
 
    } 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <form name="pointform" method="post"> 
 
    <div id="pointer_div" onclick="point_it(event)" style="background-image:url('image.jpg');width:2400px;height:1848px;"> 
 
     <img src="point.gif" id="cross" style="position:relative;visibility:hidden;z-index:2;"> 
 
    </div> 
 
    You pointed on 
 
    <br>x = <span id="form_x"></span> 
 
    <br>y = <span id="form_y"></span> 
 
    <br> 
 
    <button onclick="remove_it()">remove last</button> 
 
    </form> 
 
</body> 
 

 
</html>

+0

请包括描述以及代码示例。 –

+0

我使用你的代码,它工作得很好,但我有一个问题。有时我会搞砸我点击的位置,我想删除这一点。有没有办法通过按Ctrl + Z或通过删除最后一个点的按钮来删除点? – AA24

+0

您可以添加一个按钮来删除最后一个点。点击它将从两个数组中删除最后一个元素。查看编辑的代码。 – sudhirk496