To calculate an angle from a triangle's sides.
Use the 'law of cosines' :
<?php
// a²+b²-c²
// cosC = --------
// 2ab
function calculateAngle($c,$a,$b)
{
$angleInRadians=acos((pow($a,2) + pow($b,2) - pow($c,2)) / (2 * $a * $b));
return rad2deg($angleInRadians);
}
?>
$a, $b, $c are the triangle sides.
The function returns the angle opposite side c, in degrees.
acos
(PHP 4, PHP 5)
acos — 逆余弦(アークコサイン)
説明
float acos
( float $arg
)
arg のアークコサインをラジアンで返します。 acos() は cos() の逆関数で、 acos() がとりうる範囲内のすべての a について a==cos(acos(a)) が成立します。
パラメータ
- arg
-
処理する角度。
返り値
arg のアークコサインをラジアンで返します。
acos
anthony at interiorgoodsdirect dot com
05-Dec-2007 10:28
05-Dec-2007 10:28
zoltan dot szentesi at nokia dot com
06-Aug-2006 07:29
06-Aug-2006 07:29
Wondering what is the use of 'acos' function?
It is essential in games, animations and drawings to determine the location of two objects relating to each other.
To the point: the angle of two vectors is calculated by
v1X*v2X + v1Y*v2Y
acos(--------------------------)=angle between two vectors.
|v1| * |v2|
|v1| and |v2| are the length of the vectors and calculated using Pithagoras-formula: |v1|=sqrt(v1X*v1X + v1Y*v1Y)
This helped me to calculate and share given space for 'n' amount of objects so that they don't overlap.
Enjoy! :-)