找回密码
 立即注册
楼主: jquave

[笔记] Unity 用C#如何在球体表面生成均匀分布的坐标点!求算法!?

[复制链接]
发表于 2021-4-22 10:31 | 显示全部楼层
不能用球体中心点加上半径,然后迭代来弄嘛?
发表于 2021-4-22 10:36 | 显示全部楼层
都不均匀,我觉得还不如搞许多随机点 然后按照就近原则组成面,如果面数少那么就直接用正多面体就好了
发表于 2021-4-22 10:38 | 显示全部楼层
不知道题主所说的均匀分布的点是什么意思?是按照均匀分布随机取一个点还是找到一堆点均匀的落在球面上(类似Quasi-Monte Carlo method)?
可以先将球面用任何一种保面积投影(英文是Equal-area map,比如等矩形投影(Equirectangular projection))将球面投影到平面上,再在投影图形上随机取点,然后找到取点的原像就可以做到在球面上随机取点了。

比如上图就是用Equirectangular projection画出来的地图。
类似的,如果题主的问题是在球面取一堆均匀的点的话,也可以现在图上的长方形中均匀的取一堆点(如果要足够“均匀”的话可以用Quasi-Monte Carlo method),然后再球面上找各个点的原像。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-4-22 10:47 | 显示全部楼层
如果是u3d的话……我有个开脑洞的办法…取出一个标准球体的mesh…然后在顶点数组里均匀取点不就行了…前提是顶点数组是有排序的。手边没工具测不了…
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-18 13:04 , Processed in 0.111418 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表