我正在开发一个自我arduino项目,试图让我的代码在过去3天内工作而没有任何成功。 我在python中编写代码以使主要思想工作,而不是尝试将其重写为基于arduino的系统。
self=[[1.23456,2.23456]]
list=[[1.75087,2.03031],[1.78371,2.04686],[1.78413,2.04696],[1.79346,2.09962]]
counter=0
for i in list:
if abs(self[0]-i[0])<0.00165 and abs(self[1]-i[1])<0.00165:
counter=1
else:
counter=0
print counter
这个想法应该非常简单,首先你有自己(经度/纬度),以及列出的嵌套列表。 for循环应检查列表中的每个项目以及它与自我的距离(abs)。
我是c#和arduino的初学者,而且无法让逻辑让它发挥作用。
感谢您的帮助。
答案 0 :(得分:0)
你的代码很好,除了self应该是列表而不是列表列表。其次,在循环内打印计数器。
self=[1.23456,2.23456]
list=[[1.75087,2.03031],[1.78371,2.04686],[1.78413,2.04696],[1.79346,2.09962]]
counter=0
for i in list:
if abs(self[0]-i[0])<0.00165 and abs(self[1]-i[1])<0.00165:
counter=1
else:
counter=0
print counter
答案 1 :(得分:0)
Arduino看起来像C:
double selfLat = 1.23456;
double selfLon = 2.23456;
double list[4][2] = {
{1.75087,2.03031},
{1.78371,2.04686},
{1.78413,2.04696},
{1.79346,2.09962}
};
int counter=0;
for(int i=0; i<4; i++)
{
int test1 = abs(selfLat - list[i][0]) < 0.00165;
int test2 = abs(selfLon - list[i][1]) < 0.00165;
if ( test1 && test2 ) counter = 1;
}