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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  geometria computaciona/analitica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: geometria computaciona/analitica  (Leído 4,024 veces)
+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
geometria computaciona/analitica
« en: 8 Agosto 2016, 22:26 pm »


 quiero resolver ejercicios como ser

1.- el area que comparten dos circulos
2.- el area del circulo dentro de un triangulo
3.- area del triangulo dentro de un circulo


esa clase de ejercicios en JAVA

saludos...



por ejemplo uno de los enunciados es

y una solucion que encontre en inter es la siguiente
Código
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. public class UVa10991_Region {
  5. public static void main(String[] args) throws IOException {
  6.  
  7. int T = Integer.parseInt(in.readLine());
  8. while (T-- > 0) {
  9. StringTokenizer stk = new StringTokenizer(in.readLine());
  10. double R1 = Double.parseDouble(stk.nextToken());
  11. double R2 = Double.parseDouble(stk.nextToken());
  12. double R3 = Double.parseDouble(stk.nextToken());
  13.  
  14. double a = R2 + R3;
  15. double b = R1 + R3;
  16. double c = R1 + R2;
  17.  
  18. double alpha = Math.acos((b * b + c * c - a * a) / (2.0 * b * c));
  19. double beta = Math.acos((a * a + c * c - b * b) / (2.0 * a * c));
  20. double gamma = Math.acos((a * a + b * b - c * c) / (2.0 * a * b));
  21.  
  22. double s = (a + b + c) / 2.0;
  23. double A = Math.sqrt(s * (s - a) * (s - b) * (s - c));
  24.  
  25. double slice1 = alpha * R1 * R1 / 2.0;
  26. double slice2 = beta * R2 * R2 / 2.0;
  27. double slice3 = gamma * R3 * R3 / 2.0;
  28.  
  29. double res = A - slice1 - slice2 - slice3;
  30. System.out.printf(Locale.ENGLISH, "%.6f%n", res);
  31. }
  32.  
  33. in.close();
  34. System.exit(0);
  35. }
  36. }

me ayudan a comentarlo, no entiendo mucho

MOD EDIT: No hacer doble post.


« Última modificación: 9 Agosto 2016, 23:34 pm por rn3w » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.614


🏴 Libertad!!!!!


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #1 en: 9 Agosto 2016, 22:50 pm »

Código
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. public class UVa10991_Region {
  5. public static void main(String[] args) throws IOException {
  6. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader para leer el archivo
  7.  
  8. int T = Integer.parseInt(in.readLine()); // Obtenemos el primer Entero T (Primer Linea)
  9. while (T-- > 0) {// Mientras T sea mayor que cero, entramos al ciclo y decrementos T en 1
  10. StringTokenizer stk = new StringTokenizer(in.readLine()); //Generamos un tokenizaer, para separar los elementos en tokens
  11. //Leemos las siguientes RN variables
  12. double R1 = Double.parseDouble(stk.nextToken());
  13. double R2 = Double.parseDouble(stk.nextToken());
  14. double R3 = Double.parseDouble(stk.nextToken());
  15. //Calulamos
  16. double a = R2 + R3;
  17. double b = R1 + R3;
  18. double c = R1 + R2;
  19.  
  20. double alpha = Math.acos((b * b + c * c - a * a) / (2.0 * b * c));
  21. double beta = Math.acos((a * a + c * c - b * b) / (2.0 * a * c));
  22. double gamma = Math.acos((a * a + b * b - c * c) / (2.0 * a * b));
  23.  
  24. double s = (a + b + c) / 2.0;
  25. double A = Math.sqrt(s * (s - a) * (s - b) * (s - c));
  26.  
  27. double slice1 = alpha * R1 * R1 / 2.0;
  28. double slice2 = beta * R2 * R2 / 2.0;
  29. double slice3 = gamma * R3 * R3 / 2.0;
  30.  
  31. double res = A - slice1 - slice2 - slice3;
  32. System.out.printf(Locale.ENGLISH, "%.6f%n", res);//Imprimimos el resultado con al menos  6 decimales
  33. }
  34.  
  35. in.close();
  36. System.exit(0);
  37. }
  38. }


En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #2 en: 9 Agosto 2016, 22:58 pm »

pero que hace esta porcion de codigo?
Código:
double alpha = Math.acos((b * b + c * c - a * a) / (2.0 * b * c));
double beta = Math.acos((a * a + c * c - b * b) / (2.0 * a * c));
double gamma = Math.acos((a * a + b * b - c * c) / (2.0 * a * b));

este codigo
Código:
double s = (a + b + c) / 2.0;
calcula el radio de los tres circulos unidos sino me equivoco
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.614


🏴 Libertad!!!!!


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #3 en: 9 Agosto 2016, 23:08 pm »

Tengo algo de tiempo que no toco Geometria Analitica, solo Calculo y Calculo Ingtegral...

Quisas te sirva alguno de esos ebooks:

Código:
https://thepiratebay.org/search/Geometry/0/99/0

Deja le hecho un Ojo bien a las formulas para ver de donde salen esos calculos y poder ayudarte mejor.

Saludos!
En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #4 en: 10 Agosto 2016, 01:07 am »

Bueno, si quieres resolver esos ejercicios, más que programar, necesitarás matemáticas xD

http://math.stackexchange.com/questions/49787/area-between-three-circles-of-differing-radii#answer-49887

En esa respuesta explican todo detalladamente.
Obtener el triángulo formado por los centros de las circunferencias, y restarle los 3 sectores de las circunferencias.

Puedes ver fácilmente equivalencias entre ese código y las fórmulas matemáticas.
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.614


🏴 Libertad!!!!!


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #5 en: 10 Agosto 2016, 01:43 am »

Si es cierto si unes los radios de cada circulo con un Lapiz obtines un triangulo  ;-) ;-) ;-) Y solo hay que restarles el area que si esta en los circulos.

Area del triangulo:

Código
  1. double A = Math.sqrt(s * (s - a) * (s - b) * (s - c));

Restante:
Código
  1. double res = A - slice1 - slice2 - slice3;

En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #6 en: 10 Agosto 2016, 02:51 am »

ya entiendo



muchas gracias por su ayuda... 
« Última modificación: 10 Agosto 2016, 04:38 am por rn3w » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #7 en: 10 Agosto 2016, 12:51 pm »

No no. Los vértices del triángulo son los 3 centros de los círculos. Luego, solo hay que restar los 3 sectores circulares.
En línea

+ 1 Oculto(s)

Desconectado Desconectado

Mensajes: 298


un defecto se puede convertir en una virtud


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #8 en: 10 Agosto 2016, 15:14 pm »

uy cierto  ;-) ;-) me confundi, gracias, pero sigo con algunas dudas con este codigo de abajo


Citar
double slice1 = alpha * R1 * R1 / 2.0;
         double slice2 = beta * R2 * R2 / 2.0;
         double slice3 = gamma * R3 * R3 / 2.0;

de donde sale esa formula? se que calcula el area del circulo dentro del triangulo, pero de donde sale esa formula
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: geometria computaciona/analitica
« Respuesta #9 en: 10 Agosto 2016, 16:06 pm »

uy cierto  ;-) ;-) me confundi, gracias, pero sigo con algunas dudas con este codigo de abajo


de donde sale esa formula? se que calcula el area del circulo dentro del triangulo, pero de donde sale esa formula

El área de un círculo es: (Angulo/2) * Radio^2
Si es un círculo completo (Angulo = 2*PI), entonces queda PI*Radio^2, que es la fórmula típica del área del círculo.

Como el ángulo aquí es alpha, queda como (alpha/2) * Radio^2.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cuatro herramientas esenciales de analítica para Facebook
Noticias
wolfbcn 0 641 Último mensaje 26 Mayo 2014, 13:44 pm
por wolfbcn
Red Hat comienza a explorar la analítica cloud
Noticias
wolfbcn 0 648 Último mensaje 27 Junio 2015, 01:44 am
por wolfbcn
Así está evolucionando el mercado laboral de analítica avanzada
Noticias
wolfbcn 0 356 Último mensaje 18 Junio 2019, 02:17 am
por wolfbcn
Geometria y C++
Programación C/C++
Raiden 3 1,429 Último mensaje 17 Agosto 2020, 02:07 am
por Raiden
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines