Python實現(xiàn)將n個點均勻地分布在球面上的方法
本文實例講述了Python實現(xiàn)將n個點均勻地分布在球面上的方法。分享給大家供大家參考。具體分析如下:
最近工作上遇到一個需求,將10000左右個點均勻地分布在一個球面上。所謂的均勻,即相鄰的兩個點之間的距離盡量一致。
我的算法是用基于正多面體剖分球面,我選的是正八面體。
1. 效果圖如下:
2.sphere.py代碼如下
#!/usr/bin/python # -*- coding: utf-8 -*- import math class 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, 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)
希望本文所述對大家的Python程序設計有所幫助。
- Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼
- Python使用numpy產(chǎn)生正態(tài)分布隨機數(shù)的向量或矩陣操作示例
- Python實現(xiàn)的概率分布運算操作示例
- python調用Matplotlib繪制分布點并且添加標簽
- Python繪制的二項分布概率圖示例
- python k-近鄰算法實例分享
- 樸素貝葉斯算法的python實現(xiàn)方法
- 用Python實現(xiàn)通過哈希算法檢測圖片重復的教程
- python編寫的最短路徑算法
- kNN算法python實現(xiàn)和簡單數(shù)字識別的方法
- Python實現(xiàn)的各種常見分布算法示例
相關文章
Python使用pyautogui模塊實現(xiàn)自動化鼠標和鍵盤操作示例
這篇文章主要介紹了Python使用pyautogui模塊實現(xiàn)自動化鼠標和鍵盤操作,簡單描述了pyautogui模塊的功能,并結合實例形式較為詳細的分析了Python使用pyautogui模塊實現(xiàn)鼠標與鍵盤自動化操作相關技巧,需要的朋友可以參考下2018-09-09Window環(huán)境下Scrapy開發(fā)環(huán)境搭建
這篇文章主要介紹了Window環(huán)境下Scrapy開發(fā)環(huán)境搭建,需要的朋友可以參考下2018-11-11Python實現(xiàn)棧的方法詳解【基于數(shù)組和單鏈表兩種方法】
這篇文章主要介紹了Python實現(xiàn)棧的方法,結合實例形式詳細分析了Python基于數(shù)組和單鏈表兩種方法定義棧的相關操作技巧,需要的朋友可以參考下2020-02-02python代碼 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一行代碼識別增值稅發(fā)票實現(xiàn)示例
這篇文章主要為大家介紹了Python一行代碼識別增值稅發(fā)票實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03