Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created June 1, 2014 21:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/ff18cc88b344b7fc8364 to your computer and use it in GitHub Desktop.
Save Fhernd/ff18cc88b344b7fc8364 to your computer and use it in GitHub Desktop.
Clase que representa la entidad `Triangulo` del modelo.
// ===++===
//
// 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