Python實(shí)現(xiàn)將n個(gè)點(diǎn)均勻地分布在球面上的方法
本文實(shí)例講述了Python實(shí)現(xiàn)將n個(gè)點(diǎn)均勻地分布在球面上的方法。分享給大家供大家參考。具體分析如下:
最近工作上遇到一個(gè)需求,將10000左右個(gè)點(diǎn)均勻地分布在一個(gè)球面上。所謂的均勻,即相鄰的兩個(gè)點(diǎn)之間的距離盡量一致。
我的算法是用基于正多面體剖分球面,我選的是正八面體。
1. 效果圖如下:
2.sphere.py代碼如下
#!/usr/bin/python # -*- coding: utf-8 -*- import math class Spherical(object): '''球坐標(biāo)系''' def __init__(self, radial = 1.0, polar = 0.0, azimuthal = 0.0): self.radial = radial self.polar = polar self.azimuthal = azimuthal def toCartesian(self): '''轉(zhuǎn)直角坐標(biāo)系''' 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, z def 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 += azimuthal for point in splot(input('')): print("%f %f %f" % point)
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- Python數(shù)據(jù)可視化正態(tài)分布簡(jiǎn)單分析及實(shí)現(xiàn)代碼
- Python使用numpy產(chǎn)生正態(tài)分布隨機(jī)數(shù)的向量或矩陣操作示例
- Python實(shí)現(xiàn)的概率分布運(yùn)算操作示例
- python調(diào)用Matplotlib繪制分布點(diǎn)并且添加標(biāo)簽
- Python繪制的二項(xiàng)分布概率圖示例
- python k-近鄰算法實(shí)例分享
- 樸素貝葉斯算法的python實(shí)現(xiàn)方法
- 用Python實(shí)現(xiàn)通過哈希算法檢測(cè)圖片重復(fù)的教程
- python編寫的最短路徑算法
- kNN算法python實(shí)現(xiàn)和簡(jiǎn)單數(shù)字識(shí)別的方法
- Python實(shí)現(xiàn)的各種常見分布算法示例
相關(guān)文章
Python3.5多進(jìn)程原理與用法實(shí)例分析
這篇文章主要介紹了Python3.5多進(jìn)程原理與用法,結(jié)合實(shí)例形式分析了多進(jìn)程的原理、單進(jìn)程、多進(jìn)程、進(jìn)程類及進(jìn)程隊(duì)列等相關(guān)定義與使用技巧,需要的朋友可以參考下2019-04-04Python使用pyautogui模塊實(shí)現(xiàn)自動(dòng)化鼠標(biāo)和鍵盤操作示例
這篇文章主要介紹了Python使用pyautogui模塊實(shí)現(xiàn)自動(dòng)化鼠標(biāo)和鍵盤操作,簡(jiǎn)單描述了pyautogui模塊的功能,并結(jié)合實(shí)例形式較為詳細(xì)的分析了Python使用pyautogui模塊實(shí)現(xiàn)鼠標(biāo)與鍵盤自動(dòng)化操作相關(guān)技巧,需要的朋友可以參考下2018-09-09Window環(huán)境下Scrapy開發(fā)環(huán)境搭建
這篇文章主要介紹了Window環(huán)境下Scrapy開發(fā)環(huán)境搭建,需要的朋友可以參考下2018-11-11Python實(shí)現(xiàn)棧的方法詳解【基于數(shù)組和單鏈表兩種方法】
這篇文章主要介紹了Python實(shí)現(xiàn)棧的方法,結(jié)合實(shí)例形式詳細(xì)分析了Python基于數(shù)組和單鏈表兩種方法定義棧的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02matplotlib中l(wèi)egend位置調(diào)整解析
這篇文章主要介紹了matplotlib中l(wèi)egend位置調(diào)整解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12python代碼 if not x: 和 if x is not None: 和 if not x is None:使用
這篇文章主要介紹了python代碼 if not x: 和 if x is not None: 和 if not x is None:使用介紹,需要的朋友可以參考下2016-09-09Python一行代碼識(shí)別增值稅發(fā)票實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Python一行代碼識(shí)別增值稅發(fā)票實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python實(shí)現(xiàn)數(shù)值積分方式
今天小編就為大家分享一篇Python實(shí)現(xiàn)數(shù)值積分方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11