Skip to Content

Hola, todos.

Recordemos un poco las clases de geometría.

Cuando se desea calcular el área de un polígono, utilizamos algunas fórmulas que ya fueron definidas por alguien más. Pero estas fórmulas aplican mayormente para los polígonos regulares.

¿Ejemplos de polígonos regulares? El triángulo, el cuadrado, trapecio, pentágono, etc.

¿Y si el polígono no es regular, qué pasa? ¿Y si el polígono no es convexo, qué pasa?

Pues, existe un método que permite calcular el área de cualquier polígono. Y este método está en función de la ubicación de los vértices del polígono.

Para empezar, tenemos que escoger un vértice cualquiera y asignarle el número 1. Después, el resto de vértices se van a numerar en sentido contrario a las manecillas del reloj. Entonces, para un triángulo tendremos vértices numerados del número uno al número tres; para un cuadrado, tendremos vértices numerados del número uno al número cuatro. Y así sucesivamente.

Una vez numerados, los ponemos en un arreglo de números, repitiendo (al final) la ubicación del primer vértice. Por ejemplo, para el triángulo ABC cuyos vértices están ubicados en los puntos (1,0), (3,2) y (2,5), tenemos el siguiente arreglo:

Vértice Id x1 x2
A 1 1 0
B 2 3 2
C 3 2 5
~A 4 1 0

Luego se definen dos variables, D e I, de la siguiente manera:

D = (1*2) + (3*5) + (2*0) = 17

I = (0*3) + (2*2) + (5*1) = 9

Con este cálculo, el área del triángulo ABC es:

A = 0.5 * | (D-I) |

A = 0.5 * | 17-9 |

A = 0.5 * | 8 |

A = 0.5 * 8

A = 4

De manera más general, D se define como la suma de las multiplicaciones hacia abajo y a la derecha de x1 y x2. I se define como la suma de las multiplicaciones hacia abajo y a la izquierda de los mismos valores x1 y x2. Esto funciona para cualquier polígono, sin importar su forma o su número de vértices.

(Esta forma de calcular el área funciona debido a la triangulación que se realiza dentro de los polígonos. El área de estos triángulos tiene signo, es decir, habrá áreas positivas y áreas negativas. Si quieres más detalles, mándame un mensaje por favor.)

Regresando a HANA…

En tu esquema (el mío es JC):

set schema JC; 
drop table COORDINATES; 
create column table COORDINATES( 
          v INTEGER, 
          x1 FLOAT, 
          x2 FLOAT 
); 
insert into COORDINATES values(1,1,0); 
insert into COORDINATES values(2,3,2); 
insert into COORDINATES values(3,2,5); 
insert into COORDINATES values(4,1,0); 
DROP TABLE SUMA; 
CREATE GLOBAL TEMPORARY TABLE SUMA( 
          COL VARCHAR(2), 
          X FLOAT  
); 
DROP TABLE MULTIPLICA; 
CREATE GLOBAL TEMPORARY TABLE MULTIPLICA ( 
          v INTEGER, 
          x1 FLOAT, 
          x2 FLOAT 
); 
CALL "_SYS_BIC"."area.poligon/area"(?)  

Los archivos donde está implementado el algoritmo (area.procedure y poligonoArea.sql) se encuentran en este repositorio de Github.

To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

  1. Guillermo Cruz

    Muy interesante, tomaré este ejemplo para aplicarlo como mis primeros pasos en HANA, voy a empezar a aprender en unos dias 🙂 Saludos!

    (0) 
    1. José Carlos Méndez Post author

      Qué bueno que te gustó.

      Todos los temas relacionados con SAP HANA están muy interesantes.

      Igual tengo otras publicaciones (en inglés) sobre HANA que también te pueden interesar.

      Saludos.

      (0) 
  2. Miguel Enriquez

    Jose Carlos y Guillermo Cruz, tengo varias dudas sobre Hana, les agradezco me orienten:

    1) Hana reemplaza a Abap verdad?

    2) Si me quiero certificar en que me recomiendan en ABAP o Hana?

    3) Manuales/Tutoriales de inicio en Hana?

    4) Que ambiente debo de tener? que transaccion debo de empezar a usar en Hana? recorder que la se38 o se80 es para Abap.

    5) Foros/Blogs que recomeinden?

    Agradezco cualqueir cometnario a esta pregunta y en general a tips.

    Saludos desde Chihuahua Mexico.

    (0) 
    1. José Carlos Méndez Post author

      Hola, Miguel Enriquez.

      Vamos punto a punto, que hay varias cosas que están mal ahí.

      1. HANA no tiene nada que ver con ABAP, por eso no puedes hablar de un remplazo. Para una tentativa de remplazo, tendrían que tener por lo menos un punto en el cual sean comparables.
      2. Son dos cosas diferentes. Yo personalmente recomendaría la certificación en HANA, pero simplemente porque es una tecnología nueva y creo que le podrías sacar más provecho en un futuro; aunque, con la certificación en ABAP, podrías ver beneficios de manera más inmediata.
      3. Hay varios cursos en OpenSAP con los que puedes aprender HANA. También está toda la documentación en SAP HANA – SAP Help Portal Page
      4. En la documentación se encuentran los requerimientos que debes cumplir para instalar HANA. No hay transacciones para “empezar” en HANA.
      5. SCN.

      Espero que estas respuestas te hayan ayudado.

      Si tienes más dudas, o cualquier cosa, aquí nos seguimos leyendo.

      (0) 
      1. Miguel Enriquez

        Gracias Jose….

        Pregunte por que un amigo al comentarle de mi deseo de certificarme en ABAP me comento que era mejor certificarse en HANA, entendi que ese era el Nuevo camino.

        Gracias, estare al pendiente, al respect y de sus publicaciones(ya lo sigo!!!!).

        Saludos.

        (0) 

Leave a Reply