Título: Calcular la intersección de dos segmentos Publicado por: DickGumshoe en 31 Octubre 2011, 01:43 am Hola.
Estoy haciendo un programa en c++; el cual debe calcularme la intersección entre dos segmentos. Tengo planteado todo el problema. Y además, me calcula bien casi todos los tipos de intersecciones. Mi código es: Código:
Bien; ahora planteo el problema... Me coge bien todas las intersecciones, excepto los dos tipos siguientes: Código: else {if (a<c, b>d) Al ir cambiando el código, siempre me sale bien uno de los dos tipos de intersecciones de arriba, pero no soy capaz de que me salgan los dos a la vez. Con eso, completaría el programa que estoy creando. Muchas gracias. Título: Re: Calcular la intersección de dos segmentos Publicado por: rir3760 en 31 Octubre 2011, 01:58 am En ese programa asumes, por alguna razón que esto:
Código Es valido y hace lo que tu esperas de el (No es así). En C la coma es un operador secuencial, este evalúa su expresión a la izquierda y descarta su resultado. A continuación se evalúa la expresión a su derecha y ese es su resultado. Por ejemplo esto: Código Es una expresión y su resultado es 5. En tu caso esto: Código Es equivalente a: Código
Lo que debes hacer es utilizar los operadores lógicos AND/OR. Cual utilizar depende del caso y su explicación la puedes encontrar en un buen libro (Revisa los temas fijos del foro). Un saludo Título: Re: Calcular la intersección de dos segmentos Publicado por: DickGumshoe en 31 Octubre 2011, 02:08 am ¡Muchísimas gracias! He estado toda la noche mirando todo el código, y al final era solo poniendo & en vez de ",".
Título: Re: Calcular la intersección de dos segmentos Publicado por: do-while en 31 Octubre 2011, 14:18 pm ¡Buenas!
Creo que se puede hacer mucho mas corto añadiendo dos variables mas, inf y sup que indiquen el infimo y supremo del conjunto resultante, si existe: Código
Espero que entiendas la logica del programa, sino, pregunta. Se puede acortar todavia mas si conoces el operador condicional ternario. ¡Saludos! Título: Re: Calcular la intersección de dos segmentos Publicado por: DickGumshoe en 31 Octubre 2011, 14:40 pm Ah, muchas gracias a ti también.
Por ahora lo voy a hacer así, porque estoy empezando, supongo que en los manuales vendrá después cómo usar esos conceptos. De todas formas voy a probar. Gracias de nuevo. Título: Re: Calcular la intersección de dos segmentos Publicado por: ghastlyX en 31 Octubre 2011, 15:50 pm Esto se suele resolver con la técnica de máximos-mínimos, generalizable a más dimensiones. Si se tienen dos segmentos en R, su intersección claramente será el máximo de los extremos izquierdos y el mínimo de los extremos derechos (siempre que esta exista, es decir, que el máximo sea menor o igual que el mínimo).
De esta forma, queda un código muy simple: Código
Título: Re: Calcular la intersección de dos segmentos Publicado por: DickGumshoe en 31 Octubre 2011, 23:11 pm Ah, muchas gracias a ti también.
Todavía no he estudiado los tipos de librerías, así que no conocía la de <iostream>, pero muchas gracias, estoy practicando con este tipo ahora ^^ |