Javascript 扫描多维json_编码数组
请原谅格式化--在这个问题中,它一直给我“您的代码未格式化”错误。我有一个代码,其中包括一个画布,打印图像。然后我跟踪用户的鼠标坐标,如果它们与文本文件中的坐标匹配,我想提示用户。这是一个Web应用程序,用来补充C++ OpenCV程序,它可以检测斑点和它们存在的坐标。文本文件的格式如下:Javascript 扫描多维json_编码数组,javascript,php,json,canvas,blobs,Javascript,Php,Json,Canvas,Blobs,请原谅格式化--在这个问题中,它一直给我“您的代码未格式化”错误。我有一个代码,其中包括一个画布,打印图像。然后我跟踪用户的鼠标坐标,如果它们与文本文件中的坐标匹配,我想提示用户。这是一个Web应用程序,用来补充C++ OpenCV程序,它可以检测斑点和它们存在的坐标。文本文件的格式如下:label x y 001 101 305 是blob 001中坐标(101305)的直线。PHP正在读取每一行并在空格处爆炸 文本文件如下所示: 001 101 303 001 101 304 001 1
label x y
001 101 305
是blob 001中坐标(101305)的直线。PHP正在读取每一行并在空格处爆炸
文本文件如下所示:
001 101 303
001 101 304
001 101 305
001 101 306
001 101 307
001 101 308
001 101 309
001 101 310
001 102 301
001 102 302
//制作画布和放置PNG覆盖图像的函数
var js_array=//将PHP数组转换为javascript对象表示法格式
//需要PHP5.2或更高版本,我相信它在服务器上。它当然在我的本地主机服务器上。
console.log(js_数组);//发展
$(文档).ready(函数(){
window.onload=函数(){
var c=document.getElementById(“solarCanvas”);
var ctx=c.getContext(“2d”);
ctx.fillStyle=“#00FFFF”//青色填充
var img=document.getElementById(“testimage”);
img.src='cpp/images/PNG/imagetesting.PNG';/“cpp/images/”+date+“.PNG”;
ctx.drawImage(img,0,0);
c、 addEventListener('click',function(){},false);
//鼠标移动/clicl时的颜色和坐标功能
$('solarCanvas').mousemove(函数(e){
var c=document.getElementById(“solarCanvas”);
var ctx=c.getContext(“2d”);//临时声明错误修复--找不到根本原因,所以redec
var pos=findPos(本);
var x=e.pageX-位置x;
变量y=e.pageY-位置y;
var coord=“x=”+x+”,y=“+y;
var p=ctx.getImageData(x,y,1,1).data;
var hex=(“#”+000000+rgbToHex(p[0],p[1],p[2])。切片(-6));
$('#status').html(坐标+“
”+hex);
控制台日志(x+”,“+y+”--“+coord+”位于“+hex”);
});
$(“#solarCanvas”)。单击(函数(e){
var c=document.getElementById(“solarCanvas”);
var ctx=c.getContext(“2d”);
var pos=findPos(本);
var xNum=e.pageX-pos.x;
var yNum=e.pageY-pos.y;
var xStr=xNum.toString();
var yStr=yNum.toString();
对于(var i=0;i-1){
警报(“雅虎!”);
}
}
}
log(js_数组);
console.log(xStr);
控制台日志(yStr);
});
}
});
//旧建筑
//混合数组_搜索(混合$pinder,数组$haystack[,bool$strict=false]);
//大海捞针
//伪码
//如果((e.pageX-pos.x)在第2列中存在&((e.pageY-pos.y)在第3列的同一行中){
我已经阅读了这个代码的许多版本,并且正在发布我现在所拥有的。我现在正在严格地使用X坐标。一旦它起作用,我将添加Y。
[...]
我已经考虑到PHP explode&json_encode正在保存字符串的事实,所以我做了一个.toString()函数,但这似乎没有任何帮助。例如,我的控制台日志类似于x/y/pos of x in array/pos of y in array
101
305
-1
-1
下面是对代码的轻微重写 我所做的:
<?php
$file = file("cpp/textdump/coordinates/imagetesting.txt.txt"");
$coordinates = array();
for ($line in $file) {
array_push($coordinates, explode(" ", $line);
}
?>
var coords = <?= json_encode($coordinates) ?>;
这里是对您的代码的轻微重写
我所做的:
为了简单起见,使用迭代器模型将CSV解析更改为分成3列的行
将JS更改为将x坐标与第[1]行匹配,将y坐标与第[2]行匹配
不确定其他代码在成功时打算做什么…看起来您仍在努力
PHP代码:
<?php
$file = file("cpp/textdump/coordinates/imagetesting.txt.txt"");
$coordinates = array();
for ($line in $file) {
array_push($coordinates, explode(" ", $line);
}
?>
var coords = <?= json_encode($coordinates) ?>;
您有问题吗?您希望发生什么,以及实际发生了什么?我希望它返回一个数组值,例如4,因为我的数组有“101”在块4中,实际发生的是,无论我输入什么,我都得到-1。这有很多错误。首先,你将矩阵完全展平到你的$coordinates
数组中。相反,你应该只array\u push($coordinates,explode(“,$uncatXY))
所以你在JS中保留了维度。这将我的数组分成了100行3列。这当然更干净了,也是我的初衷。我现在将继续并尝试再次解决我的问题。@mjxxunm-你不应该在你的问题中添加人们的建议-这只会稀释其他人找到问题的答案稍后。您有问题吗?您希望发生什么,以及实际发生了什么?我希望它返回一个数组值,例如4,因为我的数组有“101”在块4中,实际发生的是,无论我输入什么,我都得到-1。这有很多错误。首先,你将矩阵完全展平到你的$coordinates
数组中。相反,你应该只array\u push($coordinates,explode(“,$uncatXY))
所以您在JS中维护了维度。它将我的数组拆分为100行3列。这是certa