Math 如何在没有舍入误差的情况下获得六边形边的坐标?

Math 如何在没有舍入误差的情况下获得六边形边的坐标?,math,canvas,geometry,kineticjs,rounding-error,Math,Canvas,Geometry,Kineticjs,Rounding Error,我需要在JavaScript中生成6个坐标(x,y),表示六边形的边,但是我需要结果没有“舍入错误”,我如何实现这一点?当我有舍入误差时,如果六边形足够大,在坐标处绘制的圆之间会有一些不需要的空间,或者换句话说,它们不能精确地对齐在一起 也许用来计算坐标的数学不需要某些方法,比如cos或sin?但如果没有,我有什么选择?我试着用BigDecimal()来表达数学,但它似乎没有改变任何东西,尽管也许我用错了,我宁愿不用它 无效方法1: 无效方法2: 小型: 大型: 您不能在离散化屏幕上精确绘制正

我需要在JavaScript中生成6个坐标(x,y),表示六边形的边,但是我需要结果没有“舍入错误”,我如何实现这一点?当我有舍入误差时,如果六边形足够大,在坐标处绘制的圆之间会有一些不需要的空间,或者换句话说,它们不能精确地对齐在一起

也许用来计算坐标的数学不需要某些方法,比如cos或sin?但如果没有,我有什么选择?我试着用BigDecimal()来表达数学,但它似乎没有改变任何东西,尽管也许我用错了,我宁愿不用它

无效方法1:

无效方法2:

小型:

大型:


您不能在离散化屏幕上精确绘制正六边形;你只能让它看起来好看。(cosπ/3,sinπ/3)=(1/2,√3/2)。@EricJablow那么有没有可能让它看起来比上图中的更好,或者这是最好的办法?恐怕我不明白(cosπ/3,sinπ/3)=(1/2,√3/2)“确切地说或如何应用于我的问题,以某种方式应用于我的代码是否会使圆圈更好地对齐?这是可能的;您将需要近似坐标,多边形将仅接近规则。求正多边形的坐标需要简单的三角法。