示例#1
0
def place_turbines():
    q = Polygon([
        Point(424386., 6147543.),
        Point(423974., 6151447.),
        Point(429014., 6151447.),
        Point(429431., 6147543.)
    ])

    r = Polygon(
        [Point(0., 0.),
         Point(0., 100.),
         Point(100., 100.),
         Point(100., 0.)])

    # Test 1: Point inside of polygon
    # p1 = Point(90, 118)
    # print q.contains(p1)

    nvert = 4
    vertx = [424386., 423974, 429014., 429431.]
    verty = [6147543., 6151447., 6151447., 6147543.]

    inside = []
    # plot_data = open("data.dat", "w")
    for i in range(423974, 429431, 80):
        for j in range(6147543, 6151447, 80):
            # a = q.contains(Point(i, j))
            if pnpoly(nvert, vertx, verty, i, j):
                inside.append((i, j))

    # for i in range(19, 151):
    #     for j in range(9, 126):
    #         a = q.contains(Point(i, j))
    #         if a:
    #             inside.append((i, j))

    k = len(inside)
    h = randint(0, k - 1)
    points = [inside[h]]
    # plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(points[-1][0], points[-1][1], 0))

    for nt in range(1, 80):
        dist = []
        i = 0
        for item in inside:
            min_distance = 999999999999999999
            for point in points:
                distance = abs(item[0] - point[0]) + abs(item[1] - point[1])
                if distance < min_distance:
                    min_distance = distance
            dist.append((min_distance, i))
            i += 1

        next = inside[max(dist)[1]]
        # plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(next[0], next[1], nt))
        points.append(next)
        inside.remove(next)

    return points
def place_turbines():
    q = Polygon(
        [Point(424386.0, 6147543.0), Point(423974.0, 6151447.0), Point(429014.0, 6151447.0), Point(429431.0, 6147543.0)]
    )

    # Test 1: Point inside of polygon
    # p1 = Point(90, 118)
    # print q.contains(p1)

    nvert = 4
    vertx = [0.0, 0, 100.0, 100.0]
    verty = [0.0, 100.0, 100.0, 0.0]

    inside = []
    # plot_data = open("data.dat", "w")
    for i in range(0, 100, 1):
        for j in range(0, 100, 1):
            # a = q.contains(Point(i, j))
            if pnpoly(nvert, vertx, verty, i, j):
                inside.append((i, j))

    # for i in range(19, 151):
    #     for j in range(9, 126):
    #         a = q.contains(Point(i, j))
    #         if a:
    #             inside.append((i, j))

    k = len(inside)
    h = randint(0, k - 1)
    points = [inside[h]]
    # plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(points[-1][0], points[-1][1], 0))

    for nt in range(1, 80):
        dist = []
        i = 0
        for item in inside:
            min_distance = 999999999999999999
            for point in points:
                distance = abs(item[0] - point[0]) + abs(item[1] - point[1])
                if distance < min_distance:
                    min_distance = distance
            dist.append((min_distance, i))
            i += 1

        next = inside[max(dist)[1]]
        # plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(next[0], next[1], nt))
        points.append(next)
        inside.remove(next)

    return points
示例#3
0
def place_turbines():
    q = Polygon([
        Point(424386., 6147543.),
        Point(423974., 6151447.),
        Point(429014., 6151447.),
        Point(429431., 6147543.)
    ])
    # 484178.55, 5732482.8], [500129.9, 5737534.4], [497318.1, 5731880.24], [491858.00, 5725044.75]], [[491858.00, 5725044.75], [497318.1, 5731880.24], [503163.37, 5729155.3], [501266.5, 5715990.05
    r = Polygon([
        Point(484178.55, 5732482.8),
        Point(500129.9, 5737534.4),
        Point(497318.1, 5731880.24),
        Point(503163.37, 5729155.3),
        Point(501266.5, 5715990.05)
    ])

    # Test 1: Point inside of polygon
    # p1 = Point(90, 118)
    # print q.contains(p1)

    nvert = 5
    vertx = [484178.55, 500129.9, 497318.1, 503163.37, 501266.5]
    verty = [5732482.8, 5737534.4, 5731880.24, 5729155.3, 5715990.05]

    inside = []
    plot_data = open("data.dat", "w")
    for i in range(int(floor(min(vertx))), int(ceil(max(vertx))), 10):
        for j in range(int(floor(min(verty))), int(ceil(max(verty))), 10):
            # a = q.contains(Point(i, j))
            if pnpoly(nvert, vertx, verty, i, j):
                inside.append((i, j))

    # for i in range(19, 151):
    #     for j in range(9, 126):
    #         a = q.contains(Point(i, j))
    #         if a:
    #             inside.append((i, j))

    k = len(inside)
    h = randint(0, k - 1)
    points = [inside[h]]
    # plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(points[-1][0], points[-1][1], 0))

    for nt in range(1, 74):
        dist = []
        i = 0
        for item in inside:
            min_distance = 999999999999999999
            for point in points:
                distance = abs(item[0] - point[0]) + abs(item[1] - point[1])
                if distance < min_distance:
                    min_distance = distance
            dist.append((min_distance, i))
            i += 1

        next = inside[max(dist)[1]]
        plot_data.write("{0}\t{1}\t{2}\n".format(next[0], next[1], nt))
        points.append(next)
        inside.remove(next)

    return points
示例#4
0
# Test 1: Point inside of polygon
# p1 = Point(90, 118)
# print q.contains(p1)

nvert = 4
vertx = [424386., 423974, 429014., 429431.]
verty = [6147543., 6151447., 6151447., 6147543.]

inside = []
plot_data = open("data.dat", "w")
start = time()
for i in range(423974, 429431, 80):
    for j in range(6147543, 6151447, 80):
        # a = q.contains(Point(i, j))
        a = pnpoly(nvert, vertx, verty, i, j)
        if a:
            inside.append((i, j))

print "make inside mesh time is " + str(time() - start) + "s"

# for i in range(19, 151):
#     for j in range(9, 126):
#         a = q.contains(Point(i, j))
#         if a:
#             inside.append((i, j))

k = len(inside)
h = randint(0, k - 1)
points = [inside[h]]
plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(points[-1][0], points[-1][1],
# Test 1: Point inside of polygon
# p1 = Point(90, 118)
# print q.contains(p1)

nvert = 4
vertx = [424386., 423974, 429014., 429431.]
verty = [6147543., 6151447., 6151447., 6147543.]

inside = []
plot_data = open("data.dat", "w")
start = time()
for i in range(423974, 429431, 80):
    for j in range(6147543, 6151447, 80):
        # a = q.contains(Point(i, j))
        a = pnpoly(nvert, vertx, verty, i, j)
        if a:
            inside.append((i, j))

print "make inside mesh time is " + str(time() - start) + "s"

# for i in range(19, 151):
#     for j in range(9, 126):
#         a = q.contains(Point(i, j))
#         if a:
#             inside.append((i, j))

k = len(inside)
h = randint(0, k - 1)
points = [inside[h]]
plot_data.write("{0:d}\t{1:d}\t{2:d}\n".format(points[-1][0], points[-1][1], 0))