Foros del Web » Programando para Internet » PHP »

Pasar código de C a PHP

Estas en el tema de Pasar código de C a PHP en el foro de PHP en Foros del Web. Buenos días, estoy intentando pasar a PHP la siguiente función sacada de esta página web: http://jsbsan.blogspot.com.es/2011/0...o-o-fuera.html Y no se como pasar Código: #define MIN(x,y) (x ...
  #1 (permalink)  
Antiguo 05/12/2013, 02:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Pasar código de C a PHP

Buenos días,

estoy intentando pasar a PHP la siguiente función sacada de esta página web:

http://jsbsan.blogspot.com.es/2011/0...o-o-fuera.html

Y no se como pasar

Código:
#define MIN(x,y) (x < y ? x : y)
#define MAX(x,y) (x > y ? x : y)
A php, no se si correspondría a min y max de php.


La función completa es:

Código:
#define MIN(x,y) (x < y ? x : y)
#define MAX(x,y) (x > y ? x : y)
#define INSIDE 0
#define OUTSIDE 1

typedef struct {
double x,y;
} Point;

int InsidePolygon(Point *polygon,int N,Point p)
{
int counter = 0;
int i;
double xinters;
Point p1,p2;

p1 = polygon[0];
for (i=1;i<=N;i++) {
   p2 = polygon[i % N];
   if (p.y > MIN(p1.y,p2.y)) {
   if (p.y <= MAX(p1.y,p2.y)) {
      if (p.x <= MAX(p1.x,p2.x)) {
          if (p1.y != p2.y) {
              xinters = (p.y-p1.y)*(p2.x-p1.x)/(p2.y-p1.y)+p1.x;
              if (p1.x == p2.x || p.x <= xinters)
                counter++;
              }
           }
       }  
    }
   p1 = p2;
}

if (counter % 2 == 0)
return(Fuera);
else
return(Dentro);
}
  #2 (permalink)  
Antiguo 05/12/2013, 03:03
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Pasar código de C a PHP

Son dos funciones declaradas como si fuera constantes, y viendo el código es evidente lo que hacen. PHP ya existen, no tienes que programarlas.
¿Implementando la función de colisión de un polígono con el punto? Qué recuerdos.
  #3 (permalink)  
Antiguo 05/12/2013, 04:44
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Pasar código de C a PHP

Hola,

Entonces es como usar "min()" y "max()" en php ?

Saber si un punto está dentro o fuera de un polígono ufff!!!

Saludos
  #4 (permalink)  
Antiguo 05/12/2013, 05:45
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Pasar código de C a PHP

Sí, pero hay algoritmos ligeramente más rápidos que ese, por ejemplo el que yo he usado en algun minijuego y explicaré en algún tutorial:
http://jsfiddle.net/marlanga/R557U/
La idea es el mismo que en el tuyo, pero jugando con las comparaciones de vértices me ahorro algún paso que tú necesitas dar.
Haz click en el canvas negro para poner el punto en otro sitio.
  #5 (permalink)  
Antiguo 07/12/2013, 04:45
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Pasar código de C a PHP

Gracias por el ejemplo :)

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:07.