小编mys*_*bob的帖子

从椭圆生成数组

我有一个方程,它以 x^2/a^2 + y^2/b^2 = 1 的一般形式创建一个椭圆。我希望生成一个数组,其中椭圆内的所有点都设置为一个,而椭圆外的所有点都设置为是零。然后将该数组与另一个数组进行卷积。

到目前为止,我已经尝试创建一个大小为我想要遍历所有 x,y 位置的空数组,计算 x^2/a^2 + y^2/b^2 = 1。如果一般形式小于 1在数组中输入一个,否则继续下一个 x,y 位置。

这是我的代码:

    arr = numpy.array(im) 
    sh = numpy.shape(arr)
    ar = numpy.empty(sh)

    for x in range (sh[0]):
        xx = x*x
        for y in range (sh[1]):
            yy = y*y
            ellips = xx/(a*a)+yy/(b*b)
            if ellips < 1:
                ar[xx,yy] = '1'
            else:
                break
Run Code Online (Sandbox Code Playgroud)

但是,这不会产生我期望的结果,因为我的椭圆总是以 (0,0) 为中心,因此我希望这些椭圆位于数组的中心,但它们出现在左上角。

有没有人知道我哪里出错了?或者也许是生成数组的更好方法?

- -编辑 - -

尝试过 EOL 的答案后,我收到了一个椭圆数组,但是它与它应该建模的椭圆不匹配。这是一张图片来说明我的意思:http : //i.imgur.com/M4vh4il.jpg ?1 椭圆数组没有椭圆的旋转。产生椭圆和椭圆数组的代码如下:

    def Ellipssee(z,stigx,stigy):
        points=100 #Number of points to construct …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy ellipse python-2.7

2
推荐指数
1
解决办法
4722
查看次数

标签 统计

arrays ×1

ellipse ×1

numpy ×1

python ×1

python-2.7 ×1