1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| //La pointe de la fleche est le triangle ABI
//I est son extremité, [AB] sa base, M le milieu de [AB]
//Q la queue et T la tete.
//Longueur de la pointe
double lp = 10;
//Demi longueur de la base de la pointe
double lb = 4;
int xI, yI;
//Vecteur QT
double XQT = x0 - x1;
double YQT = y0 - y1;
//Longeur de QT
double LQT2 = XQT * XQT + YQT * YQT;
double LQT = sqrt(LQT2);
//Normalisation (Vecteur unitaire)
double XU = XQT / LQT;
double YU = YQT / LQT;
//Vecteur IT
double XIT = XU * r;
double YIT = YU * r;
//Vecteur QI
double XQI = XQT - XIT;
double YQI = YQT - YIT;
//Coordonnees de I
xI = x1 + (int) XQI;
yI = y1 + (int) YQI;
//Vecteur unitaire V normal a U
double XV = - YU;
double YV = XU;
//Deux nouveux vecteurs donnent la base de la pointe : MA et MB.
//Vecteur MI
double XMI = XU * lp;
double YMI = YU * lp;
//Coordonnees de M
double xM = xI - XMI;
double yM = yI - YMI;
//Coordonnes de A
int xA = (int) (xM + XV * lb);
int yA = (int) (yM + YV * lb);
//Coordonnees de B
int xB = (int) (xM - XV * lb);
int yB = (int) (yM - YV * lb); |