扫码关注官方订阅号
修改一下:
已知地图上一点A($coordinate_x,$coordinate_y)和另一点B($x,$y);点A和点B之间的距离是100米,如何求点B中的$y(或者$x),其中$coordinate_x,$x是纬度,$coordinate_y,$y是经度,求$y(或者$x);急需帮助。。。。。。。
业精于勤,荒于嬉;行成于思,毁于随。
已知 A(x,y) 和 与 B的距离是100m,那么在不知道斜率的情况下,B的位置会组成一个圆。
那么至少有2和B点匹配
$r = 100; 假设 b.y 不存在
pow(abs(a['x'] - b['x']), 2) + pow(abs(a['y'] - b['y']), 2) = pow(r, 2)
pow(abs(a['x'] - b['x']), 2)
pow(abs(a['y'] - b['y']), 2)
pow(r, 2)
pow(abs(a['y'] - b['y']), 2) = pow(r, 2) - pow(abs(a['x'] - b['x']), 2)
abs(a['y'] - b['y']) = sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))
abs(a['y'] - b['y'])
sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))
a['y'] - b['y'] = ± sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))
a['y'] - b['y']
±
b 点可以涵盖一个圆,
r 是两者之间距离,也就是半径
//角度转弧度 define('PI', 3.14159265358979324); $d2r = function($d) { return ($d * PI) / 180; }; //这个圆的所有坐标是: for($i = 0; $i < 360;++$i) { $b['x'] = $a['x'] + $r * cos(d2r($i)); $b['y'] = $a['y'] + $r * sin(d2r($i)); }
斜率公式是:
//坐标2,与坐标1形成的斜率(坐标1的x轴正方向的夹角弧度(顺时针)) //http://keisan.casio.com/exec/system/1223508685 $slope = function($p1, $p2) { return atan2($p2['y'] - $p1['y'], $p2['x'] - $p1['x']); };
距离公式是
//坐标1,2 之间的距离 //http://keisan.casio.com/exec/system/1223508685 $distance = function($p1, $p2) { return pow(pow(abs($p2['x'] - $p1['x']), 2) + pow(abs($p2['y'] - $p1['y']), 2), 0.5); };
我用这同一个答案,在这一个社区至少回复了3次类似的问题,莫非这个社区的SEO做的这么不好?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
已知 A(x,y) 和 与 B的距离是100m,那么在不知道斜率的情况下,B的位置会组成一个圆。
如果已知A(x,y) B的x 或 y,以及距离r
那么至少有2和B点匹配
pow(abs(a['x'] - b['x']), 2)+pow(abs(a['y'] - b['y']), 2)=pow(r, 2)pow(abs(a['y'] - b['y']), 2)=pow(r, 2)-pow(abs(a['x'] - b['x']), 2)abs(a['y'] - b['y'])=sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))a['y'] - b['y']=±sqrt(pow(r, 2) - pow(abs(a['x'] - b['x']), 2))如果b什么都不知道
b 点可以涵盖一个圆,
r 是两者之间距离,也就是半径
引用的公式
斜率公式是:
距离公式是
我用这同一个答案,在这一个社区至少回复了3次类似的问题,莫非这个社区的SEO做的这么不好?