关于js的数学算法题?

淋着
  • 232

如下图所示在这个区域存在这样一个内切圆
image.png
给定不定个数(>=3)个点,这些点必须构成正多边形,如何求这些点的坐标?
并且在这个正多边形构成的圆上,在给定不定个数(>=3)个点,这些点必须构成正多边形,如何求这些点的坐标?再次重复
如何得到这三次给定点的坐标?
哪位大佬知道如何用js实现这个过程吗?
这里有个参考公式,正多边形内切圆的半径公式
image.png

回复
阅读 715
2 个回答
✓ 已被采纳

先说第一个正N边形

将圆心和多边形的各顶点相连,得到N个角度为A(A = 2π / N)的扇形。将其中一个扇形的左端置于圆的最高点,得坐标(r,2r)。顺时针看,该扇形的另一端为第二个点,可根据半径r及角度A,配合勾股定理算出坐标(r + rsinA, r + rcosA ),下一个以此类推(r + rsin2A, r + rcos2A)。算完右半边可以镜像得左半边

第二个正N边形的计算方案与第一个一样,唯二变化的是半径(这个根据你给的公式可以算)和上下留空,算y轴坐标的时候注意下就可以了

这个问题描述是不清楚的,比如第一个问题,这里正多边形上的N个点是在定点位置还是边上任意一点(包括顶点),这里的要求是不同的,如果要求是顶点上,则这些点其实都属于某个圆上的点,则先找一个圆心和半径,再根据不同正多边形对应扇面角度可以很快确定相应点(以某个点为起始,其实是存在无穷可能的),如果是后一种情况,则会更复杂,但其实也可以用相应办法先确定正多边形(同时就确定了各个边),再抽取相应数量的点。
注意你的要求是给出相应的点的一个解,而并不是具体唯一的解(本身就有无穷解)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏