python绘制⼀个单位球⾯_Python实现将n个点均匀地分布在球
⾯上的⽅法
本⽂实例讲述了Python实现将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 = s(self.polar) * r
y = math.sin(self.polar) * r
z = s(self.azimuthal) * self.radial
return x, y, z
def splot(limit):
s = Spherical()
n = il(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):
Cartesian()
s.polar += polar
s.azimuthal += azimuthal
for point in splot(input('')):
print("%f %f %f" % point)
希望本⽂所述对⼤家的Python程序设计有所帮助。
python⾃动格式化json⽂件的⽅法python怎么读取桌面上的文件
本⽂实例讲述了python⾃动格式化json⽂件的⽅法。分享给⼤家供⼤家参考。具体如下:这⾥主要实现将代码混乱的json⽂件格式化。还有⼀⼩堆python常⽤算
python处理csv数据的⽅法
本⽂实例讲述了python处理csv数据的⽅法。分享给⼤家供⼤家参考。具体如下:Python代码:#coding=utf-
8__author__='dehua.li'fromdatetimeimport*importdatetimeimportcsvimports
Python实现Tab⾃动补全和历史命令管理的⽅法
本⽂实例讲述了Python实现Tab⾃动补全和历史命令管理的⽅法。分享给⼤家供⼤家参考。具体分析如下:Python的startup⽂件,即环境变量PYTHONSTARTUP对应的⽂
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论