2.2.1.Plan orizontal
Umplerea unei suprafeţe cu un plan orizontal este utilă în toate cazurile în care se doreşte umplerea întregii SD (sau a unei porţiuni) cu o cotă constantă.
SuprafaţăDiscretă.PuneOrizontal( //pune o valoare orizontală pe o SD
Real rValoare, //valoarea de umplere
Întreg nModulDePunere = PM_NONE, //tipul de operaţie de combinare cu SD
Boolean bTotul = ADEVĂRAT //locul de punere peste tot sau numai în mască
)
{
PentruFiecare(Întreg nI = 1; nI <= nX; nI++)
PentruFiecare(Întreg nJ = 1; nJ <= nY; nJ++)
Dacă(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, rValoare, nModulDePunere);
} //PuneOrizontal
2.2.2.Plan înclinat
Rolul acestei metode este de a pune un plan înclinat care trece prin trei puncte.
SuprafaţăDiscretă.PunePlan3P( //pune un plan înclinat pe o SD
Punctp1, p2, p3, //cele 3 puncte prin care trece planul
Întreg nModulDePunere = PM_NONE, //tipul de operaţie de combinare cu SD
Boolean bTotul = ADEVĂRAT //locul de punere peste tot sau numai în mască
)
{
CPlan3Puncte pl3p; //Creează un obiect de tip plan
pl3p.Iniţializează(p1, p2, p3); //Iniţializează planul cu cele trei puncte
PentruFiecare(Întreg nI = 1; nI <= nX; nI++)
PentruFiecare(Întreg nJ = 1; nJ <= nY; nJ++)
Dacă(bTotul SAU m[nI, nJ])
PuneLa(nI, nJ, pl3p.IaDeLaZ(IndexÎnRealPtX(nI), IndexÎnRealPtY(nJ)), nModulDePunere);
}/PunePlan3P
Notă: Clasa CPlan3Puncte nu a fost discutată. S-au folosit două metode ale ei, una (Iniţializează) care o iniţializează cu un set de trei puncte p0, p1, p2 şi alta (IaDeLaZ) care returnează valoarea Z pentru un X şi Y. Implementarea acestei clase nu face parte din acestă lucrare.
Dostları ilə paylaş: |