Add image visualisation

This commit is contained in:
2024-06-12 22:01:49 +02:00
parent a84a57d901
commit 490dc25a94
2 changed files with 28 additions and 9 deletions

37
main.py
View File

@@ -1,3 +1,6 @@
from PIL import Image, ImageDraw
import matplotlib.pyplot as plt
from networks.geometry.Point3D import Point3D from networks.geometry.Point3D import Point3D
from networks.geometry.Segment3D import Segment3D from networks.geometry.Segment3D import Segment3D
from networks.geometry.Segment2D import Segment2D from networks.geometry.Segment2D import Segment2D
@@ -21,6 +24,11 @@ from networks.roads.intersections import Intersection as Intersection
from networks.geometry.point_tools import curved_corner_by_curvature, curved_corner_by_distance from networks.geometry.point_tools import curved_corner_by_curvature, curved_corner_by_distance
import matplotlib
matplotlib.use('Agg')
editor = Editor(buffering=True) editor = Editor(buffering=True)
# f = open('buildings\shapes.json') # f = open('buildings\shapes.json')
@@ -278,8 +286,8 @@ block_list = ["blue_concrete", "red_concrete", "green_concrete",
# p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481), # p = Polyline((Point2D(-1225, 468), Point2D(-1138, 481),
# Point2D(-1188, 451), Point2D(-1176, 409), Point2D(-1179, 399))) # Point2D(-1188, 451), Point2D(-1176, 409), Point2D(-1179, 399)))
p = Polyline((Point2D(-1206, 414), Point2D(-1176, 409), p = Polyline((Point2D(32, 0), Point2D(16, 16),
Point2D(-1188, 451), Point2D(-1138, 481), Point2D(-1225, 500))) Point2D(16, 0), Point2D(0, 0)))
# Point2D(-1156, 378), Point2D(-1220, 359), Point2D(-1265, 290) # Point2D(-1156, 378), Point2D(-1220, 359), Point2D(-1265, 290)
# print(p.alpha_radii) # print(p.alpha_radii)
@@ -293,14 +301,11 @@ print(p.lengths)
y = 160 y = 160
for i in range(len(p.coordinates)-1):
if p.coordinates[i] != None:
s = Segment3D(Point3D(p.coordinates[i].x, y, p.coordinates[i].y), Point3D(
p.coordinates[i+1].x, y, p.coordinates[i+1].y))
for j in range(len(s.coordinates)-1):
editor.placeBlock(
s.coordinates[j].coordinate, Block("cyan_concrete"))
width, height = 100, 100
image = Image.new('RGB', (width, height), 'white')
draw = ImageDraw.Draw(image)
for i in range(len(center)): for i in range(len(center)):
if center[i]: if center[i]:
@@ -308,7 +313,21 @@ for i in range(len(center)):
for j in range(len(circle.coordinates)-1): for j in range(len(circle.coordinates)-1):
editor.placeBlock( editor.placeBlock(
(circle.coordinates[j].x, y, circle.coordinates[j].y), Block("white_concrete")) (circle.coordinates[j].x, y, circle.coordinates[j].y), Block("white_concrete"))
draw.point((circle.coordinates[j].x+25,
50-circle.coordinates[j].y), fill='black')
for i in range(len(p.coordinates)-1):
if p.coordinates[i] != None:
s = Segment3D(Point3D(p.coordinates[i].x, y, p.coordinates[i].y), Point3D(
p.coordinates[i+1].x, y, p.coordinates[i+1].y))
for j in range(len(s.coordinates)-1):
editor.placeBlock(
s.coordinates[j].coordinate, Block("cyan_concrete"))
draw.point((s.coordinates[j].x+25,
50-s.coordinates[j].z), fill='red')
image.save('output_image.png')
# s = Segment2D(Point2D(0, 0), Point2D(10, 10)).perpendicular(10) # s = Segment2D(Point2D(0, 0), Point2D(10, 10)).perpendicular(10)
# print(s) # print(s)

BIN
output_image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B