Python實現(xiàn)將n個點均勻地分布在球面上的方法
本文實例講述了Python實現(xiàn)將n個點均勻地分布在球面上的方法。分享給大家供大家參考。具體分析如下:
最近工作上遇到一個需求,將10000左右個點均勻地分布在一個球面上。所謂的均勻,即相鄰的兩個點之間的距離盡量一致。
我的算法是用基于正多面體剖分球面,我選的是正八面體。
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)
希望本文所述對大家的Python程序設(shè)計有所幫助。
- Python數(shù)據(jù)可視化正態(tài)分布簡單分析及實現(xiàn)代碼
- Python使用numpy產(chǎn)生正態(tài)分布隨機(jī)數(shù)的向量或矩陣操作示例
- Python實現(xiàn)的概率分布運算操作示例
- python調(diào)用Matplotlib繪制分布點并且添加標(biāo)簽
- Python繪制的二項分布概率圖示例
- python k-近鄰算法實例分享
- 樸素貝葉斯算法的python實現(xiàn)方法
- 用Python實現(xiàn)通過哈希算法檢測圖片重復(fù)的教程
- python編寫的最短路徑算法
- kNN算法python實現(xiàn)和簡單數(shù)字識別的方法
- Python實現(xiàn)的各種常見分布算法示例
相關(guān)文章
pytorch numpy list類型之間的相互轉(zhuǎn)換實例
今天小編就為大家分享一篇pytorch numpy list類型之間的相互轉(zhuǎn)換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
如何打包Python Web項目實現(xiàn)免安裝一鍵啟動的方法
這篇文章主要介紹了如何打包Python Web項目,實現(xiàn)免安裝一鍵啟動,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Python中的可視化設(shè)計與UI界面實現(xiàn)
本文介紹了如何使用Python創(chuàng)建用戶界面(UI),包括使用Tkinter、PyQt、Kivy等庫進(jìn)行基本窗口、動態(tài)圖表和動畫效果的實現(xiàn),通過示例代碼,展示了如何利用這些庫來構(gòu)建功能強(qiáng)大且美觀的界面2025-01-01
python實現(xiàn)靜態(tài)web服務(wù)器
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)靜態(tài)web服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09
Python獲取時間范圍內(nèi)日期列表和周列表的函數(shù)
這篇文章主要介紹了Python獲取時間范圍內(nèi)日期列表和周列表的函數(shù),文中給大家提到了python獲取日期的周數(shù) ,需要的朋友可以參考下2019-08-08

