Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在python中创建坐标圆_Python - Fatal编程技术网

尝试在python中创建坐标圆

尝试在python中创建坐标圆,python,Python,我试图用x和y坐标创建点。我希望这些点形成一个圆。我的天才计划是设置圆的半径,然后利用x^2+Y^2=R^2这一事实,我设置了x的范围,并将Y设置为Y=root(R^2-x^2) 但我意识到这并没有形成一个循环。z中的点是圆的四分之一,因为一切都是正的。我不知道怎么解决这个问题 我想我只需要做4次。但是,我只希望我的整圈有100个值 import random import numpy as np import math import numpy as np N=100 r=10 #r

我试图用x和y坐标创建点。我希望这些点形成一个圆。我的天才计划是设置圆的半径,然后利用x^2+Y^2=R^2这一事实,我设置了x的范围,并将Y设置为Y=root(R^2-x^2)
但我意识到这并没有形成一个循环。z中的点是圆的四分之一,因为一切都是正的。我不知道怎么解决这个问题 我想我只需要做4次。但是,我只希望我的整圈有100个值

import random 
import numpy as np
import math
import numpy as np
N=100
r=10     #radius
xcharge_corord = np.linspace(0,10,N)  # a bunch of possible x's
for i in range(len(xcharge_corord)):
    ycharge_corord = np.sqrt(r**2-xcharge_corord**2)   #y=root(r-x)

print(ycharge_corord)
Z = []                                   #z=[(x,y)(x,y)(x,y)(x,y)]
for i in range(len(xcharge_corord)):
    Z.append((xcharge_corord[i], ycharge_corord[i]))
print(Z)
你拥有的

第一象限中的x和y。您只需将x和y坐标乘以-1,将这个四分之一圆反射到其他象限,即可得到这些值

但在国际海事组织,最好的办法是使用极坐标

你能做什么

考虑一下(对不起,我没有numpy)

这可能是你想要的4倍。所以要解决这个问题,你要做什么

z_f = z1 + z2 + z3 + z4
print z_f

desired_value_points = 10
chunk_size = len(z_f) / desired_value_points

print "Chunk size: " + str(chunk_size)
print z_f[::chunk_size]

将生成所需数量的点分布在圆上

这是简单的极坐标版本:

import math
n = 10
i = 0
while i < 360:
    x = n * math.cos(math.radians(i))
    y = n * math.sin(math.radians(i))
    print x, y
    i += 10 #whatever step angle
导入数学
n=10
i=0
而我<360:
x=n*math.cos(数学弧度(i))
y=n*math.sin(math.radians(i))
打印x,y
i+=10#任意步距角

注意:您将不得不关注零的浮点问题,因此可能需要四舍五入到小数点后4位左右。

尽管可以尝试通过极坐标使用弧度。X=半径*cos(角度)。y=半径*sin(角度)。为角度设置向上循环。通过改变角度的步长来调整圆的分辨率。如果你想要整圆,你必须有负的x值,然后还有负的平方根
r**20-xcharge\u corord**2
import math
n = 10
i = 0
while i < 360:
    x = n * math.cos(math.radians(i))
    y = n * math.sin(math.radians(i))
    print x, y
    i += 10 #whatever step angle