From f46c1c754a9ff6ca66bcb0c68da584885e3d1758 Mon Sep 17 00:00:00 2001 From: Tolga Yurtseven <tolgayurt02@outlook.de> Date: Wed, 11 Nov 2020 21:53:26 +0100 Subject: [PATCH] added polygoncreator function in the view and buttons fpr it in the index.html template --- mysite/plots/polygon.txt | 5 ++- mysite/plots/templates/plots/index.html | 13 ++++++- .../templates/plots/packed_polygons.html | 2 +- mysite/plots/urls.py | 5 ++- mysite/plots/views.py | 39 +++++++++++++------ 5 files changed, 48 insertions(+), 16 deletions(-) diff --git a/mysite/plots/polygon.txt b/mysite/plots/polygon.txt index 163e42c5..57a6ad00 100644 --- a/mysite/plots/polygon.txt +++ b/mysite/plots/polygon.txt @@ -3,4 +3,7 @@ Polygon [(686.0, 0.0), (1101.9999999999995, 905.0), (1291.9999999999995, 62.0), (686.0, 0.0)] [(1842.7583497053038, 0.0), (1286.7583497053042, 4.0), (1332.7583497053042, 513.0), (2047.7583497053038, 608.0), (2023.7583497053038, 423.0), (1842.7583497053038, 0.0)] [(316.9999999999998, 905.0), (0.0, 1490.0), (356.9999999999998, 1527.0), (741.9999999999998, 1428.0), (724.9999999999998, 1078.0), (316.9999999999998, 905.0)] -[(586.0, 1527.0), (0.0, 1540.0), (300.0, 1762.0), (586.0, 1527.0)] \ No newline at end of file +[(586.0, 1527.0), (0.0, 1540.0), (300.0, 1762.0), (586.0, 1527.0)] +[(27.26304579339723, 1762.0), (8.413205537806178, 1763.8987341772151), (0.0, 1788.26582278481), (1.490947816826413, 1799.6582278481012), (7.8807241746538885, 1800.0801687763712), (51.43769968051117, 1795.649789029536), (27.26304579339723, 1762.0)] +[(4.1324156191531145, 1800.0801687763712), (0.0, 1810.483927967384), (13.756594100601824, 1811.809503462764), (13.267229093070533, 1804.739767487404), (4.1324156191531145, 1800.0801687763712)] +[(0.05437388972569579, 1811.809503462764), (0.0, 1817.1519743986896), (9.406682922545912, 1816.3485953105805), (8.482326797209026, 1813.6171064110094), (0.05437388972569579, 1811.809503462764)] \ No newline at end of file diff --git a/mysite/plots/templates/plots/index.html b/mysite/plots/templates/plots/index.html index d290c853..f4ea26f4 100644 --- a/mysite/plots/templates/plots/index.html +++ b/mysite/plots/templates/plots/index.html @@ -34,9 +34,20 @@ {% csrf_token %} <label for="load_csv_polygons"><b>Load CSV Polygons into PolyEditTool</b></label> <input id="load_csv_polygons" type="hidden" name="load_csv_polygons" value="test"> - <input type="submit" value="load"> + <input type="submit" value="load to Drawtool"> </form> </div> + <div> + <form action="/create_convex_polygons/" target="_blank" method="post"> + {% csrf_token %} + <label for="polygon_count"><b>Create Random Polygons, Number of Polygons</b></label> + <input id="polygon_count" type="number" min="0" name="polygon_count" value=5> + <label for="vertices"><b>Number of Vertices (min 3)</b></label> + <input id="vertices" type="number" min="3" name="vertices" value=10> + <input type="submit" value="load to Drawtool"> + </form> + + </div> <div> <form action="/packing_rect_container/" target="_blank" method="get"> {% csrf_token %} diff --git a/mysite/plots/templates/plots/packed_polygons.html b/mysite/plots/templates/plots/packed_polygons.html index d6fa43b1..43f63072 100644 --- a/mysite/plots/templates/plots/packed_polygons.html +++ b/mysite/plots/templates/plots/packed_polygons.html @@ -14,7 +14,7 @@ {% endautoescape %} </div> <div> -<h1>Final Container Polygon Coordinates</h1> +<h1>Final Container Polygons Coordinates</h1> <p>every Row stands for one Polygon<p> {% for polygon in coordinates%} {{polygon}}<br> diff --git a/mysite/plots/urls.py b/mysite/plots/urls.py index ab1b5fbb..90ec08d3 100644 --- a/mysite/plots/urls.py +++ b/mysite/plots/urls.py @@ -1,6 +1,6 @@ from django.urls import path from plots.views import PolygonEditView, PackingRectContainer, PackingRotatedRectContainer, PackingConvexContainer, \ - CSVPolygons, ClearPolygons + CSVPolygons, ClearPolygons ,CreateConvexPolygons from . import views urlpatterns = [ @@ -14,4 +14,5 @@ urlpatterns = [ path('packing_convex_container/', PackingConvexContainer.as_view(), name='convex_container'), path('csv_polygons/', CSVPolygons.as_view(), name='csv_polygons'), path('clear_polygons/', ClearPolygons.as_view(), name='csv_polygons'), -] \ No newline at end of file + path('create_convex_polygons/', CreateConvexPolygons.as_view(), name='create_convex_polygons'), +] diff --git a/mysite/plots/views.py b/mysite/plots/views.py index 80f26595..a3729235 100644 --- a/mysite/plots/views.py +++ b/mysite/plots/views.py @@ -73,6 +73,7 @@ class PackingRectContainer(View): class PackingRotatedRectContainer(View): def get(self, request, *args, **kwargs): + coordinates = [] if PolygonEditView.polygons==[]: plot_steps_html = "No Polygon" else: @@ -85,14 +86,7 @@ class PackingRotatedRectContainer(View): "coordinates":coordinates}) class PackingConvexContainer(View): - # context = {} - # def get(self, request, *args, **kwargs): - # - # cc = poly.ConvexContainer(PolygonEditView.polygons, steps=1) - # plot_steps = cc.plot_steps(render=False) - # plot_steps_html = file_html(plot_steps, CDN, "my plot23") - # # PackingPolygons.context["packed_polygons"]=plot_steps_html - # return render(request, 'plots/packed_polygons.html', context={"plot_steps": plot_steps_html}) + coordinates = [] def post(self, request, *args, **kwargs): if PolygonEditView.polygons==[]: plot_steps_html = "No Polygon" @@ -119,8 +113,31 @@ class ClearPolygons(View): PolygonEditView.plot_min_y = 0 return HttpResponseRedirect('/index/') + +class CreateConvexPolygons(View): + def post(self, request, *args, **kwargs): + max_vertices_count = int(request.POST["vertices"]) + polygon_count = int(request.POST["polygon_count"]) + polygons = poly.create_multiple_convex_polygons(polygon_count,max_vertices_count) + + all_x_values = [PolygonEditView.plot_max_x, PolygonEditView.plot_min_x] + all_y_values = [PolygonEditView.plot_min_y,PolygonEditView.plot_max_y] + for polygon in polygons: + all_x_values = all_x_values + polygon.x_values + all_y_values = all_y_values + polygon.y_values + PolygonEditView.colum_data_x.append(polygon.x_values) + PolygonEditView.colum_data_y.append(polygon.y_values) + PolygonEditView.plot_max_x = max(all_x_values) + PolygonEditView.plot_min_x = min(all_x_values) + PolygonEditView.plot_max_y = max(all_y_values) + PolygonEditView.plot_min_y = min(all_y_values) + + return HttpResponseRedirect('/index/') + + class CSVPolygons(View): - def get(self,request,): + + def get(self, request): PolygonEditView.csv_polygons = [] PolygonEditView.polygons = PolygonEditView.drawn_polygons PolygonEditView.context["csv_polygons"] = "Cleared" @@ -137,8 +154,8 @@ class CSVPolygons(View): def post(self, request, *args, **kwargs): df = pandas.read_csv('plots/polygon.txt',sep="#") csv_polygons = df["Polygon"] - all_x_values = [] - all_y_values = [] + all_x_values = [PolygonEditView.plot_max_x, PolygonEditView.plot_min_x] + all_y_values = [PolygonEditView.plot_min_y,PolygonEditView.plot_max_y] for polygon_str in csv_polygons: polygon = eval(polygon_str) x_tuples, y_tuples = (zip(*polygon)) -- GitLab