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 58 59 60 61 62
| PROCEDURE Hachurage(X0 est un entier, Y0 est un entier, X1 est un entier, Y1 est un entier, nCouleur est un entier = 0, nLargeur_trait est un entier = 1, nEcart est un entier = 10)
// Hachurage de la zone
i est un entier
nMaxix, nMaxiY est un entier
nMaxix = (X1 - X0) / nEcart
nMaxiY = (Y1 - Y0) / nEcart
nLX0, nLX1, nLY0, nLY1 sont des entiers
// Cas où la largeur de l'aire est plus grande que la hauteur
SI (X1 - X0) > (Y1 - Y0) ALORS
POUR i = 0 A nMaxiY
nLX0 = X0
nLY0 = Y1 - i*nEcart
nLX1 = Y1 - i*nEcart - Y0 + X0
nLY1 = Y0
dLigne(nLX0, nLY0, nLX1, nLY1, nCouleur,nLargeur_trait)
FIN
POUR i = 1 A nMaxix
nLX0 = X0 + i*nEcart
nLY0 = Y1
SI (X0 + i*nEcart) < (X1 - Y1 + Y0) ALORS
nLX1 = X0 + Y1 - Y0 + i*nEcart
nLY1 = Y0
SINON
nLX1 = X1
nLY1 = Y1 - (X1 - (X0 + i*nEcart))
FIN
dLigne(nLX0, nLY0, nLX1, nLY1, nCouleur,nLargeur_trait)
FIN
// Cas où la hauteur de l'aire est plus grande que la largeur
SINON
POUR i = 0 A nMaxiY
nLX0 = X0
nLY0 = Y1 - i*nEcart
SI (Y1 - (X1 - X0) - i*nEcart) > Y0 ALORS
nLX1 = X1
nLY1 = Y1 - (X1 - X0) - i*nEcart
SINON
nLX1 = X0 + (Y1 - (Y0 + i*nEcart))
nLY1 = Y0
FIN
dLigne(nLX0, nLY0, nLX1, nLY1, nCouleur,nLargeur_trait)
FIN
POUR i = 1 A nMaxix
nLX0 = X0 + i*nEcart
nLY0 = Y1
nLX1 = X1
nLY1 = Y1 - (X1 - X0) + i*nEcart
dLigne(nLX0, nLY0, nLX1, nLY1, nCouleur,nLargeur_trait)
FIN
FIN |
Partager