Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.6k views
in Technique[技术] by (71.8m points)

关于js的数学算法题?

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

先说第一个正N边形

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...