jipfunc
Class FInterSegment

java.lang.Object
  |
  +--jip.JIPFunction
        |
        +--jipfunc.FInterSegment

public class FInterSegment
extends JIPFunction

FInterSegment: Calcula las intersecciones de los segmentos.
DESCRIPCION: Calcula el punto de intersección de los segmentos de la imagen. La imagen debe ser de tipo Segmento.
Aplicable a tipos: SEGMENT


Field Summary
(package private)  int devx
          Variable donde devolvemos la coordenada X de la intersección
(package private)  int devy
          Variable donde devolvemos la coordenada Y de la intersección
(package private)  java.util.Vector Puntos
          Vector donde almacenaremos los puntos ya creados
(package private)  java.util.Vector Segmentos
          Vector que contiene los segmentos de la imagen
 
Fields inherited from class jip.JIPFunction
description, name, params, results
 
Constructor Summary
FInterSegment()
           Constructor de la Clase.
Obtiene los parámetros de entrada para aplicar la función.
 
Method Summary
private  int area2(int ax, int ay, int bx, int by, int cx, int cy)
           DESCRIPCIÓN
Metodo que devuelve el área (con signo) del triángulo formado por los tres puntos
Parametros de Entrada:
ax: Coordenada X del Punto 1
ay: Coordenada Y del Punto 1
bx: Coordenada X del Punto 2
by: Coordenada Y del Punto 2
cx: Coordenada X del Punto 3
cy: Coordenada Y del Punto 3

Parametros de Salida:
return: Devuelve el área del triángulo

private  boolean colinear(int p1x, int p1y, int p2x, int p2y, int p3x, int p3y)
           DESCRIPCIÓN
Metodo que nos indica si tres puntos son colineales
Parametros de Entrada:
p1x: Coordenada X del Punto 1
p1y: Coordenada Y del Punto 1
p2x: Coordenada X del Punto 2
p2y: Coordenada Y del Punto 2
p3x: Coordenada X del Punto 3
p3y: Coordenada Y del Punto 3

Parametros de Salida:
return: Devuelve True si los puntos son colineales

private  boolean InterseccionPropia(int ax0, int ay0, int ax1, int ay1, int sx0, int sy0, int sx1, int sy1)
           DESCRIPCIÓN
Metodo para calcular si dos segmentos se intersectan entre si.
Parametros de Entrada:
ax0: Coordenada X del Punto Inicial del Primer Segmento
ay0: Coordenada Y del Punto Inicial del Primer Segmento
ax1: Coordenada X del Punto Final del Primer Segmento
ay1: Coordenada Y del Punto Final del Primer Segmento
sx0: Coordenada X del Punto Inicial del Segundo Segmento
sy0: Coordenada Y del Punto Inicial del Segundo Segmento
sx1: Coordenada X del Punto Final del Segundo Segmento
sy1: Coordenada Y del Punto Final del Segundo Segmento

Parametros de Salida:
return: Devuelve true si los segmentos se intersectan.

private  boolean left(int ax, int ay, int bx, int by, int cx, int cy)
           DESCRIPCIÓN
Metodo que nos dice si un punto esta a la izquierda de otros dos.
Parametros de Entrada:
ax: Coordenada X del Punto 1
ay: Coordenada Y del Punto 1
bx: Coordenada X del Punto 2
by: Coordenada Y del Punto 2
cx: Coordenada X del Punto 3
cy: Coordenada Y del Punto 3

Parametros de Salida:
return: Devuelve True si el punto está a la izquierda

 JIPImage processImg(JIPImage img)
           Método Principal
Se llama a este método para calcular los puntos de interseccion de los segmentos de la imagen de entrada (que es de tipo Segmento).
Parametros de Entrada:
img: Imagen a procesar

Parametros de Salida:
Imagen de tipo Punto con los puntos de intersección.

(package private)  void PuntoCorte(int ax1, int ay1, int bx1, int by1, int cx1, int cy1, int dx1, int dy1)
           DESCRIPCIÓN
Metodo para calcular el punto de corte de dos segmentos.
private  boolean xor(boolean a, boolean b)
           DESCRIPCIÓN
Metodo que realiza la función XOR entre dos booleanos
Parametros de Entrada:
a: Booleano 1
b: Booleano 2

Parametros de Salida:
return: Devuelve True o False dependiendo del resultado de la función XOR

 
Methods inherited from class jip.JIPFunction
getDescription, getName, getNumParams, getNumResults, getParamDescr, getParamNames, getParamType, getParamValueBool, getParamValueImg, getParamValueInt, getParamValueReal, getParamValueStr, getResultDescr, getResultNames, getResultType, getResultValueBool, getResultValueImg, getResultValueInt, getResultValueReal, getResultValueStr, isParam, isParamAsigned, isParamRequired, isResult, isResultAsigned, isResultRequired, paramsOK, processSeq, setParamValue, setParamValue, setParamValue, setParamValue, setParamValue, setResultValue, setResultValue, setResultValue, setResultValue, setResultValue
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

Segmentos

java.util.Vector Segmentos
Vector que contiene los segmentos de la imagen

Puntos

java.util.Vector Puntos
Vector donde almacenaremos los puntos ya creados

devx

int devx
Variable donde devolvemos la coordenada X de la intersección

devy

int devy
Variable donde devolvemos la coordenada Y de la intersección
Constructor Detail

FInterSegment

public FInterSegment()

Constructor de la Clase.

Obtiene los parámetros de entrada para aplicar la función.

    Parametros de Entrada:
  • NINGUNO

    Parametros de Salida:
  • NINGUNO

Method Detail

processImg

public JIPImage processImg(JIPImage img)

Método Principal

Se llama a este método para calcular los puntos de interseccion de los segmentos de la imagen de entrada (que es de tipo Segmento).

    Parametros de Entrada:
  • img: Imagen a procesar

    Parametros de Salida:
  • Imagen de tipo Punto con los puntos de intersección.

Overrides:
processImg in class JIPFunction
Following copied from class: jip.JIPFunction
Parameters:
img - Imagen de entrada.
Returns:
Imagen de salida.

PuntoCorte

void PuntoCorte(int ax1,
                int ay1,
                int bx1,
                int by1,
                int cx1,
                int cy1,
                int dx1,
                int dy1)

DESCRIPCIÓN

Metodo para calcular el punto de corte de dos segmentos. Antes de llamar a éste método hay que comprobar que realmente existe ese punto de corte.

    Parametros de Entrada:
  • ax1: Coordenada X del Punto Inicial del Primer Segmento
  • ay1: Coordenada Y del Punto Inicial del Primer Segmento
  • bx1: Coordenada X del Punto Final del Primer Segmento
  • by1: Coordenada Y del Punto Final del Primer Segmento
  • cx1: Coordenada X del Punto Inicial del Segundo Segmento
  • cy1: Coordenada Y del Punto Inicial del Segundo Segmento
  • dx1: Coordenada X del Punto Final del Segundo Segmento
  • dy1: Coordenada Y del Punto Final del Segundo Segmento

    Parametros de Salida:
  • devx: Coloca en la variable de clase la coordenada x del punto perteneciente a la intersección
  • devy: Coloca en la variable de clase la coordenada y del punto perteneciente a la intersección


left

private boolean left(int ax,
                     int ay,
                     int bx,
                     int by,
                     int cx,
                     int cy)

DESCRIPCIÓN

Metodo que nos dice si un punto esta a la izquierda de otros dos.

    Parametros de Entrada:
  • ax: Coordenada X del Punto 1
  • ay: Coordenada Y del Punto 1
  • bx: Coordenada X del Punto 2
  • by: Coordenada Y del Punto 2
  • cx: Coordenada X del Punto 3
  • cy: Coordenada Y del Punto 3

    Parametros de Salida:
  • return: Devuelve True si el punto está a la izquierda


InterseccionPropia

private boolean InterseccionPropia(int ax0,
                                   int ay0,
                                   int ax1,
                                   int ay1,
                                   int sx0,
                                   int sy0,
                                   int sx1,
                                   int sy1)

DESCRIPCIÓN

Metodo para calcular si dos segmentos se intersectan entre si.

    Parametros de Entrada:
  • ax0: Coordenada X del Punto Inicial del Primer Segmento
  • ay0: Coordenada Y del Punto Inicial del Primer Segmento
  • ax1: Coordenada X del Punto Final del Primer Segmento
  • ay1: Coordenada Y del Punto Final del Primer Segmento
  • sx0: Coordenada X del Punto Inicial del Segundo Segmento
  • sy0: Coordenada Y del Punto Inicial del Segundo Segmento
  • sx1: Coordenada X del Punto Final del Segundo Segmento
  • sy1: Coordenada Y del Punto Final del Segundo Segmento

    Parametros de Salida:
  • return: Devuelve true si los segmentos se intersectan.


xor

private boolean xor(boolean a,
                    boolean b)

DESCRIPCIÓN

Metodo que realiza la función XOR entre dos booleanos

    Parametros de Entrada:
  • a: Booleano 1
  • b: Booleano 2

    Parametros de Salida:
  • return: Devuelve True o False dependiendo del resultado de la función XOR


colinear

private boolean colinear(int p1x,
                         int p1y,
                         int p2x,
                         int p2y,
                         int p3x,
                         int p3y)

DESCRIPCIÓN

Metodo que nos indica si tres puntos son colineales

    Parametros de Entrada:
  • p1x: Coordenada X del Punto 1
  • p1y: Coordenada Y del Punto 1
  • p2x: Coordenada X del Punto 2
  • p2y: Coordenada Y del Punto 2
  • p3x: Coordenada X del Punto 3
  • p3y: Coordenada Y del Punto 3

    Parametros de Salida:
  • return: Devuelve True si los puntos son colineales


area2

private int area2(int ax,
                  int ay,
                  int bx,
                  int by,
                  int cx,
                  int cy)

DESCRIPCIÓN

Metodo que devuelve el área (con signo) del triángulo formado por los tres puntos

    Parametros de Entrada:
  • ax: Coordenada X del Punto 1
  • ay: Coordenada Y del Punto 1
  • bx: Coordenada X del Punto 2
  • by: Coordenada Y del Punto 2
  • cx: Coordenada X del Punto 3
  • cy: Coordenada Y del Punto 3

    Parametros de Salida:
  • return: Devuelve el área del triángulo