国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現將n個點均勻地分布在球面上的方法

2019-11-25 17:57:32
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現將n個點均勻地分布在球面上的方法。分享給大家供大家參考。具體分析如下:

最近工作上遇到一個需求,將10000左右個點均勻地分布在一個球面上。所謂的均勻,即相鄰的兩個點之間的距離盡量一致。
我的算法是用基于正多面體剖分球面,我選的是正八面體。

1. 效果圖如下:

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)

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 略阳县| 新河县| 康平县| 漳州市| 平湖市| 义马市| 成安县| 郎溪县| 仁怀市| 嘉义县| 安图县| 岫岩| 松原市| 九龙坡区| 赤城县| 河北省| 尚义县| 南充市| 克拉玛依市| 寻甸| 峨眉山市| 孝感市| 青龙| 张家港市| 伊吾县| 永丰县| 芦山县| 华宁县| 县级市| 阜南县| 荆州市| 肥西县| 富川| 丹东市| 江达县| 桦南县| 年辖:市辖区| 蚌埠市| 梅河口市| 乌兰察布市| 盘锦市|