Учитывая любые две точки на компасе (начальный диапазон и конечный диапазон), чтобы сформировать диапазон. Пример от 270 (начальный диапазон) градусов до 45 (конечный диапазон) градусов и с учетом другой точки, скажем, 7, как я могу работать, если эта точка находится между начальным и конечным диапазоном?
Я пытаюсь написать какой-нибудь код, чтобы он работал, если ветер (в вышеуказанном пункте 3) дует с моря или с суши, где земля определяется по диапазону начала и конца диапазона.
Большое спасибо
Andy
Обновление: 10.11.2010 18: 46BST
Из решения @ sth, кажется, следующее работает как ожидалось.
#!/usr/bin/perl -w
sub isoffshore {
my ( $beachstart,$beachend,$wind) = @_;
if( $beachend < $beachstart) {
$beachend += 360;
}
if ($wind < $beachstart){
$wind += 360;
}
if ($wind <= $beachend){
print ("Wind is Onshore\n");
return 0;
}else{
print ("Wind is Offshore\n");
return 1;
}
}
isoffshore ("0","190","3"); #Should be onshore
isoffshore ("350","10","11"); #Should be offshore
isoffshore ("270","90","180");#Should be offshore
isoffshore ("90","240","0"); #Should be offshore
isoffshore ("270","90","180");#Should be offshore
isoffshore ("0","180","90"); #Should be onshore
isoffshore ("190","0","160"); #Should be offshore
isoffshore ("110","240","9"); #Should be offshore
isoffshore ("0","180","9"); #Should be onshore
isoffshore ("0","180","179"); #Should be onshore
Результаты
@localhost ~]$ ./offshore2.pl
Wind is Onshore
Wind is Offshore
Wind is Offshore
Wind is Offshore
Wind is Offshore
Wind is Onshore
Wind is Offshore
Wind is Offshore
Wind is Onshore
Wind is Onshore