math - 使用小册子计算半圆的主弧
问题描述
我正在使用传单绘制半圆,并且使用它绘制小弧线没有问题:
L.semiCircle([51.5, -0.09], {
radius: 500,
startAngle: 45,
stopAngle: 135
}).addTo(map);
但是要画一条主要的弧线我遇到了麻烦,因为有时要按顺时针方向绘制点,有时要按逆时针方向绘制点,但我不知道它们朝哪个方向移动,它可以改变从地图到地图,所以不能有一个万能的解决方案?我有一个起点、终点和半径。我可以使用 getBearing 计算来获取 startAngle 和 endAngle。
我认为这个数学会给我中点:
double c = Math.Atan2(arc.start.lat, arc.end.lat, arc.start.lng, arc.end.lng);
double x_mid = R * Math.Cos(c);
double y_mid = R * Math.Sin(c);
但这会给我点之间的圆上最短的点,我想要主弧而不是次弧,我如何获得主弧 x_mid 和 y_mid 以便我可以在传单半圆 getDirection 中使用它?
L.semiCircle([arc.start.lat, arc.start.lng], { radius: arc.radius })
.setDirection(90, 90)
.addTo(map);
或者,还有更好的方法?
希望这是有道理的。谢谢!!!
解决方案
推荐阅读
- macos - how to change the notification close/action button text on macos catalina
- google-api - Add attachments to google calendar in someone else events
- r - (速度挑战)任何更快的方法来计算两个矩阵的行之间的距离矩阵,就欧几里得距离而言?
- c# - System.Data.SqlClient.SqlException:'操作数类型冲突:datetime2 与十进制不兼容
- azure-devops - 拉取请求弹出一个确认框
- java - 日期从数据库显示为前一天到前端
- angular - Angular 组件缺少模板
- c++ - 智能指针是否会删除由 new 定义的内存
- python - python对象的身份
- python-2.7 - Subprocess.Popen() 在终端上工作,而不是在 VSCode 上