A continuación algunas pequeñas funciones que te permitirán realizar cálculos sobre los círculos:
/// <summary>
/// Obtener el área de un círculo
/// </summary>
/// <param name=”radius“>Radio del círculo</param>
/// <returns></returns>
public static double CircleArea (double radius)
{
return Math.PI * radius * radius;
}
/// <summary>
/// Obtener la circunferencia de un círculo
/// </summary>
/// <param name=”radius“>Radio del círculo</param>
/// <returns></returns>
public static double CircleCircumference (double radius)
{
return 2 * Math.PI * radius;
}
/// <summary>
/// Obtener el diámetro de un círculo
/// </summary>
/// <param name=”radius“>Radio del círculo</param>
/// <returns></returns>
public static double CircleDiameter (double radius)
{
return radius * 2;
}
/// <summary>
/// Obtener la coordenada de alguno de los cuatro cuadrantes de un círculo
/// </summary>
/// <param name=”center“>Punto3D para el centro del círculo</param>
/// <param name=”radius“>Radio del círculo</param>
/// <param name=”quadrant“>El cuadrante que se desea obtener (de 1 a 4)</param>
/// <param name=”precision“>Precisión decimal para hacer los cálculos.</param>
/// <returns></returns>
public static Point3D GetQuadrant (Point3D center, double radius, int quadrant, short precision)
{
switch (quadrant)
{
case 1:
return PolarPoint(center, 0, radius, precision);
case 2:
return PolarPoint(center, Math.PI / 2, radius, precision);
case 3:
return PolarPoint(center, Math.PI, radius, precision);
case 4:
return PolarPoint(center, Math.PI * 1.5, radius, precision);
default:
return null;
}
}
Para ponerlo a prueba puedes escribir un pequeño método como el siguiente:
private void jugandoConCírculosToolStripMenuItem_Click(object sender, EventArgs e)
{
Point3D pt = new Point3D();
double r = 100;
string c = “Datos acerca del círculo:” + Environment.NewLine;
c += “Centro: “ + pt.ToString() + Environment.NewLine;
c += “Radio: “ + r + Environment.NewLine;
c += “Diámetro: “ + MyClase.Trunk(MyClase.CircleDiameter(r), 2) + Environment.NewLine;
c += “Circunferencia: “ + MyClase.Trunk(MyClase.CircleCircumference(r), 2) + Environment.NewLine;
c += “Área: “ + MyClase.Trunk(MyClase.CircleArea(r), 2) + Environment.NewLine;
c += “Posición cuadrante 1: “ + MyClase.GetQuadrant(pt, r, 1, 2) + Environment.NewLine;
c += “Posición cuadrante 2: “ + MyClase.GetQuadrant(pt, r, 2, 2) + Environment.NewLine;
c += “Posición cuadrante 3: “ + MyClase.GetQuadrant(pt, r, 3, 2) + Environment.NewLine;
c += “Posición cuadrante 4: “ + MyClase.GetQuadrant(pt, r, 4, 2) + Environment.NewLine;
MessageBox.Show(c, “Test”, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Si todo ha ido bien deberías obtener un resultado parecido al siguiente:
Ponlo a prueba, piensa en cómo mejorarlo y comparte con nosotros tus progresos.