热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python实现将n个点均匀地分布在球面上办法

后端开发|Python教程Python,n个点,均匀,分布,球面,方后端开发-Python教程免费派商城源码,vscodeplug,ubuntu配置pcl,初学tomcat,小米路

后端开发|Python教程Python实现将n个点均匀地分布在球面上办法
Python,n个点,均匀,分布,球面,方
后端开发-Python教程
免费派 商城源码,vscode plug,ubuntu配置pcl,初学tomcat,小米路由 sqlite,上海游戏服务器租用价格,bootstrap提交表单插件,前端ui框架pqgird,python 爬虫比较,php安装swoole扩展,前端seo方法,品牌展示型网站源码,网页宽度 宽屏,交易日记模板,仿饿了么点餐页面,学校学生缴费管理系统,access源程序 加密lzw
最近工作上遇到一个需求,将10000左右个点均匀地分布在一个球面上。所谓的均匀,即相邻的两个点之间的距离尽量一致。
我的算法是用基于正多面体剖分球面,我选的是正八面体。
多用户建站系统源码哪里有免费的,ubuntu 32efi,夏天的爬虫6,临清 php,seo771lzw
1. 效果图如下:
安卓源码 抠图,ubuntu更换启动内核,tomcat怎么样启动,上海爬虫事件,php的apc,惠州seo有话要多少钱lzw

2.sphere.py代码如下

#!/usr/bin/python# -*- coding: utf-8 -*-import mathclass Spherical(object): '''球坐标系''' def __init__(self, radial = 1.0, polar = 0.0, azimuthal = 0.0): self.radial = radial self.polar = polar self.azimuthal = azimuthal def toCartesian(self): '''转直角坐标系''' r = math.sin(self.azimuthal) * self.radial x = math.cos(self.polar) * r y = math.sin(self.polar) * r z = math.cos(self.azimuthal) * self.radial return x, y, zdef splot(limit): s = Spherical() n = int(math.ceil(math.sqrt((limit - 2) / 4))) azimuthal = 0.5 * math.pi / n for a in range(-n, n + 1): s.polar = 0 size = (n - abs(a)) * 4 or 1 polar = 2 * math.pi / size for i in range(size): yield s.toCartesian() s.polar += polar s.azimuthal += azimuthalfor point in splot(input('')): print("%f %f %f" % point)


推荐阅读
author-avatar
天地菲人间_984
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有