Contact Us!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
sagemathinc

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: sagemathinc/cocalc-example-files
Path: blob/master/sage/interact/Miscellaneous/minkowskiSum.sagews
Views: 1230
def minkdemo(list1,list2): ''' Returns the Minkowski sum of two lists. ''' output = [] for stuff1 in list1: for stuff2 in list2: temp = [stuff1[i] + stuff2[i] for i in range(len(stuff1))] output.append(temp) return output @interact def minksumvis(x1tri = slider(-1,1,1/10,0, label = 'Triangle point x coord.'), yb = slider(1,4,1/10,2, label = 'Blue point y coord.')): t_list = [[1,0],[x1tri,1],[0,0]] kite_list = [[3, 0], [1, 0], [0, 1], [1, yb]] triangle = polygon([[q[0]-6,q[1]] for q in t_list], alpha = .5, rgbcolor = (1,0,0)) t_vert = point([x1tri-6,1], rgbcolor = (1,0,0)) b_vert = point([kite_list[3][0]-4,yb], rgbcolor = (0,0,1)) kite = polygon([[q[0]-4,q[1]] for q in kite_list], alpha = .5,rgbcolor = (0,0,1)) p12 = minkdemo(t_list, kite_list) p12 = [[q[0],q[1]] for q in p12] p12poly = Polyhedron(p12) edge_lines = Graphics() verts = p12poly.vertices() for an_edge in p12poly.vertex_adjacencies(): edge_lines += line([verts[an_edge[0]], verts[an_edge[1][0]]]) edge_lines += line([verts[an_edge[0]], verts[an_edge[1][1]]]) triangle_sum = Graphics() for vert in kite_list: temp_list = [] for q in t_list: temp_list.append([q[i] + vert[i] for i in range(len(t_list[0]))]) triangle_sum += polygon(temp_list, alpha = .5, rgbcolor = (1,0,0)) kite_sum = Graphics() for vert in t_list: temp_list = [] for q in kite_list: temp_list.append([q[i] + vert[i] for i in range(len(t_list[0]))]) kite_sum += polygon(temp_list, alpha = .3,rgbcolor = (0,0,1)) labels = text('+', (-4.3,.5), rgbcolor = (0,0,0)) labels += text('=', (-.2,.5), rgbcolor = (0,0,0)) show(labels + t_vert + b_vert+ triangle + kite + triangle_sum + kite_sum + edge_lines, axes=False, figsize = [11.0*.7, 4*.7], xmin = -6, ymin = 0, ymax = 4)
Interact: please open in CoCalc