12年2个月前IP:广东
728722
4楼
所有的角度,均落在圆上的一个180度扇形内,另一边的180度扇形为空。只需要找到角度a,令a位于空的180度扇形中,便可将圆周从a处展开。

if(任一项角度>a)
then 这一项角度-=360

然后
平均角度 = 求和(每一项角度)/ 项数
if(平均角度<0) then 平均角度+=360
输出 平均角度

例如,输入角度为320 350 10 20共4项。令a等于180度,从180度处展开,
将大于a的每一项减去360,得到: -40 -10 10 20. 求和再除以项数,得到平均角度为-5度。因为-5<0,加360,得到355度,即为所求平均角度。

寻找角度a很简单,将所有角度排序,并检查排序后每相邻两项的差即可。若前后两项之差大于180度,即可将较小一项设为角度a。
评论
文号 / 728722

万流景仰
名片发私信
学术分 16
总主题 1270 帖总回复 8407 楼拥有证书:学者 机友 笔友
注册于 2008/03/29 15:34:00最后登录 2022/01/09 14:09:34
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

已走,勿送

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的