¿Cómo conocer la longitud de un arco?

A continuación una pequeña función que te permitirá calcular la longitud de un arco.

Los arcos vienen definidos por la posición del centro, el radio, el ángulo donde se inicia y el ángulo donde finaliza. Estos ángulos van de 0 hasta 2 * PI.

En el ejemplo vamos a calcular la longitud de un arco que tiene su centro en la coordenada 0,0 con un radio de 10. Los ángulos de inicio y final son 0 y PI/2 (90 grados). Prueba a cambiar los ángulos para verificar los resultados. Puedes usar AutoCAD acotando los arcos y comprobar así los resultados.

A continuación el código:

        /// <summary>

        /// Obtiene la longitud de un arco

        /// </summary>

        /// <param name=”center“>Punto: Centro del arco</param>

        /// <param name=”radius“>Radio del arco</param>

        /// <param name=”startAngle“>Ángulo inicial</param>

        /// <param name=”endAngle“>Ángulo final</param>

        /// <returns></returns>

        public static double ArcLenght(Point3D center, double radius, double startAngle, double endAngle)

        {

            double dA = 0;

            double ln = 0;

            if (endAngle > startAngle)

            {

                dA = endAngle – startAngle;

                ln = dA * radius;

            }

            else

            {

                if (endAngle < startAngle)

                {

                    dA = ((2 * Math.PI) + endAngle) – startAngle;

                    ln = dA * radius;

                }

                else

                {

                    ln = 0;

                }

            }

            return ln;

        }

Para ponerlo a prueba puedes escribir una pequeña función parecida a la siguiente:

        private void longitudDeUnArcoToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Point3D center = new Point3D();

            double radius = 10;

            double start = 0;

            double end = Math.PI / 2;

            MessageBox.Show(“Longitud del arco: “ + MyClase.ArcLenght(center, radius, start, end), “Test”,

                             MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

El resultado debería ser parecido al siguiente:

Ponlo a prueba, piensa en cómo mejorarlo y comparte con nosotros tus progresos.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Información básica sobre protección de datos Ver más

  • Responsable: MTB Software de Ponent, SLU.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Hostinet, SL que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver Política de cookies
Privacidad