51 lines
1.1 KiB
C#
51 lines
1.1 KiB
C#
namespace Algorithms;
|
|
public class Triangle
|
|
|
|
{
|
|
|
|
private Point sommet1;
|
|
private Point sommet2;
|
|
private Point sommet3;
|
|
|
|
public Point Vertex1 { get {return sommet1;}}
|
|
public Point Vertex2 { get {return sommet2;}}
|
|
public Point Vertex3 { get {return sommet3;}}
|
|
|
|
public Point GetVertexById(int id){
|
|
if(id == 0){
|
|
return Vertex1;
|
|
}
|
|
if(id == 1){
|
|
return Vertex2;
|
|
}
|
|
return Vertex3;
|
|
}
|
|
|
|
|
|
public Point RandomSummit(Random random){
|
|
int id = random.Next(3);
|
|
return GetVertexById(id);
|
|
}
|
|
|
|
public Triangle(Point sommet1,Point sommet2,Point sommet3)
|
|
{
|
|
this.sommet1 = sommet1;
|
|
this.sommet2 = sommet2;
|
|
this.sommet3 = sommet3;
|
|
}
|
|
|
|
public static Triangle Equilateral(double longueur)
|
|
{
|
|
|
|
Point sommet1 = new Point(0,0);
|
|
Point sommet2 = new Point(0, longueur);
|
|
|
|
// H2 = A2 + B2
|
|
// B = sqrt (H2 - A2)
|
|
|
|
double x = Math.Sqrt(longueur*longueur - longueur*longueur/4);
|
|
Point sommet3 = new Point(x, longueur/2);
|
|
return new Triangle(sommet1, sommet2, sommet3);
|
|
}
|
|
|
|
} |