当前位置: 首页>>代码示例>>PHP>>正文


PHP acos函数代码示例

本文整理汇总了PHP中acos函数的典型用法代码示例。如果您正苦于以下问题:PHP acos函数的具体用法?PHP acos怎么用?PHP acos使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了acos函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: estetico_distance

function estetico_distance($lat1, $lon1, $lat2, $lon2, $unit = null)
{
    $theta = $lon1 - $lon2;
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
    $dist = acos($dist);
    $dist = rad2deg($dist);
    $miles = $dist * 60 * 1.1515;
    // Use Theme option of measuring units if no specefic unit is requested
    if ($unit == null) {
        $default_unit = estetico_get_setting('measuring_units');
        if ($default_unit == 'metric') {
            $unit = 'K';
        } else {
            if ($default_unit == 'us') {
                $unit = 'M';
            }
        }
    }
    $unit = strtoupper($unit);
    if ($unit == "K") {
        return $miles * 1.609344;
    } else {
        if ($unit == "N") {
            return $miles * 0.8683999999999999;
        } else {
            return $miles;
        }
    }
}
开发者ID:pistonsky,项目名称:taivilla,代码行数:29,代码来源:helpers.php

示例2: distance

 /**
  * GET DISTANCE BETWEEN LOCATION AND CAFES
  * @param $lat1
  * @param $lon1
  * @param $lat2
  * @param $lon2
  * @param $unit
  * @param $limit
  * @param $id
  * @return array|bool
  */
 public function distance($lat1, $lon1, $lat2, $lon2, $unit, $limit, $id)
 {
     $theta = $lon1 - $lon2;
     $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
     $dist = acos($dist);
     $dist = rad2deg($dist);
     $miles = $dist * 60 * 1.1515;
     $unit = strtoupper($unit);
     //$miles = round($miles);
     $location = $this->cafe->find($id);
     $phone = $location->phone ? '<br/>' . $location->phone : null;
     if (strlen($location->image) < 1) {
         $image = URL::asset('library/img/loc-noimg.jpg');
     } else {
         $image = URL::asset('uploads/store_images/' . $location->image);
     }
     $array = array();
     if ($miles <= $limit) {
         array_push($array, ['image' => $image, 'miles' => intval($miles), 'id' => $location->id, 'name' => $location->name, 'address' => $location->address . '<br/>' . $location->city . ', ' . $location->state . ' ' . $location->zip_code . $phone, 'lat' => $location->lat, 'lng' => $location->lng, 'state' => $location->state, 'country' => $location->country, 'bakery' => $location->bakery, 'icecream' => $location->icecream, 'coffee' => $location->coffee, 'frozenyogurt' => $location->frozenyogurt, 'smoothies' => $location->smoothies, 'wifi' => $location->wifi, 'curbside' => $location->curbside, 'cookie' => $location->cookie, 'savory' => $location->savory, 'map' => $location->maps_url, 'facebook' => $location->facebook_url, 'online_order' => $location->online_order, 'coming_soon' => $location->coming_soon]);
         return $array;
     }
     return false;
     //return $miles;
     //        if ($unit == "K") {
     //            return ($miles * 1.609344);
     //        } else if ($unit == "N") {
     //            return ($miles * 0.8684);
     //        } else {
     //            return round($miles). ' Miles';
     //        }
 }
开发者ID:wearecolossal,项目名称:nestlecafe,代码行数:42,代码来源:LocationController.php

示例3: calculateDistance

 /**
  * Calculate distance between two coord sets
  * @author zbrown
  *
  * @param ApiRequestObject $apiRequest
  * @return array
  */
 public function calculateDistance(ApiRequestObject $apiRequest)
 {
     $primaryLatitude = $apiRequest->getLatitude();
     $primaryLongitude = $apiRequest->getLongitude();
     $secondaryLatitude = $apiRequest->getSecondaryLatitude();
     $secondaryLongitude = $apiRequest->getSecondaryLongitude();
     $metricUnit = $apiRequest->getMetricUnit();
     $roundMath = $apiRequest->getRoundMath();
     $payload = array();
     $theta = $primaryLongitude - $secondaryLongitude;
     $dist = sin(deg2rad($primaryLatitude)) * sin(deg2rad($secondaryLatitude)) + cos(deg2rad($primaryLatitude)) * cos(deg2rad($secondaryLatitude)) * cos(deg2rad($theta));
     $dist = acos($dist);
     $dist = rad2deg($dist);
     $miles = $dist * 60 * 1.1515;
     $unit = strtolower($metricUnit);
     if ($unit == 'k') {
         $distance = $miles * 1.609344;
         $payload['unitName'] = 'kilometers';
     } else {
         if ($unit == 'n') {
             $distance = $miles * 0.8683999999999999;
             $payload['unitName'] = 'nautical miles';
         } else {
             $distance = $miles;
             $payload['unitName'] = 'miles';
         }
     }
     if (!empty($roundMath)) {
         $final = round($distance, $roundMath);
     } else {
         $final = $distance;
     }
     $payload = ['distance' => $final, 'metric' => strtoupper($apiRequest->getMetricUnit())];
     return $payload;
 }
开发者ID:OpenGeoNet,项目名称:FreeGeoAPI,代码行数:42,代码来源:CalculateModel.php

示例4: distance

 /**
  * @get distance from latitude and longitute
  *
  * @param float $lat_from
  * @param float $long_from
  * @param float $lat_to
  * @param float *long_to
  * @param $unit options k, m, n, Default k
  *
  * @return float
  */
 public static function distance($lat_from, $long_from, $lat_to, $long_to, $unit = 'k')
 {
     /*** distance unit ***/
     switch ($unit) {
         /*** miles ***/
         case 'm':
             $unit = 3963;
             break;
             /*** nautical miles ***/
         /*** nautical miles ***/
         case 'n':
             $unit = 3444;
             break;
         default:
             /*** kilometers ***/
             $unit = 6371;
     }
     /*** 1 degree = 0.017453292519943 radius ***/
     $degreeRadius = deg2rad(1);
     /*** convert longitude and latitude to radians ***/
     $lat_from *= $degreeRadius;
     $long_from *= $degreeRadius;
     $lat_to *= $degreeRadius;
     $long_to *= $degreeRadius;
     /*** apply the Great Circle Distance Formula ***/
     $dist = sin($lat_from) * sin($lat_to) + cos($lat_from) * cos($lat_to) * cos($long_from - $long_to);
     /*** radius of earth * arc cosine ***/
     return $unit * acos($dist);
 }
开发者ID:Alex-AG,项目名称:exeltek-mima,代码行数:40,代码来源:Utils.php

示例5: get_bearing

 /**
  * Get bearing from position to another
  *
  * Code from http://www.corecoding.com/getfile.php?file=25
  */
 static function get_bearing(org_routamc_positioning_spot $from, org_routamc_positioning_spot $to)
 {
     if (round($from->longitude, 1) == round($to->longitude, 1)) {
         if ($from->latitude < $to->latitude) {
             $bearing = 0;
         } else {
             $bearing = 180;
         }
     } else {
         $dist = org_routamc_positioning_utils::get_distance($from, $to, 'N');
         $arad = acos((sin(deg2rad($to->latitude)) - sin(deg2rad($from->latitude)) * cos(deg2rad($dist / 60))) / (sin(deg2rad($dist / 60)) * cos(deg2rad($from->latitude))));
         $bearing = $arad * 180 / pi();
         if (sin(deg2rad($to->longitude - $from->longitude)) < 0) {
             $bearing = 360 - $bearing;
         }
     }
     $dirs = array('N', 'E', 'S', 'W');
     $rounded = round($bearing / 22.5) % 16;
     if ($rounded % 4 == 0) {
         $dir = $dirs[$rounded / 4];
     } else {
         $dir = $dirs[2 * floor((floor($rounded / 4) + 1) % 4 / 2)];
         $dir .= $dirs[1 + 2 * floor($rounded / 8)];
     }
     return $dir;
 }
开发者ID:abbra,项目名称:midcom,代码行数:31,代码来源:utils.php

示例6: get_nearest_timezone

 public static function get_nearest_timezone($cur_lat, $cur_long, $country_code = '')
 {
     $timezone_ids = $country_code ? DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $country_code) : DateTimeZone::listIdentifiers();
     if ($timezone_ids && is_array($timezone_ids) && isset($timezone_ids[0])) {
         $time_zone = '';
         $tz_distance = 0;
         //only one identifier?
         if (count($timezone_ids) == 1) {
             $time_zone = $timezone_ids[0];
         } else {
             foreach ($timezone_ids as $timezone_id) {
                 $timezone = new DateTimeZone($timezone_id);
                 $location = $timezone->getLocation();
                 $tz_lat = $location['latitude'];
                 $tz_long = $location['longitude'];
                 $theta = $cur_long - $tz_long;
                 $distance = sin(deg2rad($cur_lat)) * sin(deg2rad($tz_lat)) + cos(deg2rad($cur_lat)) * cos(deg2rad($tz_lat)) * cos(deg2rad($theta));
                 $distance = acos($distance);
                 $distance = abs(rad2deg($distance));
                 // echo '<br />'.$timezone_id.' '.$distance;
                 if (!$time_zone || $tz_distance > $distance) {
                     $time_zone = $timezone_id;
                     $tz_distance = $distance;
                 }
             }
         }
         return $time_zone;
     }
     return 'unknown';
 }
开发者ID:nitinprajapati1404,项目名称:YiiGeneralAdmin,代码行数:30,代码来源:TimeZone.php

示例7: calculateDistance

 public function calculateDistance($lat_from, $long_from, $lat_to, $long_to, $unit = 'k')
 {
     switch ($unit) {
         // miles
         case 'm':
             $unit = 3963;
             break;
             // nautical miles
         // nautical miles
         case 'n':
             $unit = 3444;
             break;
             // kilometers
         // kilometers
         default:
             $unit = 6371;
     }
     $degreeRadius = deg2rad(1);
     $lat_from *= $degreeRadius;
     $long_from *= $degreeRadius;
     $lat_to *= $degreeRadius;
     $long_to *= $degreeRadius;
     // apply the Great Circle Distance Formula
     $dist = sin($lat_from) * sin($lat_to) + cos($lat_from) * cos($lat_to) * cos($long_from - $long_to);
     // radius of earth * arc cosine
     return $unit * acos($dist);
 }
开发者ID:hackjatra,项目名称:atmlocator,代码行数:27,代码来源:Atm.php

示例8: getShape

 public function getShape()
 {
     $c = $this->_points[2];
     // base
     $b = $this->_points[1];
     // sides
     $a = $this->_points[0];
     // calculate angle, cosine rule
     $alpha = acos((pow($b, 2) + pow($c, 2) - pow($a, 2)) / (2 * $b * $c));
     // pythag to calc height and y distance
     $height = abs(sin($alpha)) * $b;
     $width = abs(cos($alpha)) * $b;
     $x = 0;
     // start point
     $y = 100;
     $points = array($x, $y, $x + $c, $y, $x + $width, $y - $height);
     // draw
     $image = imagecreatetruecolor(100, 100);
     // sets background to red
     $white = ImageColorAllocate($image, 255, 255, 255);
     ImageFillToBorder($image, 0, 0, $white, $white);
     $blue = imagecolorallocate($image, 0, 0, 255);
     imagefilledpolygon($image, $points, 3, $blue);
     return $image;
 }
开发者ID:nahidacm,项目名称:designpatterns,代码行数:25,代码来源:template-pattern.php

示例9: distanceBetween

 public static function distanceBetween(Geopoint $pointA, Geopoint $pointB, $algorithm, $units)
 {
     switch ($algorithm) {
         case 'haversine':
             $theta = $pointA->getLongitude() - $pointB->getLongitude();
             $dist = sin(deg2rad($pointA->getLatitude())) * sin(deg2rad($pointB->getLatitude())) + cos(deg2rad($pointA->getLatitude())) * cos(deg2rad($pointB->getLatitude())) * cos(deg2rad($theta));
             $dist = acos($dist);
             $distance = rad2deg($dist);
             break;
         case 'flat':
         default:
             $distanceEW = ($pointB->getLongitude() - $pointA->getLongitude()) * cos($pointA->getLatitude());
             $distanceNS = $pointB->getLatitude() - $pointA->getLatitude();
             $distance = sqrt($distanceEW * $distanceEW + $distanceNS * $distanceNS);
             break;
     }
     switch ($units) {
         case self::GEO_UNIT_KM:
             $radius = self::EARTH_RADIUS_KM;
             break;
         case self::GEO_UNIT_MILES:
             $radius = self::EARTH_RADIUS_MILES;
             break;
     }
     $distance *= 2 * pi() * $radius / 360.0;
     return $distance;
 }
开发者ID:weejames,项目名称:geotools,代码行数:27,代码来源:Tools.php

示例10: get_bearing

 /**
  * Get bearing from position to another
  *
  * Code from http://www.corecoding.com/getfile.php?file=25
  */
 function get_bearing($from, $to)
 {
     if (round($from['longitude'], 1) == round($to['longitude'], 1)) {
         if ($from['latitude'] < $to['latitude']) {
             $bearing = 0;
         } else {
             $bearing = 180;
         }
     } else {
         $dist = org_routamc_positioning_utils::get_distance($from, $to, 'N');
         $arad = acos((sin(deg2rad($to['latitude'])) - sin(deg2rad($from['latitude'])) * cos(deg2rad($dist / 60))) / (sin(deg2rad($dist / 60)) * cos(deg2rad($from['latitude']))));
         $bearing = $arad * 180 / pi();
         if (sin(deg2rad($to['longitude'] - $from['longitude'])) < 0) {
             $bearing = 360 - $bearing;
         }
     }
     $dirs = array("N", "E", "S", "W");
     $rounded = round($bearing / 22.5) % 16;
     if ($rounded % 4 == 0) {
         $dir = $dirs[$rounded / 4];
     } else {
         $dir = $dirs[2 * floor((floor($rounded / 4) + 1) % 4 / 2)];
         $dir .= $dirs[1 + 2 * floor($rounded / 8)];
     }
     return $dir;
 }
开发者ID:nemein,项目名称:openpsa,代码行数:31,代码来源:utils.php

示例11: Generate

    function Generate($level)
    {
        $CI =& get_instance();
        $CI->load->library('10/Szogfuggvenyek/Haromszog_tangens', NULL, 'tangens');
        $node = 'AC';
        $length = rand(ceil($level / 2), $level);
        $AB = $length + rand(ceil($level / 2), $level);
        $question = 'Az $ABC$ derékszögű háromszög $' . $node . '$ befogója $' . $length . '$ cm, $AB$ átfogója $' . $AB . '$ cm hosszú. Számítsa ki az $ABC$ háromszög hegyesszögeinek nagyságát legalább két tizedesjegy pontossággal!';
        $alpha = toDeg(acos($length / $AB));
        $beta = 90 - $alpha;
        $alphatext = str_replace('.', ',', round($alpha * 100) / 100);
        $betatext = str_replace('.', ',', round($beta * 100) / 100);
        $correct = array(round1($alpha), round1($beta));
        $labels = array('$\\alpha$', '$\\beta$');
        $solution = '$\\alpha=' . $alphatext . '°$ és $\\beta=' . $betatext . '°$.';
        $hints[][] = 'Rajzoljunk egy derékszögű háromszöget:' . $CI->tangens->Triangle();
        $hints[][] = 'Tudjuk, hogy az $\\textcolor{blue}{' . $node . '}$ befogó $' . $length . '$ cm hosszú:' . $CI->tangens->Triangle([$node], [$length], ['blue']);
        $hints[][] = 'Tudjuk, hogy az $\\textcolor{green}{AB}$ átfogó $' . $AB . '$ cm hosszú:' . $CI->tangens->Triangle([$node, 'AB'], [$length, $AB], ['blue', 'green']);
        $page[] = 'Az $\\alpha$ szög <b>koszinusza</b> a szög melletti befogó ($AC$) és az átfogó ($AB$) hányadosa:' . '$$\\cos\\alpha=\\frac{\\textcolor{blue}{AC}}{\\textcolor{green}{AB}}=' . '\\frac{\\textcolor{blue}{' . $length . '}}{\\textcolor{green}{' . $AB . '}}' . '$$';
        $page[] = 'Az $\\alpha$ szöget úgy kapjuk meg, ha a hányados <b>arkusz koszinuszát</b> vesszük (ami a koszinusz függvény inverze), és az eredményt két tizedesjegyre kerekítjük:$$\\alpha=\\arccos\\frac{\\textcolor{blue}{' . $length . '}}{\\textcolor{green}{' . $AB . '}}=' . $alphatext . '°$$';
        $page[] = '<b>Megjegyzés</b>: az eredményt a következőképpen lehet kiszámolni számológéppel:
			<ol>
				<li>Állítsuk be a gépet <b>DEG</b> módba (ha még nem tettük):<br /><kbd>MODE</kbd> <kbd>DEG</kbd></li>
				<li>Az koszinusz függvény inverzét a <b>cos<sup>-1</sup></b> gomb segítségével lehet kiszámolni:<br />' . '<kbd>' . $length . '</kbd> <kbd>&divide;</kbd> <kbd>' . $AB . '</kbd> <kbd>=</kbd> <kbd>Shift</kbd> <kbd>cos<sup>-1</sup></kbd> <kbd>=</kbd></li>
			</ol>';
        $page[] = 'Tehát az $\\alpha$ szög <span class="label label-success">$' . $alphatext . '°$</span>.';
        $hints[] = $page;
        $page = [];
        $page[] = 'Mivel a háromszög belső szögeinek összege $180°$, ezért a $\\beta$ szöget már könnyen ki lehet számolni:$$\\beta=180°-90°-' . $alphatext . '°$$';
        $page[] = 'Tehát a $\\beta$ szög <span class="label label-success">$' . $betatext . '°$</span>.';
        $hints[] = $page;
        return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints, 'labels' => $labels, 'type' => 'array');
    }
开发者ID:zsebtanar,项目名称:zsebtanar_v4,代码行数:33,代码来源:Haromszog_koszinusz.php

示例12: isInArea

 /**
  * Compare two position and return is in area
  * @param double $areaLat
  * @param double $areaLng
  * @param double $radius
  * @param double $targetLat
  * @param double $targetLng
  * @return boolean
  */
 public function isInArea($lat1, $lon1, $radius, $lat2, $lon2)
 {
     $theta = $lon1 - $lon2;
     $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
     $dist = acos($dist);
     $dist = rad2deg($dist);
     $miles = $dist * 60 * 1.1515;
     $meter = $miles * 1609.344;
     if ($meter <= $radius) {
         return true;
     } else {
         return false;
     }
     // 		if ($unit == "K") {
     // 			return ($miles * 1.609344);
     // 		} else if ($unit == "N") {
     // 			return ($miles * 0.8684);
     // 		} else {
     // 			return $miles;
     // 		}
     // 		}
     // 		echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M") . " Miles<br>";
     // 		echo distance(32.9697, -96.80322, 29.46786, -98.53506, "K") . " Kilometers<br>";
     // 		echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N") . " Nautical Miles<br>";
 }
开发者ID:marvinchau,项目名称:sss_server,代码行数:34,代码来源:LocationModel.php

示例13: bearing

function bearing($lat1, $lon1, $lat2, $lon2)
{
    if (round($lon1, 1) == round($lon2, 1)) {
        if ($lat1 < $lat2) {
            $bearing = 0;
        } else {
            $bearing = 180;
        }
    } else {
        $dist = distance($lat1, $lon1, $lat2, $lon2, 'N');
        $arad = acos((sin(deg2rad($lat2)) - sin(deg2rad($lat1)) * cos(deg2rad($dist / 60))) / (sin(deg2rad($dist / 60)) * cos(deg2rad($lat1))));
        $bearing = $arad * 180 / pi();
        if (sin(deg2rad($lon2 - $lon1)) < 0) {
            $bearing = 360 - $bearing;
        }
    }
    $dirs = array("N", "E", "S", "W");
    $rounded = round($bearing / 22.5) % 16;
    if ($rounded % 4 == 0) {
        $dir = $dirs[$rounded / 4];
    } else {
        $dir = $dirs[2 * floor((floor($rounded / 4) + 1) % 4 / 2)];
        $dir .= $dirs[1 + 2 * floor($rounded / 8)];
        #if ($rounded % 2 == 1)
        #  $dir = $dirs[round_to_int($rounded/4) % 4] . "-" . $dir;
    }
    $var_dist = "";
    #return $dir;
    if (isset($dist)) {
        $var_dist = $dist . " miles";
    }
    return round($bearing, 0) . "&#186; " . $dir . " " . $var_dist;
}
开发者ID:orio33,项目名称:Cloudlog,代码行数:33,代码来源:Qra.php

示例14: getDistanceFrom

 /**
  * Get distance from another position
  *
  * @param PositionAbstract $position Position to get distance from.
  *
  * @param string $units Units to return. Default (m) is miles.
  * n = nautical miles, k = kilometers,
  * f = feet, i = inches.
  *
  * @param float $adjustment Adjust the distance to take turns into account.
  * 1.125 seems to be the most accurate.
  *
  * @return float Distance in the specified units
  */
 public function getDistanceFrom(PositionAbstract $position, $units = 'm', $adjustment = 1.125)
 {
     $miles = $adjustment * 3959 * acos(cos(deg2rad($this->getLat())) * cos(deg2rad($position->getLat())) * cos(deg2rad($this->getLng()) - deg2rad($position->getLng())) + sin(deg2rad($this->getLat())) * sin(deg2rad($position->getLat())));
     switch (strtolower($units)) {
         case 'k':
             // kilometers
             return $miles * 1.609344;
             break;
         case 'n':
             // nautical mile
             return $miles * 0.868976242;
             break;
         case 'f':
             // feet
             return $miles * 5280;
             break;
         case 'i':
             // inches
             return $miles * 63360;
             break;
         case 'm':
         default:
             return $miles;
             break;
     }
 }
开发者ID:deerob,项目名称:PHP-Google-Maps,代码行数:40,代码来源:PositionAbstract.php

示例15: distance

 private function distance($lat1, $lon1, $lat2, $lon2, $unit)
 {
     global $source;
     $theta = $lon1 - $lon2;
     $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
     $dist = acos($dist);
     $dist = rad2deg($dist);
     $miles = $dist * 60 * 1.1515;
     $unit = strtoupper($unit);
     $distDesc = "";
     if ($unit == "K") {
         $meters = intval($miles * 1.609344 * 1000);
         if ($meters > 1000) {
             $distDesc1 = intval($meters / 1000) . '公里';
             $distDesc2 = intval($meters % 1000) . '公尺';
             $distDesc = $distDesc1 . $distDesc2;
         } else {
             $distDesc = $meters . '公尺';
         }
     } else {
         if ($unit == "N") {
             $distDesc = $miles * 0.8683999999999999 + '';
         } else {
             $distDesc = $miles + '';
         }
     }
     return array("dist" => $meters, "distDesc" => $distDesc);
 }
开发者ID:bazaarstw,项目名称:bazaars.tw,代码行数:28,代码来源:Store.php


注:本文中的acos函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。