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
|
// Parcourir les points
for (uint i=0;i<cl.count();i++){
// C'est le premier point
if (i==0){ ... }
// C'est le dernier point
else if (i==cl.count()-1){ ... }
// Ce point est encadre par 2 autres points
else{
// Obtenir les donnees
fx = cl.at(i-1).x();
fy = cl.at(i-1).y();
mx = cl.at(i).x();
my = cl.at(i).y();
tx = cl.at(i+1).x();
ty = cl.at(i+1).y();
// Placer en fonction de l'angle (8 cas mais correspondent 2 a2)
if ( fx<tx && fy<ty ){
qpa.setPoint(up++,mx+5,my-5);
qpa.setPoint(dn--,mx-5,my+5);
}
else if ( fx<tx && fy>=ty ){
qpa.setPoint(up++,mx-5,my-5);
qpa.setPoint(dn--,mx+5,my+5);
}
else if ( fx>=tx && fy<ty ){
qpa.setPoint(up++,mx+5,my+5);
qpa.setPoint(dn--,mx-5,my-5);
}
else if ( fx>=tx && fy>=ty ){ // else ?
qpa.setPoint(up++,mx-5,my+5);
qpa.setPoint(dn--,mx+5,my-5);
}
}
} |
Partager