Re: convert degrees to heading

From: Date: Fri, 16 Jul 2004 22:44:04 +0000
Subject: Re: convert degrees to heading
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-190770@lists.php.net to get a copy of this message
Here's a quick script I wrote for it: <?php $deg = $_GET['deg']; // get from URL, for testing atm $deg %= 360; // make sure it doesn't break on eg 560 degrees $deg = ((ceil(($deg-22.5)/45))*45+22.5); // break it up into parts we know, there might be an easier way though, just too tired to see it. switch($deg) {
    case 22.5:
        echo 'W';
        break;
    case 67.5:
        echo 'NW';
        break;
    case 112.5:
        echo 'N';
        break;
    case 157.5:
        echo 'NE';
        break;
    case 202.5:
        echo 'E';
        break;
    case 247.5:
        echo 'SE';
        break;
    case 292.5:
        echo 'S';
        break;
    case 337.5:
        echo 'SW';
        break;
    default:
        echo 'W';
        break;
} ?> René fournier wrote:
I have to write a little function to convert a direction from degrees to a compass -type heading. 0 = West. 90 = North. E.g.: from: 135 degrees to: NW Now, I was planning to write a series of if statements to evaluate e.g., if ($heading_degrees < 112.5 && $heading_degrees > 67.5) {
    $heading_compass = "N";
    }
The works, but it will require N, NNW, NNE, NE, NW, ENE, NWW... many IF statements. Can anyone think of a programatically more elegant and efficient way of converting this type of data? (I suppose this is not really a problem, just a curiosity.) ...Rene


« previous php.general (#190770) next »