0

プログラムで次の関数を使用したい:

def computeVoronoiDiagram(points):
    """ Takes a list of point objects (which must have x and y fields).
Returns a 3-tuple of:

(1) a list of 2-tuples, which are the x,y coordinates of the
Voronoi diagram vertices
(2) a list of 3-tuples (a,b,c) which are the equations of the
lines in the Voronoi diagram: a*x + b*y = c
(3) a list of 3-tuples, (l, v1, v2) representing edges of the
Voronoi diagram. l is the index of the line, v1 and v2 are
the indices of the vetices at the end of the edge. If
v1 or v2 is -1, the line extends to infinity.
"""
    siteList = SiteList(points)
    context = Context()
    voronoi(siteList,context)
    return (context.vertices,context.lines,context.edges)

点オブジェクト (x & y フィールドを持つ) のリストを取得します。Python リストのデータ構造とは異なりますか? このようなオブジェクトを作成するにはどうすればよいですか? 編集:リストには約100万のランダムポイントが含まれることに言及する必要があります。

4

2 に答える 2

2

使用しているライブラリには Point クラスが含まれていますか?

そうでない場合:

 from collections import namedtuple
 Point = namedtuple('Point', ['x','y'])
于 2013-08-25T16:40:56.430 に答える
1

このようなもの:

#!/usr/bin/python

class Point:
    def __init__(self, x, y):
        self.x = x;
        self.y = y;

def main():
    pointslist = [Point(0, 0)] * 10
    mytuple = computeVoronoiDiagram(pointslist)

if __name__ == "__main__":
    main()

明らかに、 およびサポート コードの残りのコードが必要であり、すべてを に設定するのではなく、各ポイントのおよび座標computeVoronoiDiagram()をランダム化したいようです。xy0

于 2013-08-25T16:28:42.260 に答える