Mulţumiri



Yüklə 1,64 Mb.
səhifə61/118
tarix03.01.2022
ölçüsü1,64 Mb.
#34196
1   ...   57   58   59   60   61   62   63   64   ...   118
NimicSuprafaţăDiscretă.InitÎnfăşurătoareDinamic( //înfăşoară în spaţiu o SD sculă

SuprafaţăDiscretă sdSupafaţa, //suprafaţa care trebuie înfăşurată

SuprafaţăDiscretă sdScalare, //geometria coeficienţiilor de scalare

SuprafaţăDiscretă sdSculă, //geometria capului utilizat

Boolean bDirecţiaSus //înfăşurătoarea în sus sau în jos

Boolean bTotul //toată suprafaţa sau în mască

)

{



Real rtemp, rZ;

PentruFiecare(Întreg nSDX = 1; nSDX <= nX; nSDX++)

PentruFiecare(Întreg nSDY = 1; nSDY <= nY; nSDY++)

{

Dacă(bDirecţiaSus)

rTemp = -1e100;

Altfel

rTemp = 1e100;


rScala = sdScalare[nSDX, nSDY];

sdSculă.Scalează(rScală); //!! Aici scalarea se face cu recrearea SD !!


PentruFiecare(Întreg nSCX = 1; nSCX <= nX; nSCX++)

PentruFiecare(Întreg nSCY = 1; nSCY <= nY; nSCY++)

Dacă(bTotul SAU sdSuprafaţa.m[nSCX, nSCY]) ŞI

sdSculă.m[nSCX, nSCY] ŞI nSDX + nSCX < nX ŞI nSDY + nSCY < nY)

Dacă(bDirecţiaSus)

{

rZ=sdSuprafaţă[nSDX + nSCX, nSDY + nSCY] + sdSCulă[nSCX, nSCY]);



Dacă(rZ > rTemp) rTemp = rZ;

} //Dacă



Altfel

{

rZ = sdSuprafaţă[nSDX + nSCX, nSDY + nSCY]-sdSCulă[nSCX, nSCY]); Dacă(rZ < rTemp) rTemp = rZ;



} //Altfel

PuneLa(nSDX, nSDY, rTemp);

} //PentruFiecare

} //EndInitCapDeSculăDinamic
Această metodă este foarte simplă şi asigură o varietate de echidistanţări şi racordări, autorul considerând-o unică la ora actuală şi aproape imposibil de realizat folosind alte tehnici de stocare a suprafeţei. În fabricaţie, algoritmii de racordare şi echidistanţare cu calculul total de interferenţă sculă-semifabricat sunt, pe departe, cei mai complecşi. Cea mai importantă utilizare a lor este aceea de a converti SD în trasee de sculă, care se poate observa că devine foarte simplă după aplicarea acestei corecţii de echidistanţare.

Având suprafaţa echidistantă, problema racordărilor globale sau locale, dinamice, cu orice geometrie, devine un algoritm banal. Racodările în sus se execută echidistanţând prima oară în sus, apoi suprafaţa echidistantă se echidistanţează în jos, rezultând SD de pornire, care este racordată cu geometria dorită. Racordările în direcţie contrară se execută pornind echidistanţarea în jos, urmată de cea în sus.



Yüklə 1,64 Mb.

Dostları ilə paylaş:
1   ...   57   58   59   60   61   62   63   64   ...   118




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin