java中圆的平均分割

来源:百度知道 编辑:UC知道 时间:2024/06/22 22:06:20
已知一个圆的中心坐标(x,y)和半径r,要在圆上取n个点,这n个点均匀分布在圆上,怎样获得这,n个点的坐标:我是如下写的,可是结果并不是均匀分布的,请问应该怎样写?
double nx = (x + r * Math.cos((360 / n) * i));
double ny = (y - r * Math.sin((360 / n) * i));

程序会是有误差的,和声明变量的精确度有关!即使你声明的是对的,但是在程序中运算一次会自动的取你声明过的变量的类型的精确值
比如i=1除以3,如果i是双精度型的话,程序中计算结果会默认取到双精度的精确值,这样会有误差,误差是再所难免的,但是可以尽量缩小误差,具体的缩小办法要看你程序的算法了
就是这么多了,要是感觉好的话给分吧

改成:ny=y+....?

怎么会不均匀分布,或者你要求的不是按角度均匀分布(每段圆弧一样长)而是按x(或者y)均匀分布?