Created
June 1, 2014 21:29
-
-
Save Fhernd/ff18cc88b344b7fc8364 to your computer and use it in GitHub Desktop.
Clase que representa la entidad `Triangulo` del modelo.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ===++=== | |
// | |
// OrtizOL | |
// | |
// ===--=== | |
/*============================================================ | |
// | |
// Clase: Triangulo.cs | |
// Original en: http://goo.gl/Eygqtl | |
// | |
// Propósito: Representar la entidad Triangulo del modelo. | |
// | |
============================================================*/ | |
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace ElTriangulo.Modelo | |
{ | |
/// <summary> | |
/// Representa la entidad Triángulo. | |
/// </summary> | |
public class Triangulo | |
{ | |
#region Campos | |
/// <summary> | |
/// Punto (o vértice) no. 1 del triángulo | |
/// </summary> | |
private Punto punto1; | |
/// <summary> | |
/// Punto (o vértice) no. 2 del triángulo. | |
/// </summary> | |
private Punto punto2; | |
/// <summary> | |
/// Punto (o vértice) no. 3 del triángulo. | |
/// </summary> | |
private Punto punto3; | |
/// <summary> | |
/// Color de las líneas del triángulo. | |
/// </summary> | |
private Color colorLineas; | |
/// <summary> | |
/// Color de relleno del triángulo. | |
/// </summary> | |
private Color colorRelleno; | |
#endregion | |
#region Propiedades | |
/// <summary> | |
/// Accede y recupera el punto (o vértice) 1 del triángulo. | |
/// </summary> | |
public Punto Punto1 | |
{ | |
get | |
{ | |
return punto1; | |
} | |
set | |
{ | |
punto1 = value; | |
} | |
} | |
/// <summary> | |
/// Accede y recupera el punto (o vértice) 2 del triángulo. | |
/// </summary> | |
public Punto Punto2 | |
{ | |
get | |
{ | |
return punto2; | |
} | |
set | |
{ | |
punto2 = value; | |
} | |
} | |
/// <summary> | |
/// Accede y recupera el punto (o vértice) 3 del triángulo. | |
/// </summary> | |
public Punto Punto3 | |
{ | |
get | |
{ | |
return punto3; | |
} | |
set | |
{ | |
punto3 = value; | |
} | |
} | |
/// <summary> | |
/// Accede y reupera el color de relleno del triángulo. | |
/// </summary> | |
public Color ColorRelleno | |
{ | |
get | |
{ | |
return colorRelleno; | |
} | |
set | |
{ | |
colorRelleno = value; | |
} | |
} | |
/// <summary> | |
/// Accede y recupera el color de las líneas del triángulo. | |
/// </summary> | |
public Color ColorLineas | |
{ | |
get | |
{ | |
return colorLineas; | |
} | |
set | |
{ | |
colorLineas = value; | |
} | |
} | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Construye un triángulo con tres puntos, color de relleno, y color de líneas. | |
/// </summary> | |
/// <param name="punto1">Punto 1 del triángulo.</param> | |
/// <param name="punto2">Punto 2 del triángulo.</param> | |
/// <param name="punto3">Punto 3 del triángulo.</param> | |
/// <param name="relleno">Color de relleno del triángulo.</param> | |
/// <param name="lineas">Color de las líneas del triángulo.</param> | |
public Triangulo(Punto punto1, Punto punto2, Punto punto3, Color relleno, Color lineas) | |
{ | |
this.punto1 = punto1; | |
this.punto2 = punto2; | |
this.Punto3 = punto3; | |
this.colorRelleno = relleno; | |
this.colorLineas = lineas; | |
} | |
#endregion | |
#region Métodos | |
/// <summary> | |
/// Calcula el perímetro del triángulo. | |
/// </summary> | |
/// <returns>El perímetro del triángulo.</returns> | |
public double CalcularPerimetro() | |
{ | |
return CalcularLado1() + CalcularLado2() + CalcularLado3(); | |
} | |
/// <summary> | |
/// Calcula el área del triángulo (en px^2). | |
/// </summary> | |
/// <returns>El área del triángulo en px^2.</returns> | |
public double CalcularArea() | |
{ | |
double s = CalcularPerimetro() / 2; | |
double valorLado1 = s - CalcularLado1(); | |
double valorLado2 = s - CalcularLado2(); | |
double valorLado3 = s - CalcularLado3(); | |
return Math.Sqrt(s * valorLado1 * valorLado2 * valorLado3); | |
} | |
/// <summary> | |
/// Calcula la altura del triángulo en px. | |
/// </summary> | |
/// <returns>La altura del triángulo.</returns> | |
public double CalcularAltura() | |
{ | |
return (CalcularArea() / CalcularLado1()) * 2; | |
} | |
/// <summary> | |
/// Calcula la distancia del punto 1 al punto 2. | |
/// </summary> | |
/// <returns>Distancia del punto 1 al punto 2 (en px).</returns> | |
private double CalcularLado1() | |
{ | |
double x = Math.Pow(punto1.X - punto2.X, 2); | |
double y = Math.Pow(punto1.Y - punto2.Y, 2); | |
return Math.Sqrt(x + y); | |
} | |
/// <summary> | |
/// Calcula la distancia del punto 2 al punto 3. | |
/// </summary> | |
/// <returns>Distancia del punto 2 al punto 3 (en px).</returns> | |
private double CalcularLado2() | |
{ | |
double x = Math.Pow(punto2.X - punto3.X, 2); | |
double y = Math.Pow(punto2.Y - punto3.Y, 2); | |
return Math.Sqrt(x + y); | |
} | |
/// <summary> | |
/// Calcula la distancia del punto 3 al punto 1. | |
/// </summary> | |
/// <returns>Distancia del punto 3 al punto 1.</returns> | |
private double CalcularLado3() | |
{ | |
double x = Math.Pow(punto3.X - punto1.X, 2); | |
double y = Math.Pow(punto3.Y - punto1.Y, 2); | |
return Math.Sqrt(x + y); | |
} | |
#endregion | |
#region Métodos de Extension | |
/// <summary> | |
/// Punto de extensión no. 1. | |
/// </summary> | |
/// <returns>Mensaje de respuesta.</returns> | |
public string MetodoExtension1() | |
{ | |
return "Respuesta 1"; | |
} | |
/// <summary> | |
/// Punto de extensión no. 2. | |
/// </summary> | |
/// <returns>Mensaje de respuesta.</returns> | |
public string MetodoExtension2() | |
{ | |
return "Respuesta 2"; | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment