コード例 #1
0
def getRel(tri1, tri2):
	rels = set()
	## get triangle center
	center = triangle_center(*tri1)

	#print 'center:' , center
	for i in xrange(3):
		#print 'vertex: ', tri2[i]
		angle = __calAngle__(center, tri2[i])
		rels.add(__getRel__(angle))

	if len(rels) >= 2:
		scenter = Point(center) #point in shapely form
		edges = [[tri2[0], tri2[1]], [tri2[1], tri2[2]], [tri2[0],tri2[2]]]	
		for edge in edges:
			line = LineString(edge)			
			isectPnt = line.interpolate(line.project(scenter))
			angle = __calAngle__(center, (isectPnt.x, isectPnt.y))
			rels.add(__getRel__(angle))

	x_direction = set()
	y_direction = set()
	for rel in rels:
		if rel == WEST or rel == EAST:
			x_direction.add(rel)
		else:
			y_direction.add(rel)	


	return [x_direction, y_direction]
コード例 #2
0
#triangle.plot.compare(plt, dic, tri)
#plt.show()
#print tri

# create the graph based on the scenario file
#graph = createGraph(tri["triangles"], tri["vertices"], tri["segments"])

segments_froset = [frozenset(v) for v in tri['segments']]
graph, edges_index, edges_dirs, edges_by_tri, vertices_of_edges, edges_surface_dic, tri_by_surface, tri_neighbor_by_edge = create_graph_advanced(tri["triangles"], tri["vertices"], segments_froset, scenario_width, scenario_height)

################### Arrange graph according to the position of triangles #########

triangles_by_vertices = tri["vertices"][tri["triangles"]]
pos = {}
for index, triangle in enumerate(triangles_by_vertices):
	pos[index] = triangle_center(*triangle)
edge_text_labels = {}
edge_lists = []

for edge in graph.edges():

#	if edge[0] > edge[1]:
	edge_lists.append(edge)
	label =  graph.get_edge_data(*edge)
	#edge_text_labels[edge] = printRels(label['rel'])
	#print "label: ", label['rel']
	edge_text_labels[edge] = [rel for rel in label['rel']]
################## END ##########################################

#print graph.edges()
#print graph.nodes()