Подобно оси X, Y - несколько значений, которые необходимо проверить, как это сделать? - PullRequest
2 голосов
/ 05 июня 2011

Я получил много таблиц, которые нужно проверить на конкретные значения

Мне нужно будет ввести конкретные числа, а затем мне нужна функция, чтобы проверить, найден ли квадратный блок в конкретном регионе, и если да, то какое число получил этот регион (70 или 75).

Значения:

0,00 до -12,00 (левый вертикальный метр) 0,00 до +4,00 (верхний горизонтальный метр)

Числа 75 или 70 - это просто числа, которые установлены для всего блока.

Каждый синий квадратный блок равен 0,25 в обоих метрах.

Например, если я введу -11,00 и +2,00 квадрат, найденный с номером 70, другой пример, когда я положу -5,00 и 2,25 квадрат, найденный с 75, когда ввод -11,00 и +1,00 не пойдут.

Кто-нибудь понял, как это сделать?

таблица http://img709.imageshack.us/img709/9449/imag0965.jpg

Я начал писать функцию, но дошел до того, что просто не знаю, как это сделать.

1 Ответ

1 голос
/ 05 июня 2011

У вас правильная идея. Из рисунка видно, что функции являются линейными в указанной вами области, поэтому вы можете использовать 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
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...