Dados 4 puntos (x1, y1) (x2, y2) (x3, y3) (x4, y4), ¿cómo encuentro el área delimitada por estos puntos en la programación en C?

Las respuestas anteriores describen algunos métodos correctos pero se pierden detalles que OP podría encontrar útiles.

Este problema se puede resolver mediante un par de métodos:

Método 1

Debes haber leído sobre el área de la fórmula del triángulo usando la fórmula de Heron
Sobre la base de esta fórmula, el área de un cuadrilátero cíclico usando la fórmula de Brahmagupta es:


dónde


Esto es quizás más fácil si sabes cuáles son los lados del polinomio dado.
Sin embargo, en tu caso no tienes todos los lados.

Veamos primero el otro método.

Método 2

Esto se basa en el hecho de que todos los puntos están en orden horario / antihorario. En tal caso, el área de un polígono se puede calcular mediante la fórmula Shoelace:

Dadas las condiciones del problema, podemos ver el hecho de que parece mucho más fácil de resolver a través del método 2. Sin embargo, solo hay un problema de que los puntos estén en el sentido horario / antihorario.

Dado que su enunciado del problema no menciona ningún detalle de si los puntos están en el sentido de las agujas del reloj, tenemos que organizar los puntos en el orden de las agujas del reloj.

Hay algunas formas interesantes de ordenar los puntos en el sentido de las agujas del reloj.
Los siguientes enlaces de stackoverflow establecen bastantes métodos para hacerlo:

[1] ¿Ordenar puntos en el sentido de las agujas del reloj?
[2] Ordenar cuatro puntos en orden horario

Una vez que tenga los puntos en el sentido de las agujas del reloj, puede aplicar el método 1 o el método 2. Aplicar el método 2 obviamente será más fácil.

¡Espero que esto ayude!

Suponiendo que los puntos [matemática] (x1, y1), (x2, y2), (x3, y3), (x4, y4) [/ matemática] se dan en el sentido horario / antihorario, la ecuación será,

[matemáticas] | (x1 \ times y2) – (y1 \ times x2) [/ math] [math] + (x2 \ times y3) – (y2 \ times x3) [/ math] [math] + (x3 \ times y4) – ( y3 \ veces x4) [/ matemáticas] [matemáticas] + (x4 \ veces y1) – (y4 \ veces x1) | [/ math] [math] \ times 0.5 [/ math]

En lugar de hacer tu tarea por ti, te daré algunas pistas que me vienen a la mente.

Para la zona:
Usa la fórmula Brahmagupta,
Área = SqRt [(sa) (sb) (sc) (sd)] (donde a, b, cyd son las longitudes de los cuatro lados del cuadrilátero, y s = (a + b + c + d) / 2)

Para encontrar los lados, encontrar el polígono a través de esos puntos, un consejo aquí sería buscar el enfoque de división y conquista de Google para el casco convexo. Aunque esto puede ser una exageración, te ayudará a pensar.

Espero que esto ayude, feliz codificación 🙂

Es fácil de verdad. 1) Encuentra una fórmula, 2) escribe un programa.

Realmente no me gustaría darle una solución y echar a perder toda la diversión.

Si tiene una pregunta específica, como:

“¿Cómo acepto la entrada del usuario en C”

o “cómo multiplico números”

y google no tiene una respuesta, no dude en preguntar nuevamente.

Respuesta del usuario de Quora a ¿Cómo escribo el programa C para el área formada por 4 puntos de coordenadas?