输入球心三维坐标及球半径求算球体的球面坐标数据(C/C++)

近期需要一个输入球心三维坐标以及球半径 得到球体的球面坐标数据这样一个功能(当然球面的点数据密集程度可控------通过角度)


最初使用一个比较LOW的方法 大概思路就是:X平方+Y平方+Z平方 = 半径R平方 
(其实说白了就是在一个立方体中掏出一个空心球)
这个已经实现 但是运算速度很LOW..


之后查到了球面算法:
X=OPcos=rsinφcosθ
Y=OPsin=rsinφsinθ
Z=rcosφ



(这个据说是相关专业的研究生在应试教育中必会且必背下来的..)


之后通过上面的算法成功用C/C++代码实现


效果其实不是特别好.. 尤其当精度高于一定值时 会出现"梯田"的效果 

当精度过高的时候运算速度也降低很多(毕竟点数指数级增长)


下面是本人的

x = 2.959 * 10.0;
y = 21.078 * -10.0;
z = 7.636 * -10.0;
r = 1.6705 * 10.0;

这些数据在 0.5的密度上计算得到的效果图(点数:32400)


之后又测试了下0.2的密度的效果(点数:202500)





总体来看效果就是这样 需要进一步增加密度或减少随自己心情..


下面是代码:

代码传送门



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值