Cómo calcular los Cordinados de punto final en un Arco si el centro y las coordenadas de inicio son Conocidos junto con el ángulo de barrido en Android ..?

Estoy trabajando en un gráfico circular donde he dibujado arcos con ángulos de barrido conocidos.Ahora quiero mostrar las etiquetas en el centro de cada arco, o decir dibujar una línea desde el centro de cada arco.

Dado que conozco las coordenadas del centro, las coordenadas de inicio, el ángulo de barrido y el radio, quiero calcular las coordenadas finales.

También he intentado esto dibujando un triángulo que empareja todas las coordenadas y uso la fórmula de la distancia también pero no sé resolver las ecuaciones en java.

Por favor, proporcione una solución adecuada.

Trabajo en vectores. Sea el A el vector desde el centro del círculo hasta el inicio del arco. Calcular esto por

 A = start_point - centre 

Sea theta el ángulo de barrido (trabajo en radianes). Utilice una matriz de rotación para girar el inicio del arco alrededor del centro del círculo. http://en.wikipedia.org/wiki/Rotation_matrix

Explícitamente,

 newpoint_x = cos(theta)*A_x + sin(theta)*A_y newpoint_y = -sin(theta)*A_x + cos(theta)*A_y 

donde A_x es x componente de A (y de manera similar para A_y ). Entonces

 newpoint = centre + (newpoint_x,newpoint_y) 

es el punto que desea. Puede ser que el punto aparezca girado en sentido contrario (en sentido contrario a las agujas del reloj) y si es así,

 theta = -theta 

en lugar. Esto debería funcionar para usted.

Si desea evaluar el punto medio del arco, utilice

 theta = theta / 2 
 StartAngle = atan2(StartY-CenterY, StartX - CenterX) EndX = CenterX + Radius * Cos(StartAngle + SweepAngle) EndY = CenterY + Radius * Sin(StartAngle + SweepAngle) 

Otra forma: Hacer producto de matriz de

 shift by (Center - Start) rotation by SweepAngle back shift 

y aplicar esta matriz al punto de inicio (multply matriz y vector)

Estoy trabajando en el gráfico circular y dibujaré etiquetas en el punto medio entre los puntos inicial y final del arco .

  1. Tome el punto inicial del arco:

     Point2D p1 = arc.getStartPoint(); Point2D p2 = arc.getEndPoint(); 
  2. Calcular el punto medio

     Point2D midpoint = new Point2D( (p1.getX()+p2.getX())/2, (p1.getY()+p2.getY())/2); 

El punto para dibujar es el punto medio .

La fórmula del punto medio

  • Context.getApplicationContext () devuelve null en un Service
  • ¿Cómo mostrar diferentes diseños en recyclerView?
  • Tienen menú sólo aparecen en la barra de acción si ParseUser está viendo su propia publicación
  • Servlet: java.lang.ClassNotFoundException: org.json.simple.parser.ParseException
  • Los fragmentos de Viewpager de Android se actualizan al pasar
  • GCM no despertar dispositivo
  • Cómo configurar el diseño de fondo en la interfaz de usuario de Android
  • ¿Cómo hacer EditText que no se puede editar?
  • Proguard elimina el código no utilizado (en Android)
  • Cómo cargar sprite hoja con 5 filas y 5 columnas vista superior en android?
  • Encontrar un patrón dentro de una imagen
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.