Finished directed graphs.
This commit is contained in:
parent
b18044aa2d
commit
0766151a9a
@ -104,6 +104,9 @@ public class GrafoController implements Initializable {
|
|||||||
scene = null;
|
scene = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LLenar el grafo con nodos y edges al azar.
|
||||||
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonLlenar() {
|
protected void botonLlenar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
@ -137,6 +140,11 @@ public class GrafoController implements Initializable {
|
|||||||
noDirigido.addNode(grafoNodos[i]);
|
noDirigido.addNode(grafoNodos[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
noDirigido.addEdge(grafoNodos[0], grafoNodos[1]);
|
||||||
|
noDirigido.addEdge(grafoNodos[1], grafoNodos[2]);
|
||||||
|
noDirigido.addEdge(grafoNodos[2], grafoNodos[4]);
|
||||||
|
noDirigido.addEdge(grafoNodos[4], grafoNodos[3]);
|
||||||
|
noDirigido.addEdge(grafoNodos[3], grafoNodos[1]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
@ -150,29 +158,43 @@ public class GrafoController implements Initializable {
|
|||||||
|
|
||||||
grafoNodos[i] = new GrafoNodo(numero);
|
grafoNodos[i] = new GrafoNodo(numero);
|
||||||
|
|
||||||
Grafo.Vertex<GrafoNodo> vertex = new Grafo.Vertex<>("test");
|
Grafo.Vertex<GrafoNodo> vertex = new Grafo.Vertex<>(String.valueOf(grafoNodos[i].getValue()));
|
||||||
vertex.setData(grafoNodos[i]);
|
vertex.setData(grafoNodos[i]);
|
||||||
dirigido.addVertex(vertex);
|
dirigido.addVertex(vertex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
dirigido.addEdge(dirigido.getVertex(0), dirigido.getVertex(1), WEIGHT);
|
||||||
|
dirigido.addEdge(dirigido.getVertex(1), dirigido.getVertex(2), WEIGHT);
|
||||||
|
dirigido.addEdge(dirigido.getVertex(2), dirigido.getVertex(4), WEIGHT);
|
||||||
|
dirigido.addEdge(dirigido.getVertex(2), dirigido.getVertex(0), WEIGHT);
|
||||||
|
dirigido.addEdge(dirigido.getVertex(4), dirigido.getVertex(3), WEIGHT);
|
||||||
|
dirigido.addEdge(dirigido.getVertex(3), dirigido.getVertex(1), WEIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Eliminar el grafo.
|
||||||
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonVaciar() {
|
protected void botonVaciar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
initializeGrafo();
|
initializeGrafo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grafoTipos.getTipo() == Grafo.Tipos.NO_DIRIGIDO) {
|
||||||
this.noDirigido = new Grafo.NoDirigido<>();
|
this.noDirigido = new Grafo.NoDirigido<>();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.dirigido = new Grafo.Dirigido<>();
|
||||||
|
}
|
||||||
this.grafoNodos = new GrafoNodo[5];
|
this.grafoNodos = new GrafoNodo[5];
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insertar un valor al array y mostrar el codigo en la pantalla.
|
* Insertar un nodo en el grafo.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonInsertar() {
|
protected void botonInsertar() {
|
||||||
@ -204,7 +226,15 @@ public class GrafoController implements Initializable {
|
|||||||
Main.mostrarError(resourceBundle.getString("grafoLleno"), resourceBundle);
|
Main.mostrarError(resourceBundle.getString("grafoLleno"), resourceBundle);
|
||||||
}
|
}
|
||||||
else if (i != -1) {
|
else if (i != -1) {
|
||||||
boolean exito = noDirigido.addNode(grafoNodos[i]);
|
boolean exito;
|
||||||
|
if (grafoTipos.getTipo() == Grafo.Tipos.NO_DIRIGIDO) {
|
||||||
|
exito = noDirigido.addNode(grafoNodos[i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Grafo.Vertex<GrafoNodo> vertex = new Grafo.Vertex<>(String.valueOf(grafoNodos[i].getValue()));
|
||||||
|
vertex.setData(grafoNodos[i]);
|
||||||
|
exito = dirigido.addVertex(vertex);
|
||||||
|
}
|
||||||
if (exito) {
|
if (exito) {
|
||||||
valorGrafo.setText("");
|
valorGrafo.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
@ -225,7 +255,7 @@ public class GrafoController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insertar un valor al array y mostrar el codigo en la pantalla.
|
* Eliminar un nodo del grafo.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonEliminar() {
|
protected void botonEliminar() {
|
||||||
@ -247,7 +277,19 @@ public class GrafoController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i != 5) {
|
if (i != 5) {
|
||||||
boolean exito = noDirigido.removeNode(grafoNodos[i]);
|
boolean exito = false;
|
||||||
|
if (grafoTipos.getTipo() == Grafo.Tipos.NO_DIRIGIDO) {
|
||||||
|
exito = noDirigido.removeNode(grafoNodos[i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (int j = 0; j < dirigido.size(); j++) {
|
||||||
|
Grafo.Vertex<GrafoNodo> vertex = dirigido.getVertex(j);
|
||||||
|
if (vertex.getData().getValue() == Integer.valueOf(valorGrafo.getText())) {
|
||||||
|
exito = dirigido.removeVertex(vertex);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (exito) {
|
if (exito) {
|
||||||
grafoNodos[i] = null;
|
grafoNodos[i] = null;
|
||||||
valorGrafo.setText("");
|
valorGrafo.setText("");
|
||||||
@ -280,10 +322,11 @@ public class GrafoController implements Initializable {
|
|||||||
initializeGrafo();
|
initializeGrafo();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valorNodo1.getText() != null && ! valorNodo1.getText().trim().equals("") && valorNodo2.getText() != null && ! valorNodo2.getText().trim().equals("")) {
|
if (valorNodo1.getText() != null && !valorNodo1.getText().trim().equals("") && valorNodo2.getText() != null && !valorNodo2.getText().trim().equals("")) {
|
||||||
GrafoNodo[] nodos = getNodosEdge();
|
GrafoNodo[] nodos = getNodosEdge();
|
||||||
|
|
||||||
if (nodos[0] == null || nodos[1] == null || ! noDirigido.nodeExists(nodos[0]) || ! noDirigido.nodeExists(nodos[1])) {
|
if (grafoTipos.getTipo() == Grafo.Tipos.NO_DIRIGIDO) {
|
||||||
|
if (nodos[0] == null || nodos[1] == null || !noDirigido.nodeExists(nodos[0]) || !noDirigido.nodeExists(nodos[1])) {
|
||||||
Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
|
Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
|
||||||
}
|
}
|
||||||
else if (noDirigido.edgeExists(nodos[0], nodos[1])) {
|
else if (noDirigido.edgeExists(nodos[0], nodos[1])) {
|
||||||
@ -293,6 +336,19 @@ public class GrafoController implements Initializable {
|
|||||||
noDirigido.addEdge(nodos[0], nodos[1]);
|
noDirigido.addEdge(nodos[0], nodos[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (nodos[0] == null || nodos[1] == null || dirigido.findVertexByName(String.valueOf(nodos[0].getValue())) == null || dirigido.findVertexByName(String.valueOf(nodos[1].getValue())) == null) {
|
||||||
|
Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
|
||||||
|
}
|
||||||
|
else if (edgeExists(nodos[0], nodos[1])) {
|
||||||
|
Main.mostrarError(resourceBundle.getString("grafoEdgeExiste"), resourceBundle);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
dirigido.addEdge(dirigido.findVertexByName(String.valueOf(nodos[0].getValue())), dirigido.findVertexByName(String.valueOf(nodos[1].getValue())), WEIGHT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
Main.mostrarError(resourceBundle.getString("grafoNoNumero"), resourceBundle);
|
Main.mostrarError(resourceBundle.getString("grafoNoNumero"), resourceBundle);
|
||||||
}
|
}
|
||||||
@ -301,7 +357,7 @@ public class GrafoController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insertar un edge al grafo y mostrar el codigo en la pantalla.
|
* Eliminar un edge del grafo y mostrar el codigo en la pantalla.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonEliminarEdge() {
|
protected void botonEliminarEdge() {
|
||||||
@ -312,16 +368,29 @@ public class GrafoController implements Initializable {
|
|||||||
if (valorNodo1.getText() != null && ! valorNodo1.getText().trim().equals("") && valorNodo2.getText() != null && ! valorNodo2.getText().trim().equals("")) {
|
if (valorNodo1.getText() != null && ! valorNodo1.getText().trim().equals("") && valorNodo2.getText() != null && ! valorNodo2.getText().trim().equals("")) {
|
||||||
GrafoNodo[] nodos = getNodosEdge();
|
GrafoNodo[] nodos = getNodosEdge();
|
||||||
|
|
||||||
if (nodos[0] == null || nodos[1] == null || ! noDirigido.nodeExists(nodos[0]) || ! noDirigido.nodeExists(nodos[1])) {
|
if (grafoTipos.getTipo() == Grafo.Tipos.NO_DIRIGIDO) {
|
||||||
|
if (nodos[0] == null || nodos[1] == null || !noDirigido.nodeExists(nodos[0]) || !noDirigido.nodeExists(nodos[1])) {
|
||||||
Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
|
Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
|
||||||
}
|
}
|
||||||
else if (! noDirigido.edgeExists(nodos[0], nodos[1])) {
|
else if (!noDirigido.edgeExists(nodos[0], nodos[1])) {
|
||||||
Main.mostrarError(resourceBundle.getString("grafoNoEdge"), resourceBundle);
|
Main.mostrarError(resourceBundle.getString("grafoNoEdge"), resourceBundle);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
noDirigido.removeEdge(nodos[0], nodos[1]);
|
noDirigido.removeEdge(nodos[0], nodos[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
if (nodos[0] == null || nodos[1] == null || dirigido.findVertexByName(String.valueOf(nodos[0].getValue())) == null || dirigido.findVertexByName(String.valueOf(nodos[1].getValue())) == null) {
|
||||||
|
Main.mostrarError(resourceBundle.getString("grafoNoNodo"), resourceBundle);
|
||||||
|
}
|
||||||
|
else if (!edgeExists(nodos[0], nodos[1])) {
|
||||||
|
Main.mostrarError(resourceBundle.getString("grafoNoEdge"), resourceBundle);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dirigido.removeEdge(dirigido.findVertexByName(String.valueOf(nodos[0].getValue())), dirigido.findVertexByName(String.valueOf(nodos[1].getValue())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
Main.mostrarError(resourceBundle.getString("grafoNoEdge"), resourceBundle);
|
Main.mostrarError(resourceBundle.getString("grafoNoEdge"), resourceBundle);
|
||||||
}
|
}
|
||||||
@ -369,6 +438,26 @@ public class GrafoController implements Initializable {
|
|||||||
return nodos;
|
return nodos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Buscar un grafo dirigido para ver si existe en edge entre los nodos.
|
||||||
|
*
|
||||||
|
* @param nodo1 GrafoNodo: El primer nodo a buscar.
|
||||||
|
* @param nodo2 GrafoNodo: El otro nodo a buscar.
|
||||||
|
*
|
||||||
|
* @return boolean: Verdad si existe el edge.
|
||||||
|
*/
|
||||||
|
private boolean edgeExists(GrafoNodo nodo1, GrafoNodo nodo2) {
|
||||||
|
List<Grafo.Edge<GrafoNodo>> edges = dirigido.getEdges();
|
||||||
|
for (Grafo.Edge<GrafoNodo> edge : edges) {
|
||||||
|
Grafo.Vertex<GrafoNodo> vFrom = edge.getFrom();
|
||||||
|
Grafo.Vertex<GrafoNodo> vTo = edge.getTo();
|
||||||
|
if (vFrom.getData() == nodo1 && vTo.getData() == nodo2) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generar la canvas con el grafo.
|
* Generar la canvas con el grafo.
|
||||||
*/
|
*/
|
||||||
@ -510,38 +599,12 @@ public class GrafoController implements Initializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Todo: Remove this
|
|
||||||
// Self
|
|
||||||
/*dirigido.addEdge(dirigido.getVertex(0), dirigido.getVertex(0), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(1), dirigido.getVertex(1), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(2), dirigido.getVertex(2), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(3), dirigido.getVertex(3), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(4), dirigido.getVertex(4), WEIGHT);*/
|
|
||||||
|
|
||||||
// Horizontals
|
|
||||||
/*dirigido.addEdge(dirigido.getVertex(0), dirigido.getVertex(1), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(1), dirigido.getVertex(0), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(2), dirigido.getVertex(3), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(3), dirigido.getVertex(2), WEIGHT);*/
|
|
||||||
|
|
||||||
// Verticals
|
|
||||||
//dirigido.addEdge(dirigido.getVertex(0), dirigido.getVertex(2), WEIGHT);
|
|
||||||
//dirigido.addEdge(dirigido.getVertex(2), dirigido.getVertex(0), WEIGHT);
|
|
||||||
//dirigido.addEdge(dirigido.getVertex(1), dirigido.getVertex(3), WEIGHT);
|
|
||||||
//dirigido.addEdge(dirigido.getVertex(3), dirigido.getVertex(1), WEIGHT);
|
|
||||||
|
|
||||||
// Diagonals
|
|
||||||
dirigido.addEdge(dirigido.getVertex(0), dirigido.getVertex(3), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(3), dirigido.getVertex(0), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(1), dirigido.getVertex(2), WEIGHT);
|
|
||||||
dirigido.addEdge(dirigido.getVertex(2), dirigido.getVertex(1), WEIGHT);
|
|
||||||
|
|
||||||
List<Grafo.Edge<GrafoNodo>> edges = dirigido.getEdges();
|
List<Grafo.Edge<GrafoNodo>> edges = dirigido.getEdges();
|
||||||
for (Grafo.Edge<GrafoNodo> edge : edges) {
|
for (Grafo.Edge<GrafoNodo> edge : edges) {
|
||||||
Grafo.Vertex vFrom = edge.getFrom();
|
Grafo.Vertex<GrafoNodo> vFrom = edge.getFrom();
|
||||||
Grafo.Vertex vTo = edge.getTo();
|
Grafo.Vertex<GrafoNodo> vTo = edge.getTo();
|
||||||
GrafoNodo from = (GrafoNodo) vFrom.getData();
|
GrafoNodo from = vFrom.getData();
|
||||||
GrafoNodo to = (GrafoNodo) vTo.getData();
|
GrafoNodo to = vTo.getData();
|
||||||
|
|
||||||
if (from == grafoNodos[0]) {
|
if (from == grafoNodos[0]) {
|
||||||
if (to == from) {
|
if (to == from) {
|
||||||
@ -698,44 +761,118 @@ public class GrafoController implements Initializable {
|
|||||||
);
|
);
|
||||||
graphicsContext.restore();
|
graphicsContext.restore();
|
||||||
}
|
}
|
||||||
|
// Line between 0 and 4
|
||||||
/*
|
if (from == grafoNodos[0] && to == grafoNodos[4]) {
|
||||||
// Line between 0 and 2.
|
|
||||||
if (grafoNodos[0] != null && grafoNodos[2] != null && noDirigido.edgeExists(grafoNodos[0], grafoNodos[2])) {
|
|
||||||
graphicsContext.strokeLine(30, 50, 30, 210);
|
|
||||||
}
|
|
||||||
// Line between 0 and 3.
|
|
||||||
if (grafoNodos[0] != null && grafoNodos[3] != null && noDirigido.edgeExists(grafoNodos[0], grafoNodos[3])) {
|
|
||||||
graphicsContext.strokeLine(45, 45, 215, 215);
|
|
||||||
}
|
|
||||||
// Line between 0 and 4.
|
|
||||||
if (grafoNodos[0] != null && grafoNodos[4] != null && noDirigido.edgeExists(grafoNodos[0], grafoNodos[4])) {
|
|
||||||
graphicsContext.strokeLine(38, 50, 125, 410);
|
graphicsContext.strokeLine(38, 50, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(345, 125.0, 410.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {120.0, 130.0, 125.0},
|
||||||
|
new double[] {400.0, 400.0, 410.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
}
|
}
|
||||||
// Line between 1 and 2.
|
// Line between 4 and 0
|
||||||
if (grafoNodos[1] != null && grafoNodos[2] != null && noDirigido.edgeExists(grafoNodos[1], grafoNodos[2])) {
|
if (from == grafoNodos[4] && to == grafoNodos[0]) {
|
||||||
graphicsContext.strokeLine(45, 215, 215, 45);
|
graphicsContext.strokeLine(38, 50, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(165, 38.0, 50.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {33.0, 43.0, 38.0},
|
||||||
|
new double[] {40.0, 40.0, 50.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
}
|
}
|
||||||
// Line between 1 and 3.
|
// Line between 1 and 4
|
||||||
if (grafoNodos[1] != null && grafoNodos[3] != null && noDirigido.edgeExists(grafoNodos[1], grafoNodos[3])) {
|
if (from == grafoNodos[1] && to == grafoNodos[4]) {
|
||||||
graphicsContext.strokeLine(230, 50, 230, 210);
|
|
||||||
}
|
|
||||||
// Line between 1 and 4.
|
|
||||||
if (grafoNodos[1] != null && grafoNodos[4] != null && noDirigido.edgeExists(grafoNodos[1], grafoNodos[4])) {
|
|
||||||
graphicsContext.strokeLine(221, 50, 125, 410);
|
graphicsContext.strokeLine(221, 50, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(375, 125.0, 410.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {120.0, 130.0, 125.0},
|
||||||
|
new double[] {400.0, 400.0, 410.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
}
|
}
|
||||||
// Line between 2 and 3
|
// Line between 4 and 1
|
||||||
if (grafoNodos[2] != null && grafoNodos[3] != null && noDirigido.edgeExists(grafoNodos[2], grafoNodos[3])) {
|
if (from == grafoNodos[4] && to == grafoNodos[1]) {
|
||||||
graphicsContext.strokeLine(50, 230, 210, 230);
|
graphicsContext.strokeLine(221, 50, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(195, 222.0, 50.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {217.0, 227.0, 222.0},
|
||||||
|
new double[] {40.0, 40.0, 50.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
}
|
}
|
||||||
// Line between 2 and 4.
|
// Line between 2 and 4
|
||||||
if (grafoNodos[2] != null && grafoNodos[4] != null && noDirigido.edgeExists(grafoNodos[2], grafoNodos[4])) {
|
if (from == grafoNodos[2] && to == grafoNodos[4]) {
|
||||||
graphicsContext.strokeLine(38, 250, 125, 410);
|
graphicsContext.strokeLine(38, 250, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(330, 125.0, 410.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {120.0, 130.0, 125.0},
|
||||||
|
new double[] {400.0, 400.0, 410.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
}
|
}
|
||||||
// Line between 3 and 4.
|
// Line between 4 and 2
|
||||||
if (grafoNodos[3] != null && grafoNodos[4] != null && noDirigido.edgeExists(grafoNodos[3], grafoNodos[4])) {
|
if (from == grafoNodos[4] && to == grafoNodos[2]) {
|
||||||
|
graphicsContext.strokeLine(38, 250, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(150, 37.0, 249.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {32.0, 42.0, 37.0},
|
||||||
|
new double[] {239.0, 239.0, 249.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
|
}
|
||||||
|
// Line between 3 and 4
|
||||||
|
if (from == grafoNodos[3] && to == grafoNodos[4]) {
|
||||||
graphicsContext.strokeLine(221, 250, 125, 410);
|
graphicsContext.strokeLine(221, 250, 125, 410);
|
||||||
}*/
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(35, 125.0, 410.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {120.0, 130.0, 125.0},
|
||||||
|
new double[] {400.0, 400.0, 410.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
|
}
|
||||||
|
// Line between 4 and 3
|
||||||
|
if (from == grafoNodos[4] && to == grafoNodos[3]) {
|
||||||
|
graphicsContext.strokeLine(221, 250, 125, 410);
|
||||||
|
|
||||||
|
graphicsContext.save();
|
||||||
|
Rotate rotate = new Rotate(210, 221.0, 249.0);
|
||||||
|
graphicsContext.setTransform(rotate.getMxx(), rotate.getMyx(), rotate.getMxy(), rotate.getMyy(), rotate.getTx(), rotate.getTy());
|
||||||
|
graphicsContext.fillPolygon(
|
||||||
|
new double[] {216.0, 226.0, 221.0},
|
||||||
|
new double[] {239.0, 239.0, 249.0},
|
||||||
|
3
|
||||||
|
);
|
||||||
|
graphicsContext.restore();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user