elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 132
101  Programación / Programación C/C++ / Re: Intersección linea - triángulo en: 20 Julio 2014, 21:31 pm
he incluido tu usuario en el documento espero que no te moleste.

 
;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)

No molesta en absoluto, todo lo contrario y enhorabuena, ¡¡¡menudo curre te has pegado¡¡¡.

 
;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)

¡¡¡¡ Saluditos! ..... !!!!


102  Programación / Programación C/C++ / Re: Intersección linea - triángulo en: 20 Julio 2014, 15:03 pm
Aquí está resuelto simbólicamente, ahora solo hay que implementarlo.
https://drive.google.com/file/d/0Bw0QWEQBKEXLMjl4ZEt0eVk1T00/edit?usp=sharing
Muchas gracias por tu visión de lo del triángulo. Quizás haga el código.
Saludos.

Al menos a mí no se me abre el pdf  :o

Otra opción, si no me falla la geometría,  para ver si el punto es interior o no es calcular los productos vectoriales PcorteT1xPcorteT2, PcorteT2xPcorteT3 ,PcorteT3xPcorteT1 y si son paralelos, o proporcionales tienen el mismo sentido es que el punto es interior. Con ello evitamos el calcular las áreas.

¡¡¡¡ Saluditos! ..... !!!!


103  Programación / Programación C/C++ / Re: Teoría + Problema Propuesto en: 20 Julio 2014, 14:07 pm
El problema es que puts no devuelve nada. No puedo deducir el motivo. Alguien?

"Creo" que es un problema de limpiar el buffer. Mira a ver así:

Código
  1.  while (cin.get() != '\n');
  2.  while(palabras<c){
  3.    cin.getline(pal, 13);
  4.    strcpy(&p[ac], pal);
  5. *************************  
  6.  cout<<endl<<menor<<endl;
  7. *************************

Citar
Cantidad de palabras a ingresar: 5
(Recuerde que solo pueden contener hasta 12 caracteres)

dsa
menor= dsa
sad
asd
menor= asd
adf
menor= adf
aas
menor= aas
dsa sad asd adf aas
aas


Y por cierto, ¿por qué usas puts con la consiguiente inclusión de la librería stdio en lugar del cout que previamente si has utilizado?.

¡¡¡¡ Saluditos! ..... !!!!


104  Programación / Programación C/C++ / Re: Archivo de audio en C en: 20 Julio 2014, 13:36 pm
¿Que diferencia hay entre el código de ivancea96 y de leosansan? Ambos son muy parecidos a
Código
  1. system("MiCancion.mp3");
Lo que pasa que con "system" sólo se puede usar con windows. ¿O estoy equivocado?

Y respecto a la otra manera, ya he añadido el libwinmm.a al proyecto, pero no se como crear el res.h y res.rc de la forma que dice daryo, no lo encuentro en Dev ++ :/

Creo que todos los que te hemos puesto son para Windows.

Y respecto a lo segundo, una vez que has creado el proyecto y añadido la librería le das a File y en él a New y a su vez a Source File. Te preguntará si añadir al proyecto y le dices que sí y lo guardas como res.rc. Y análogamente con el otro fichero.


¡¡¡¡ Saluditos! ..... !!!!


105  Programación / Programación C/C++ / Re: Archivo de audio en C en: 20 Julio 2014, 12:58 pm

Y otra pequeña variante:

Código
  1. #include <windows.h>
  2.  
  3. int main(void){
  4.  sndPlaySound("C:/WINDOWS/Media/notify.wav",0);
  5.  return 0;
  6. }

¡¡¡¡ Saluditos! ..... !!!!


106  Programación / Programación C/C++ / Re: Archivo de audio en C en: 19 Julio 2014, 18:53 pm
Bien explicado, lo malo es que yo uso Dev++, y estoy mirando en "proyecto" pero no me deja escoger ninguna opción :/

"Creo" que en DeV++, una vez que creas un nuevo proyecto, vas a Project y en el mismo a Project Options y en la pestaña Parameters te sitúas en la columna Linker y ahí usas el botón Add Library Object y en la ventanita que se abre seleccionas el libwinmm.a o el que sea.

¡¡¡¡ Saluditos! ..... !!!!


107  Programación / Programación C/C++ / Re: Intersección linea - triángulo en: 19 Julio 2014, 18:36 pm
En efecto es justo lo que yo estaba escribiendo en latex, no se me había ocurrido lo de las áreas, muy inteligente por tu parte.
..................................................

Gracias, gracias.

Sólo una pequeña observación, si alguno de los triángulos  PcorteT1T2, PcorteT2T3, PcorteT3T1 da de área cero es que el punto está "sobre" uno de los lados.

Un fuerte saludo avesudra.
108  Programación / Programación C/C++ / Re: Intersección linea - triángulo en: 19 Julio 2014, 18:20 pm
Saludos Leosansan el problema que se plantea........................ aquí estamos hablando de Recta-Triángulo o rigurosamente hablando a Recta-Plano y solo en una región del plano determinada.

Considerando el problema en más profundidad el corte entre la Recta del rayo y el Plano del triángulo daría un punto de corte, que además habría que comprobar si está dentro del triángulo, cosa que es bastante complicada y que estoy ahora mismo mirando.
..................................


El que planteas es otro punto de vista, válido por supuesto.

Y si ese es el caso bastaría con hallar el punto de corte del rayo con el plano y después determinar si dicho punto es interior o no.

1.*

Para lo primero se resuelve el determinante formado por (x-x1,y-y1,z-z1), siendo (x1,y1,z1) uno de los tres vértices del triángulo y los dos vectores (vx,vy,vz) y (wx,wy,wz) correspondientes a, por ejemplo, T1T2 y T1T3. Ello nos dará la ecuación del plano de la forma típica Ax+By+Cz+D=0.

A continuación se sustituye la recta del rayo en forma paramétrica, donde (ax,ay,az) es el vector del rayo y (X1,Y1,Z1) un punto del mismo (no "problem" porque tenemos dos puntos del rayo por lo que podemos hallar tanto el vector  como un punto del mismo):

x=X1+ax*t
y=X1+ay*t
z=Z1+az*t

como decía, se sustituyen las ecuaciones anteriores en la ecuación del plano, de donde se obtiene el valor de "t" que sustituido en las anteriores ecuaciones paramétricas nos dan el valor del punto intersección del rayo con el plano.

2.*
Ahora queda determinar si es interior o exterior para lo cual hay multitud de métodos. Uno simple, ya que su uso sólo implica calcular áreas de triángulos cosa que es fácil con el producto "vectorial", consiste en calcular las áreas de los triángulos PcorteT1T2, PcorteT2T3, PcorteT3T1 y si es igual al área del triángulo T1T2T3 está dentro, si no está fuera.

Pero insisto es que es una de las diversa maneras de hacerlo, lo indico por la facilidad mencionada del calculo de las áreas.

Y esto dicho a toda pastilla, si me "asiento" un poco seguro que le buscamos la vuelta de una manera más sencilla.  ;)

¡¡¡¡ Saluditos! ..... !!!!



EDITADO: Con la correción de producto vectorial por escalar.  :silbar:
109  Programación / Programación C/C++ / Re: Archivo de audio en C en: 19 Julio 2014, 17:23 pm
..........................................
Edito: Va genial, pero, ¿no se puede abrir el archivo con C, verdad? O sea, lo que hace system, es abrir el archivo con el reproductor de windows, para que se abriera en mi programa, tendría que crear yo un reproductor de audio, ¿me equivoco?
...................................
.

Antes que nada, me alegro que lo simple te funcione bien.

Conste que yo dije que era  un método sencillo, no el mejor. Pero sin usar las API de Windows ni librerías externas no se puede pedir más. Y si no, aquí estamos todos para aprender cosas nuevas.

Y sí, el archivo se abre con el reproductor que se corresponda con, en este caso, .mp3. Lo otro sería "crear" un reproductor y eso me suena a palabras mayores.

¡¡¡¡ Saluditos! ..... !!!!


110  Programación / Programación C/C++ / Re: Intersección linea - triángulo en: 19 Julio 2014, 16:21 pm
Gracias por la respuesta, ahora estoy intentando aplicarlo en 3D, la cosa se complica

Un poquitín solamente.

Sin entrar demasiado a estudiar la poscición relativa de las rectas, por entrar de lleno en el meollo del problema, tendrías:

Código
  1. vector de la recta R1 R2:
  2. vx  = ( x2 - x1 ) ... vy  = ( y2 - y1 ) ... vz  = ( z2 - z1 )  
  3.  
  4. ecuacion continua de la recta R1 R2:
  5. ( x - x1 ) / vx = ( y - y1 ) / vy = ( z - z1 ) / vz
  6.  
  7. ecuaciones implicitas de la recta R1 R2:
  8. vz * x - z * vx = x1 * vz - z1 * vx (1)
  9. vz * y - z * vy = y1 * vz - z1 * vy (2)
  10.  
  11. vector de la recta T1 T2:
  12. wx  = ( X2 - X1 ) ... wy  = ( Y2 - Y1 ) ... wz  = ( Z2 - Z1 )  
  13.  
  14. ecuacion continua de la recta T1 T2:
  15. ( x - X1 ) / wx = ( y - Y1 ) / wy = ( z - Z1 ) / wz
  16.  
  17. ecuaciones implicitas de la recta T1 T2:
  18. wz * x - z * wx = X1 * wz - Z1 * wx (3)
  19. wz * y - z * wy = Y1 * wz - Z1 * wy (4)
  20.  
  21.  
  22.  if ( vx / wx = vy / wy = vz / wz )
  23.    son paralelas o coincidentes ==> no punto de corte
  24.  else
  25.    resolver las ecuciones (1), (2), (3) , por ejemplo por la regla de Cramer,
  26.    y sustituir el punto obtenido en (4). Si se cumple la igualdad de (4)
  27.    es que es el punto de corte, si no se cruzan y no hay corte.
  28.  

Espero que te sea útil.  ;)

¡¡¡¡ Saluditos! ..... !!!!


Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines