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

来源:互联网 发布:经典算法 java 例子 编辑:程序博客网 时间:2024/04/30 03:13

这里写图片描述

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

已知: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) <br />\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

0 0
原创粉丝点击