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.