趣味数学应用:求小球在一条斜线上的运动轨迹

趣味数学应用:求小球在一条斜线上的运动轨迹_第1张图片

例:(仅实现了第一象限运动,其他象限类似)

已知:x的值为1->8,增量为1,斜线与y轴的夹角为 69.443954780417

main.php

include ('triangle.php') ;

for($x=1; $x<=8; $x++){

     $y = framefunc($x, 69.443954780417);

     printf("移动到 (%s, %s) 
\n"
, $x, $y); } /* 移动到 (1, 0.37499999999999) 移动到 (2, 0.74999999999998) 移动到 (3, 1.125) 移动到 (4, 1.5) 移动到 (5, 1.875) 移动到 (6, 2.2499999999999) 移动到 (7, 2.6249999999999) 移动到 (8, 2.9999999999999) */ // 执行帧动画函数 function framefunc($x, $angle) { //转弧度 $radian = to_radian( $angle ) ; //求弦长 根据 sin(夹角弧度) = 对边/斜边;得到 斜边 = 对边/sin(夹角弧度) $chord = $x/sin($radian); //根据勾股定理,求y点(即线段(0,y)的长度,同时也是角angle的临边) $y = gougu2($x, $chord); return $y; }

trianle.php

//角度转换弧度
function to_radian( $angle )
{
     $_pi = M_PI ;
     return $angle * ( $_pi/180 ) ;
}

//弧度转换角度
function to_angle( $radian )
{
     $_pi = M_PI;
     return $radian * ( 180/$_pi );
}

//勾股定理,通过弦,求勾股
//参数:a 其中一个直角边,c 斜边(弦)
function gougu2($a, $c)
{
     $_a = pow($a, 2);
     $_c = pow($c, 2);

     $_b = $_c - $_a;

     $b = pow($_b, 1/2);

     return $b;
}

//勾股定理,通过勾(角的临边)、股(角的对边)求弦(直角三角形角的斜边)
function gougu($a, $b)
{
     $_a = pow($a, 2);
     $_b = pow($b, 2);

     $_c = $_a + $_b;

     $c = pow($_c, 1/2);

     return $c;
}

笔者编写的VC++版实例:http://pan.baidu.com/s/1jGgs2Su
编译环境:Visual Studio Community 2013

你可能感兴趣的:(游戏编程,图像处理,计算机基础)