2011-06-05 47 views
2

我这就需要为特定值与Axis X,Y类似 - 需要检查多个值,如何操作?

进行检查很多表

我将需要输入特定的数字,然后我需要一个函数来检查,如果方块在特定区域中,如果是这样,什么数地区得到了(70或75)。

值为:

0.00 -12.00为止(左垂直梅特) 0.00至4.00(上部水平梅特)

号75或70只是数字WICH是针对整个块设置。

每个蓝色方块在两个metters都是0.25。

例如,如果我输入-11.00和+2.00平方数找到数字70,另一个例子,当我把-5.00和2.25平方数发现与75,当输入-11.00和+1.00没有去。

任何人都知道如何做到这一点?

table http://img709.imageshack.us/img709/9449/imag0965.jpg

我开始写功能,但我最终到一个地步,我只是不知道如何做到这一点。

+0

不,不,图表是在我的cataloque,我会采取单一图形,并写入到数据库的值。我仍然需要知道如何使功能,bcoz我不知道该图需要采取什么样的价值观。 – Cameleon 2011-06-05 17:39:27

回答

1

你有正确的想法。从图中可以看出,函数在你指定的区域内是线性的,所以你可以使用y = mx + b来得到每一行的方程(我看到至少有4个)。本页面http://www.purplemath.com/modules/slopgrph.htm解释了如何计算所需的直线方程。

一旦你有线的公式,给定一个点(X,Y),你可以使用你的点的X值来计算你的每一行的Y值,然后比较你的点Y和每一个你Ÿ的依次是:

if (Point_Y < y_first){ 
    // in region 1 
} else if(Point_Y >= y_first && Point_Y < y_second){ 
    // region 2 
} else if(Point_Y >= y_second && Point_Y < y_third){ 
    // in region 3 
} .... etc 

你或许应该还检查点是由你,你不知道某些图形的样子超出范围的做图给出的范围。这是更容易做到的:

if(Point_Y <= y_max && Point_Y >= y_min 
    && Point_X <= x_max && Point_X >= x_min){ 
    // in range 
} 
+0

您还必须适当地舍入直线和点值以适合网格点。 – Adam 2011-06-05 18:05:19

+0

没错。如果区域必须完全匹配网格,则必须将“单位”设置为图片中给出单位的长度和每个单元。 – Colin 2011-06-05 18:11:05

+0

Thx家伙,我将不得不现在想:) – Cameleon 2011-06-05 18:13:07