User Tools

Site Tools


cfarhat:solution_homework2
Critères & points attribués (/10)
Rappel du contexte 0
Résultats 0
Qualité du code (commentaires, structures utilisées, …) 3
Animation du dessin 0
Explication en dehors du code 0
Total (/50) 3

Vous ne rappelez pas le travail à faire (vous auriez pu au moins rappeler le sujet). Il n'y a aucun commentaires en dehors du code et vous ne faites aucune mention du travail demandé sur l'animation des changements dans le graphe. Votre code est incomplet et ne peut donc pas être testé (manque la fonction main).

DevoirCedricFarhat.py
#GLOBALES
 
	box = [0, 0, 0, 0]			
	i = -1							#Pour mon tableau (tree) qui stockera les positions
	tree = [100]					#Pour des graphes de taille 100 max
 
 
	#Pour calculer le nombre de fils du sous-graphe
	def getNbOfChilden(graph, node):		
		nbOfChildren = 0
		for child in graph.getOutNodes(node):
			nbOfChildren += 1
		return NbOfChildren
 
 
	def computeWENS(graph, node, direction, box):
		nbChildren = getNbOfChilden(graph, node)
		if nbChildren == 0:
			return [0, 0, 0, 0]
 
		if nbChildren == 1:
			if direction == WEST:				#Selon la direction du père et le nombre de fils les équations sont différentes		
				fils = computeWENS(graph, graph.getOutNode(node), WEST, box)
				box[0] = 0							#Les équations déduites des 2 fournies dans l'article
				box[1] = fils[1] + fils[0] + 1
				box[2] = fils[2]
				box[3] = fils[3]
				i + 1
				tree[i] = box
 
			if direction == EAST:
				fils = computeWENS(graph, graph.getOutNode(node), EAST, box)
				box[0] = fils[1] + fils[0] + 1
				box[1] = 0
				box[2] = fils[2]
				box[3] = fils[3]
				i + 1
				tree[i] = box
 
			if direction == NORTH:
				fils = computeWENS(graph, graph.getOutNode(node), NORTH, box)
				box[0] = fils[0]
				box[1] = fils[1]
				box[2] = 0
				box[3] = fils[3] + fils[2] + 1
				i + 1
				tree[i] = box
 
			if direction == SOUTH:
				fils = computeWENS(graph, graph.getOutNode(node), SOUTH, box)
				box[0] = fils[0]
				box[1] = fils[1]
				box[2] = fils[3] + fils[2] + 1
				box[3] = 0
				i + 1
				tree[i] = box
 
		if nbChildren == 2:
			if direction == WEST:
				fils1 = computeWENS(graph, graph.getOutNode(node, 1), WEST, box)
				fils2 = computeWENS(graph, graph.getOutNode(node, 2), WEST, box)
				box[0] = max(fils1[0], fils2[0])
				box[1] = max(fils1[1], fils2[2])
				box[2] = fils1[2] + fils1[3] + 1
				box[3] = fils2[2] + fils2[3] + 1
				i + 1
				tree[i] = box
 
			if direction == EAST:
				fils1 = computeWENS(graph, graph.getOutNode(node, 1), EAST, box)
				fils2 = computeWENS(graph, graph.getOutNode(node, 2), EAST, box)
				box[0] = max(fils1[0], fils2[0])
				box[1] = max(fils1[1], fils2[1])
				box[2] = fils1[2] + fils1[3] + 1
				box[3] = fils2[2] + fils2[3] + 1
				i + 1
				tree[i] = box
 
			if direction == NORTH:
				fils1 = computeWENS(graph, graph.getOutNode(node, 1), NORTH, box)
				fils2 = computeWENS(graph, graph.getOutNode(node, 2), NORTH, box)
				box[0] = fils1[1] + fils1[0] + 1
				box[1] = fils2[0] + fils2[1] + 1
				box[2] = max(fils1[2], fils2[2])
				box[3] = max(fils1[3], fils2[3])
				i + 1
				tree[i] = box
 
			if direction == SOUTH:
				fils1 = computeWENS(graph, graph.getOutNode(node, 1), SOUTH, box)
				fils2 = computeWENS(graph, graph.getOutNode(node, 2), SOUTH, box)
				box[0] = fils1[1] + fils1[0] + 1
				box[1] = fils2[0] + fils2[1] + 1
				box[2] = max(fils1[2], fils2[2])
				box[3] = max(fils1[3], fils2[3])
				i + 1
				tree[i] = box
 
 
#Voici une proposition d'implémentation qui parcours l'arbre et calcule les positions. Je n'ai pas fais la 2eme partie où il faut construire l'arbre en "top-bottom", j'ai été pris de court par le temps, désolé.
/net/html/perso/melancon/Visual_Analytics_Course/data/pages/cfarhat/solution_homework2.txt · Last modified: 2012/10/22 12:36 by bpinaud