Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4068 miembros registrados.
El último usuario registrado es Schwarz54.

Nuestros miembros han publicado un total de 84121 mensajes en 11982 argumentos.

Interseccion de rectas en R2

Ver el tema anterior Ver el tema siguiente Ir abajo

Interseccion de rectas en R2

Mensaje por Metalero el 2012-06-21, 18:55

Prefacio

Entre miles de cosas que estoy haciendo, una de ellas es un sistema propio de GUI (Graphic User Interface) para Unity, y luego de terminar una de las partes mas pesadas, pase a la parte divertida, programar cada uno de los controles.
Llegue al Slider:



En el slider un puede apretar sobre la barra (no sobre la "manija") y esta va automáticamente a la posición donde le corresponde, y ademas mientras mantenemos el boton del mouse apretado, por mas que lo "saquemos" del recuadro del slider, la manija se sigue moviendo dentro de este a donde le corresponde.
Esto es sencillo para slider verticales u horizontales, ya que aqui solo nos importa el eje X o Y del mouse, y luego el otro eje esta fijo segun la posicion del slider (ej: en un slider horizontal, la manija siempre esta a la misma altura, y solo varia en X)

El tema es que yo quería que el slider funcionara siempre sin importar el angulo en el que fuera dibujado. Y para esto se me ocurrio trazar 2 rectas, una paralela al slider, y otra perpendicular que pasase por la posicion del mouse y asi poder calcular donde debia posicionarse la manija:



Un poco de teoria

Bien, como demonios hago eso ahora.
En unity hay muchas herramientas para calulos de colisiones complicadas (entre cubos, esferas, planos, capsulas lineas con lo anterior), pero no tiene ningun tipo de funcion interna directa para algo como esto, y si bien podria habermelas rebuscado para trasnforma una de las lineas en un plano y bla bla bla... me parecia mas simple hacer el calculo por mi cuenta

Agarre papel y lapiz y escribi mas o menos lo que me acordaba.
Pero antes un poco de teoria.

Todos sabemos lo que es un recta en R2 (muy brutamente en 2 dimensiones), asi que no voy a explicar eso.
Hay 2 formas comunes de representar rectas matematicamente:

como funcion explícita:

Código:

x = m.y + b

o de forma parametrica

Código:


V : α.(x,y,z) + (a,b,c)

con

Código:

(x,y,z) : vector dirección
(a,b,c) : punto de paso

Dandole valores a α (en los Reales) vamos recorriendo todos los puntos de la recta


Para casi todo tipo de manejo geometrico, las formas parametrícas ofrecen mucha mas simplicidad a la hora de trabajar.

Para halla la interseccion, teniendo dos rectas simplemente hacemos esto:

Código:


α.(x,y) + (a,b) = β.(u,v) + (d,e)
(αx + a, αy + b,) = (βu + d, βv + e,f)

Y nos queda un sistema de 2 ecuaciones:

{ αx + a = βu + d => αx - βu  = d - a
{ αy + b = βv + e => αy - βv = e - b

Resolvemos el sistema y listo.

Y lo que nosotros queremos hallar es el valor del α o β, y luego reemplazarlo en la recta a la que corresponde y obtenemos el punto.

Ojo: si las rectas son paralelas nos va a terminar quedando algo como "0 = k" en una de las ecuaciones y pueden pasar dos cosas:

1 - Que el sistema no tenga solucion (con k != 0 => Absurdo!, no existe punto de interseccion
2 - Que sean la misma recta (con k = 0), por lo cual la interseccion es la recta misma.

Metodo de Gauss

Aca es donde entra nuestro amigo Gauss y su metodo de Gauss para resolver sistemas de ecuaciones usando matrices.

Basicamente del sistema anterior nos armamos la matriz correspondiente:

Código:


[x  -u  | d - a]
[y  -v  | e - b]


Y la idea, es, mediante ciertas operaciones, en principio (si uno lo hace a mano) llegar a una matriz triangular:

Código:


[m  n | h]
[0  ñ | i ]

Que pasandolo de nuevo a sistema:

{  αm + βn = h
{  α0  + βñ = i  => β = i/ñ (y despues reemplazamos arriba y listo)


Los operaciones validas que se pueden realizar un una matriz de este tipo, son:

1) cambiar filas de lugar (basicamente estamos poniendo una ecuacion arriba o abajo de otra, y esto no afecta el resultado)

Código:

[1  2  |  3]    =>  [9  0  |  1]
[9  0  |  1]    =>  [1  2  |  3]

2) multiplicar todos los elementos de una fila por un escalar (multiplicar todos los elementos por un numero (real en este caso))

Código:

[1  2  |  3]    =>(x4)  [4  8  |  12]
[9  0  |  1]    =>        [9  0  |  1]

3) sumar/restar una fila por un múltiplo de otra fila

Código:

[1  2  |  3]    =>                  [1    2  |    3]
[9  0  |  1]    =>(+ -9 Fila1)  [0  -18  |  -26]

Con estas operaciones triangular la matriz es muy simple.

Ademas, por cuestiones de simplicidad a la hora de hacer el algoritmo, seria aun mejor poder llegar a algo de la forma:

Código:

[1  0  |  q]   
[0  1  |  s] 

ya que cuando uno lo pasa a ecuaciones nos queda resuelto:

Código:

{    α = q
{    β = s


Manos a la obra

Esto obviamente si bien es extremadamente útil para resolver sistemas grandes cuando uno lo hace a mano, no tiene sentido en sistemas tan chicos como este ultimo (dos ecuaciones y dos incógnitas). Es mucho mas simple resolverlo de la forma simple, despejando una variable en función de otra, y reemplazando lo que obtuvimos en la ecuación que falta.

Por que diablos hice todo el despelote ese con Gauss? Por una buena razón:

Le método de Gauss es MECÁNICO, esto significa es es un procedimiento especifico, un ALGORITMO. Por eso, es muy fácil resolver sistemas de ecuaciones con este método sin pensar mucho, y lo mas importante, es posible llevarlo a código.


En situaciones generales, para pasarlo a codigo, los mas util es tener una estructura/clase Vector y otra estructura/clase Matriz para representar estos elementos.
Como nuestro problema solo tiene Vectores en 2D y una matriz de 3 x 2, tranquilamente lo podemos manejar con variables sueltas (perfecto si lo queremos hacer en un engine)

Pseudo Codigo

Antes de poner el codigo, algunas referencias.

A las lineas las voy a llamar L1 y L2, y van a tener cada una 4 variables:

L1.dir.x => componenete X del vector dirección de L
L1.dir.y => componenete Y del vector dirección de L

L1.paso.x => componenete X de un punto de paso de L
L1.paso.y => componenete Y de un punto de paso de L

Voy a llamar EQ1 y EQ2 a cada una de las equaciones con 3 variables cada una:

EQ.a => 1º coeficiente de la ecuacion
EQ.b => 2º coeficiente de la ecuacion
EQ.c => 3º coeficiente de la ecuacion

Código:

//Seteamos las ecuaciones
EQ1.a = L1.dir.x
EQ1.b = L2.dir.x
EQ1.c = L2.paso.x - L1.paso.x

EQ2.a = L1.dir.y
EQ2.b = L2.dir.y
EQ2.c = L2.paso.y - L1.paso.y

//Antes que nada verificamos si alguna de las rectas es vertical, y calculamos aparte (para no dividir por cero)
si EQ1.a == 0
    si EQ2.a == 0
        si EQ1.b / EQ2.b == EQ1.c / EQ2.c
          las rectas son paralelas y son la misma recta
        si no
          las rectas son paralelas y nunca se cruzan
        end
    si no
        //las rectas NO son paralelas (por lo tanto se cruzan)
        EQ1.c = EQ1.c / EQ1.b
        return (EQ1.c * [L1.dir.x, L1.dir.y] + [L1.paso.x, L1.paso.y])
    fin
fin

si EQ2.a == 0
    EQ2.c = EQ2.c / EQ2.b
    return (EQ2.c * [L2.dir.x, L2.dir.y] + [L2.paso.x, L2.paso.y])

fin

//Obtenemos un 0 en el primer elemento de la "segunda fila de la matriz"
//Nos creamos una equacion temporal, igual al a equacion 2, para que las cuentas no se nos modifiquen mientras las realizamos

EQ_Temp = EQ2

EQ2.a = EQ_Temp.a - (EQ1.a / (EQ1.a / EQ_Temp.a)) //aca se ve como se obtiene el 0,
EQ2.b = EQ_Temp.b - (EQ1.b / (EQ1.a / EQ_Temp.a)) //si hubiesemos usado EQ2 en vez de EQ_Temp, estariamos dividiendo por 0
EQ2.c = EQ_Temp.c - (EQ1.c / (EQ1.a / EQ_Temp.a))

//verificamos si las rectas son paralelas
si EQ2.B == 0
  si EQ.C == 0
      las rectas son paralelas y son la misma recta
    si no
      las rectas son paralelas y nunca se cruzan
  end
end


//Hacemos que el segundo element de la "segunda fila de la matriz" sea 1
//Hacemos lo mismo con la equacion temporal
EQ_Temp = EQ2

EQ2.a = EQ_Temp.a / EQ_Temp.b //este paso es innecesario, ya que EQ2.a deberia estar valiendo cero a estas alturas, pero es lo que hay que hacer segun Gauss
EQ2.b = EQ_Temp.b / EQ_Temp.b //aca se ve claramente como se obtiene el 1
EQ2.c = EQ_Temp.c / EQ_Temp.b

//Aca ya podemos detenernos, pues ya conseguimos EQ2.c (que seria el β en los ejemplos anteriores)

return (EQ2.c * [L2.dir.x, L2.dir.y] + [L2.paso.x, L2.paso.y])


En mi caso particular, por como estaban dadas las cosas, necesitaba si o si, despejar lo que anteriormente habiamos llamado α y no el β (para podes limitar el punto a los extremos del slider)

esto lo calculamos facil agregando:

Código:


//Obtenemos un 0 en el segundo elemento de la "primer fila de la matriz"
//Nos creamos una equacion temporal, igual al a equacion 1, para que las cuentas no se nos modifiquen mientras las realizamos

EQ_Temp = EQ1

EQ1.a = EQ_Temp.a - (EQ2.a * EQ_Temp.b)
EQ1.b = EQ_Temp.b - (EQ2.b * EQ_Temp.b) http://EQ2.b es 1, asi que ahi nos queda 0
EQ1.c = EQ_Temp.c - (EQ2.c * EQ_Temp.b)

//Hacemos que el primer element de la "segunda fila de la matriz" sea 1
//Hacemos lo mismo con la equacion temporal
EQ_Temp = EQ1

EQ1.a = EQ_Temp.a / EQ_Temp.b //aca se ve claramente como se obtiene el 1
EQ1.b = EQ_Temp.b / EQ_Temp.b
EQ1.c = EQ_Temp.c / EQ_Temp.b // este es mi bendito α


Si lo miran bien, hay muchas cuentas que estan de mas (los lugares donde tiene que aparecer el 0 y el 1, podemos ni calcularlo, y mandarle directamente el 0 o 1 según corresponda, lo hice asi para que se vea como trabaja el algoritmo (ademas si uno quisiera hacer un algoritmo mas general que resuelva todo tipo de sistemas, hay que hacerlo asi.

Ademas, hacerlo asi esta bueno para probar si estamos haciendo las cosas bien, ya que estamos respetando las reglas del método de Gauss.


Eso fue todo por hoy

Bueno, espero que les haya servido, segurmanete a muchos no les parezca nada nuevo, pero a mi me parecio algo interesante, si bien hice miles de ejercicios mucho mas complicados que este, es la primera vez que lo estaba aplicando asi directamente a la programación.

Si hay algo que no se entiende, o si encuentran algún error (soy un genio pero tambien puedo equivocarme XD), son libres de hacermelo saber, y cualqueir tipo de preguntas, comentarios, criticas son bienvenidas

_________________
avatar
Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por mrhawi el 2012-06-21, 19:17

Bueno aparte de errores de teoría (no errores en la teoría, pero la forma de mencionar algunos conceptos no me parece adecuada). En fin para sistemas simples está bien usar el método de gauss, pero hay otros métodos numéricos más eficientes (que no requieren cálculo de la inversa, que es algo que usualmente no se hace en cálculo numérico), digo, porque si salen otro tipo de sistemas, taría bien usar factorización LU, mínimos cuadrados o gauss con pivoteo parcial. Pero al ver que es solamente un sistema de 2x2 está bastante simple en realidad, como mencionaste. En realidad me parece interesante la aplicación a éste tipo de cosas, porque sé que muchos desconocen la magia de conocer métodos numéricos para la resolución de problemas y terminan haciendo algo muy "mal hecho" en términos de simplicidad. Está bueno el tutorial y el ejemplo de aplicación, sos un crack!, saludos!

mrhawi
Aventurero
Aventurero

0/3

Créditos 2668

Gracias : 89

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por Poka el 2012-06-21, 20:01

@Metalero escribió:si bien hice miles de ejercicios mucho mas complicados que este

¿¿¿MÁS??? Pero si yo no he entendido naaada... (>O_O)>

Que envidia por dios. Esto es tener experiencia y lo demás son tonterías. Como se nota que trabajas con esto de la creación de juegos profesionalmente en vez de como hobby. Osea; que yo me mato 2 meses para pixelart 4 charas míos y aquí la peña creando maravillas... pfff... Pues Metalero, no puedo criticar ni mejorar tu tutorial/guia en lo más absoluto... Solo quería decirte que felicidades, me das envidia tio XD

No te digo que "me molas" para evitar mal-entendidos ;P

Oye Oye... ¿Pero esto es un engine para RPG Maker a base de coordenadas? (O.O") wow!!! naaah... esto debe ser programación aparte... ¿o no? (O_O")/

Veo que no necesitas un mapa...
avatar
Poka
Guerrero
Guerrero

0/3

Créditos 2548

Gracias : 83

https://www.youtube.com/user/Pokaranero

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por Metalero el 2012-06-21, 22:54

Gracias por los comentarios!


Bueno aparte de errores de teoría (no errores en la teoría, pero la forma de mencionar algunos conceptos no me parece adecuada)

Alguno en particular ? XD, si ya se que hay cosas que las dije muy a lo bruto, queria llegar a la parte práctica sin muchas vueltas.


En fin para sistemas simples está bien usar el método de gauss, pero hay otros métodos numéricos más eficientes (que no requieren cálculo de la inversa, que es algo que usualmente no se hace en cálculo numérico

Pero el metodo que yo propuse no usa ninguna inversa, es mas, la matriz que estoy usando ni siquiera es cuadrada.



taría bien usar factorización LU, mínimos cuadrados o gauss con pivoteo parcial.

Si bien nunca habia estudiado nada de esto, para factorización LU necesitas (como minimo) matrices cuadradas.
De minimos cuadrados, la verdad no se mucho, tampoco se como se podría usar para resolver sistemas de ecuaciones lineales.
Y lo del pivoteo parcial, segun lei, es mas bien un metodo que "mejora" la precision cuando las cuentas se hacen en computadora, y seria muy simple de implementar en el ejemplo que yo puse.

Igualmente, es muy posible que esos metodos sean utilizados formalmente en 2D y 3D donde siempre se "agrega" una variable mas (llamados sistemas de coordenadas homoegeneas) que si bien no entiendo muy bien por se usan, me imagino que (al menos) posibilitan mas calculos al hacer que las matrices sean cuadradas (3x3 en 2D y 4x4 en 3D)

Como sea... si vez que se te ocurre alguna forma mas simple de resolver este problema, no dudes en comentarlo, no seria la primera vez que complico de mas para resolver algo XD


¿¿¿MÁS??? Pero si yo no he entendido naaada... (>O_O)>

Leelo relajadamente, no es complicado.
Sistemas de ecuaciones tenes que haber visto en la escuela, y el uso de matrices, si bien hay cosas mucho mas complejas, lo que expuse en este tutorial es muy simple.


Oye Oye... ¿Pero esto es un engine para RPG Maker a base de coordenadas? (O.O") wow!!! naaah... esto debe ser programación aparte... ¿o no?

Repito, leelo mas detalladamente, este sistema (si bien es mucho mas eficiente y prolijo hacerlo en codigo) se puede hacer perfectamente como un engine.
Es mas, el pseudo codigo lo hice usando cada elemento del vector por separado para poder hacerlo con variables.
El tema... es que ahora que lo recuerdo... el endemoniado maker solo trabaja con enteros... estupido maker XD
Igualemente, se puede mutiplicar todo por un numero grande, y despues volver a dividir (se va a perder bastante precision), pero debería funcionar... o no se... que te digan los egineers del foro, de alguna forma se las deben arreglar para usar valores decimales.

_________________
avatar
Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por Wecoc el 2012-06-22, 08:15

Bueno no soy especialmente bueno en matemáticas pero tampoco se trata de unas mates muy avanzadas, así que qué mas puedo decir en este caso que no sea "Elemental, querido Metalero", mientra me fumo mi pipa y toco el violín... xDDDD

Lo de la paralela y la perpendicular está bien planteado, y luego bien traducido matemáticamente, es una simple intersección, según veo. Lo que no entiendo es por qué lo de "no sobre la manija"... en teoria si clicaras la manija y arrastraras debería servir igual ya que no deja de estar encima del slider (o línea paralela) ¿no?

¿Y qué pasaría si el slider no fuera recto? Esa maldita cosa del gradiente que todos odiamos... a integrar como locos xD Quizá sería un buen ejercicio que hacer igualmente. Claro, la interpolación lineal (como todas las interpolaciones) no es exacta, y convendría hacerla polinómica con al menos tres puntos de apoyo. Solo pensarlo ya me duele la cabeza.

Spoiler:
Según mis apuntes sería algo así:

(a calculada matricialmente)
Aunque mis apuntes pueden estar mal, claro xD

Ya no sé qué diantres estoy diciendo, quizá será mejor que me ignoréis y hagais caso a Gausselero xD No sé qué me he fumado hoy que me sentó fatal.

@Metalero escribió:El tema... es que ahora que lo recuerdo... el endemoniado maker solo trabaja con enteros... estupido maker XD
Igualemente, se puede mutiplicar todo por un numero grande, y despues volver a dividir (se va a perder bastante precision), pero debería funcionar... o no se... que te digan los egineers del foro, de alguna forma se las deben arreglar para usar valores decimales.

Yo en esos casos hago Llamar Script. Poner números grandes y luego dividir es una opción pero si tienes que hacerlo mucho... Si quiero que una variable tenga un valor decimal puedo ponerle el valor (31459265) y luego dividir (/1000000) o directamente Llamar Script ($game_variables[x] = 3,14159265) o incluso ($game_variables[x] = Math.PI) y la variable no quedará redondeada al entero. Aún así para el maker muchas veces no es requerida tanta exactitud.
avatar
Wecoc
Administrador
Administrador



Créditos 9129

Gracias : 471

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por mrhawi el 2012-06-22, 17:08

Naa en realidad metalero, me refería a cosas que los matemáticos ven como para pegar palos xD (yo no soy matemático xD por lo que no me interesa en que la rigurosidad de ésto), lo que si encuentro genial es la solución que has propuesto, la verdad cosas así son las que me gusta ver en maker, no cosas hechas a lo bruto y lo que te indicaba antes, era para hacer cosas un poco más "sofisticadas" quizás, es que hay varios métodos buenos que tienen solución a problemas. Lo que sí te recomiendo, que es eficiente para sistemas de ecuaciones lineales, es la solución de los mínimos cuadrados, te encuentra la mejor solución hasta para sistemas indeterminados (rectangulares), la con menor norma de error (solución mejor ajustada), y algoritmos para eso sobran en internet de todas formas, aunque lo que has propuesto no está mal, sólo que creo que no sale a cuenta calcular la inversa, siempre me han dicho que es ineficiente para resolver sistemas de ecuaciones. Lo otro sería un método iterativo como Gauss-Seidel o Jacobi. O uno más avanzado como Newton que igual es usado.

Para wecoc, eso que dices se llama spline cuando interpolas a 3 puntos por medio de polinomios por tramo. A todo ésto, lo que hizo metalero no fue una interpolación. Lo del gradiente no viene al caso, porque es una forma de medir una variación direccional por un tramo o supericie, es una suerte de derivada en R^m (el concepto es el mismo), aunque no le veo mucha utilidad a menos que utilices algún método como gradiente conjugado u otro tipo de solución iterativa para sistemas de ecuaciones.

De todas formas volviendo al tema, me gustaría ver qué otras cosas más haces, porque la idea del scroll me parece ingeniosa, aunque estaría bueno verlo en algo como el maker, ya que únity es una programación más avanzada (de la cual no me entero de nada xD), saludos!

mrhawi
Aventurero
Aventurero

0/3

Créditos 2668

Gracias : 89

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por Metalero el 2012-06-22, 18:15


Lo de la paralela y la perpendicular está bien planteado, y luego bien traducido matemáticamente, es una simple intersección, según veo. Lo que no entiendo es por qué lo de "no sobre la manija"... en teoria si clicaras la manija y arrastraras debería servir igual ya que no deja de estar encima del slider (o línea paralela) ¿no?

Si la verdad tenes razon, el calculo es el mismo, lo que pasa es que como cuando lo agarras desde la manija de una todo el movimiento se hace con pivot en el punto de la manija donde lo agarraste, la cuenta tiene un pequeño offset, y en instante mismo en que agarras la manija no tenes que calcular nada, (por eso cuando se me ocurrio la idea eso lo pense por separado), pero en definitiva cuando empezas a moverla es exactamente lo mismo.


¿Y qué pasaría si el slider no fuera recto? Esa maldita cosa del gradiente que todos odiamos... a integrar como locos xD Quizá sería un buen ejercicio que hacer igualmente. Claro, la interpolación lineal (como todas las interpolaciones) no es exacta, y convendría hacerla polinómica con al menos tres puntos de apoyo. Solo pensarlo ya me duele la cabeza.

Usar poliniomos te limita, pues solo podes usar curvas polinomicas (y de funciones en general), o sea, no podes tener dos puntos en el mismo X para distintos Y (o sea, por ejemplo no te sirve para dibujar un circulo, o una letra C), a menos que te metas con complejos, pero es quilombo. (la verdad con Splines no trabaje nunca, asi que por ahi estoy diciendo cualquiera)
Y bueno, en 3D la verdad no se como se hace. Se que existen unos sistemas que parten de lso Splines llamados B-Splines, de los cuales ciertos casos particulares son las curvas de Bezier (con las cuales trabaje bastante)

El problema es que calcular interseccion entre curvas y rectas es complicado (si no imposible, la verdad no se tanto)


Algo que si es facil de hacer (y lo habia hecho hace bastante, en una version mas vieja del sistema de GUI que estoy diciendo) es un slider circular (o una porcion de arco de un circulo)


De todas formas volviendo al tema, me gustaría ver qué otras cosas más haces, porque la idea del scroll me parece ingeniosa, aunque estaría bueno verlo en algo como el maker, ya que únity es una programación más avanzada (de la cual no me entero de nada xD), saludos!

El problema es que en unity, para comprboar que estoy cliqueando sobre alguno de los controles, ya tengo las funciones internas de ray-casting.
En el maker hay dos cosas que habria que implementar:

primero el calculo de interseccion punto-rectangulo (para rectangulos NO rotados es una pavada, para rectangulos SI rotados, no es dificil, pero tiene sus complicaciones, se como hacerlo en una cuenta a mano, pero tendria que ver como pasarlo a codigo)

segundo, habria que implementar todo un sistema de nodos ordenados por cooerdenada Z (el Z del sprite), para poder definir bien que pasa cuando uno pasa el mouse por encima de 2 rectangulos superpuestos (solo tendria que dispararse el evento sobre el sprite que esta mas adelante)

Igualmente, la interseccion entre rectas se puede usar para muchas otras cosas, calcular en donde va a chocar algo, o si va a chocar o no (muy util para proyectiles que se mueven muy rapido, y podrian llegar a pasarse de largo), algun tipo de proyeccion...)

_________________
avatar
Metalero
Administrador
Administrador



Créditos 1715

Gracias : 98

Volver arriba Ir abajo

Re: Interseccion de rectas en R2

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.