Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2011, 11:18   #1
a.stayer
 
Регистрация: 10.03.2011
Сообщений: 4
По умолчанию Определение точки на графике. Угроза заморозка.

Добрый день, коллеги..
Есть специальный график, по которому можно определить вероятность наступления Заморозка.



http://www.holodilshchik.ru/index_ho..._Zamorozki.htm

Нужно взять два значения температуры (в 13 часов и 21 час), из первого вычесть второе, и найти на графике точку пересечения температуры в 21 час и разностью, далее поняв, где находится точка пересечения, выдать вероятность в %.

Температура у меня пишется в базу, ее можно вытащить, но как соспоставить с графиком не знаю. Буду признателен за наводку!
Спасибо!

Последний раз редактировалось a.stayer; 10.03.2011 в 12:04.
a.stayer вне форума Ответить с цитированием
Старый 10.03.2011, 12:14   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Температура у меня пишется в базу, ее можно вытащить, но как соспоставить с графиком не знаю. Буду признателен за наводку!
Представь графики в виде функций.
ssdm вне форума Ответить с цитированием
Старый 10.03.2011, 12:27   #3
a.stayer
 
Регистрация: 10.03.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ssdm Посмотреть сообщение
Представь графики в виде функций.
И?

Ну допустим функция нижней линии - "100%-ной" прямой будет Y=0.455*4+1.7.
И что с этим делать?
a.stayer вне форума Ответить с цитированием
Старый 10.03.2011, 12:52   #4
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Ну допустим функция нижней линии - "100%-ной" прямой будет Y=0.455*4+1.7.
Ты наверное это имел в виду Y=0.455*X+1.7 .

Цитата:
И?
А так сложно додумать ? У тебя в базе есть значения температур. Находишь температуру в 21( это условный Y) час и находишь разницу температур м/у 13 и 21 часами( это условный X ). Подставляешь этот X в 100 % функцию и сверяешься значения полученное по формуле и взятое из базы. Если значение из базы меньше полученного по формуле, тогда точно заморозок ,если выше тогда подставляешь в следующую функцию( для 80% вероятности заморозка) и т.д.
Этот алгоритм "тупой". Скорее всего можно математически более красивое решение найти, но для твоих нужд и так сойдет.
ssdm вне форума Ответить с цитированием
Старый 10.03.2011, 12:57   #5
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

что значит
Цитата:
найти на графике точку пересечения температуры в 21 час и разностью
?
Температура в 21 час - это точка. Как можно искать ее пересечение с чем-либо?
Цитата:
И что с этим делать?
нужны функции прямых, пересечение которых ты ищешь.
Нахождению точки пересечения прямых учат в школе.
y = a*x+b
y = c*x+d
решаешь эту систему уравнений и получаешь точку пересечения (x, y)
a*x+b = c*x+d
x(a-c) = d-b
x = (d-b)/(a-c)
полученное x подставляешь в одно из уравнений и получаешь y
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 10.03.2011, 13:06   #6
a.stayer
 
Регистрация: 10.03.2011
Сообщений: 4
По умолчанию

А нет ни у кого куска кода, с определением положения точки относительно многоугольника?
Я думаю, что лучше задать 7 многоугольников, каждому назначить "процентность" и проверять, принадлежит ли точка к многоугольнику.

А в целом - помогли и направили! )) Спасибо!

Последний раз редактировалось a.stayer; 10.03.2011 в 13:11.
a.stayer вне форума Ответить с цитированием
Старый 10.03.2011, 13:15   #7
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Сообщение от Wicort Посмотреть сообщение
что значит

?
Температура в 21 час - это точка. Как можно искать ее пересечение с чем-либо?
В данном случае не точка - а прямая )
По ссылке что автор предоставил весь метод подробно разбирают.


a.stayer
Цитата:
Я думаю, что лучше задать 7 многоугольников, каждому назначить "процентность" и проверять, принадлежит ли точка к многоугольнику.
В твоем случае многоугольники можно задать двумя прямыми( нижней и верхней границей ).
Только зачем ? Проще то не будет.
ssdm вне форума Ответить с цитированием
Старый 11.03.2011, 12:10   #8
a.stayer
 
Регистрация: 10.03.2011
Сообщений: 4
По умолчанию

Пока набросал на перле.

Код:
# Определяем координаты точки для расчета
$x = ($t13 - $t21);
#print $x . "\n";
$y = $t21;
#print $t21 . "\n";

# Определяем характерные линии
$y1=0.4*$x+1.6; #100%
$y2=0.391*$x+2.7; #80%
$y3=0.382*$x+4.7; #60%
$y4=0.382*$x+6.7; #40%
$y5=0.391*$x+8.7; #20%
$y6=0.375*$x+11;  #10

# Делаем проверку

if($y1 > $y) {
  print "Вероятность заморозка 100% !!! \n";
} elsif($y2 >= $y) {
  print "Вероятность заморозка 80% !! \n";
} elsif($y3 >= $y) {
  print "Вероятность заморозка 60% ! \n";
} elsif($y4 >= $y) {
  print "Вероятность заморозка 40% \n";
} elsif($y5 >= $y) {
  print "Вероятность заморозка 20% \n";
} else {
  print "Вероятность заморозка 10% \n";
}
a.stayer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать линии исходящие из точки на графике на оси координат? Pavarotti Microsoft Office Excel 3 27.01.2011 09:06
как двигать точки на графике в excel 2007 diamondonik Microsoft Office Excel 1 16.11.2010 14:51
Определение точки основания перпендикуляра tunyash Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 26.06.2010 19:09
Определение точки в трехмерной сцене F1Book Мультимедиа в Delphi 0 26.05.2009 11:45
Как в TChart получить координаты точки на графике? Влажимир Общие вопросы Delphi 2 07.04.2008 15:37