Sunteți pe pagina 1din 6

Controlul afisarii desenului

Principalul dezavantaj al proiectarii asistate de calculator fata de proiectarea pe planseta


il reprezinta faptul ca desenul nu poate fi vazut in intregime, cu toate detaliile. Datorita
dimensiunilor limitate ale ecranului, proiectantul trebuie sa aleaga intre o vedere de
ansamblu pe care nu se disting detaliile si afisarea unui detaliu intr-o fereastra. Fereastra
("Window"
desemneaza o zona dreptung!iulara in care este continuta informatia ce trebuie afisata pe
tot ecranul. "#ista mari deosebiri intre ceea ce se scrie in fisierul .DW$ (desenul salvat
pe disc si ceea ce se vede pe ecran. %n fisier, pentru o linie este suficient sa se memoreze
capetele ei (coordonatele punctelor, culoarea, tipul de linie si stratul in care a fost
desenata. Pe ecran trebuie sa se tina seama de culoarea si tipul de linie selectate, dar
trebuie reprezentate mai multe puncte, astfel incat linia sa para continua& aceasta se face
prin aprinderea pi#elilor corespunzatori (vezi de e#. algoritmul din ane#e. %n fisier
punctele sunt pastrate in coordonate absolute& la afisare, acestea trebuie sa fie
transformate in coordonate ecran. 'a fiecare modificare a ferestrei afisate, linia trebuie
redesenata (regenerata. (egenerarea desenului trebuie sa se faca aproape la fiecare
operatie de lucru cu ecranul. )oate aceste operatii se fac prin comenzile de control al
ecranului, grupate in meniul "D%*P'+,". -ele mai importante sunt .//0, P+1,
("D(+W si ("$"1.

Redraw
"fectul comenzii ("D(+W este improspatarea imaginii de pe ecran. 1u are nici un
efect asupra datelor desenului. 2or disparea punctele ajutatoare (blips care apar la orice
punctare (apasarea butonului de selectare al mouse-ului si vor reapare liniile sterse odata
cu altele cu care se suprapun.
+pelarea comenzii se face astfel3
-ommand3 (edraw
+uto-+D-ul nu intoarce nici un alt mesaj.

Regen
De multe ori, efectul comenzii ("D(+W nu este multumitor. +tunci se va apela
("$"1. %n urma apelarii comenzii ("$"1, +uto-+D-ul va parcurge intreaga baza de
date, redesenand ecranul pe baza ei.
*inta#a3
-ommand3 (egen
(aepunsul +uto-+D-ului3
(egenerating drawing...

Durata redesenarii poate fi de doua pana la zece ori mai mare decat in cazul comenzii
("D(+W.
"#ista comenzi care lanseaza automat regenerarea desenului. Pentru a evita acest lucru,
se foloseste ("$"1+4)/, astfel3

-ommand3 (egenauto
/n5 /ff 6/n73 /FF
%naintea oricarei regenerari automate, va apare mesajul3
+bout to regen, proceed8 6,73
(aspunsul "1" opreste regenerarea.
*e observa usor ca pe ecran arcele si cercurile sunt desenate din segmente. +cest mod de
desenare este necesar pentru marirea vitezei de regenerare (vezi comanda .//0.

Zoom
-omanda .//0 nu modifica desenul. *e sc!imba doar fereastra afisata. Folosind
aceasta comanda, se poate mari orice zona din desen, de oricate ori. Dialogul incepe
astfel3

-ommand3 .oom
+ll5 -enter5 D9namic5 "#tents5 'eft5 Previous5 2ma#5 Window5 6*cale(:5:P73

%ndiferent care este varianta aleasa, se ajunge la definirea unei ferestre, care este
caracterizata prin coordonatele #min, 9min, #ma#,9ma#. #min, 9min sunt coordonatele
coltului din stanga-jos, corespunzator punctului (;,; al ecranului util. -oordonatele
#ma#,9ma#, ale coltului opus, sunt calculate in functie de un factor de scara. Deci, de la
orice date plecam,
trebuie sa ajungem la un punct si un factor de scara. %n continuare se parcurge baza de
date pentru selectarea entitatilor cuprinse in fereastra. %n prima faza se elimina cele care
sunt complet in afara si se retin cele care sunt complet in interiorul ferestrei& apoi se
recalculeaza coordonatele celor care intersecteaza marginile ferestrei (intersectia dintre
doua linii se
calculeaza cel mai usor - de aceea se deseneaza pe ecran si arcele numai din linii.
Optiunile comenzii Zoom
Zoom All
+ceasta optiune determina afisarea desenului cuprins intr-o fereastra determinata de
coordonatele ma#ime ale desenului. +cestea sunt specificate de variabilele '%00%1,
'%00+: (setate prin comanda '%0%)* sau ":)0%1, ":)0+: (stabilite automat in
timpul desenarii, astfel incat fereastra rezultata sa fie cea mai mare.
Zoom Center
'a alegerea acestei optiuni, +uto-+D creeaza o noua vedere (imagine a desenului,
bazata pe un nou punct central, ales de utilizator. Dialogul decurge astfel3
-ommand3 .oom
...5 6*cale(:73 -
-enter point3 <;;,<;; (noile coordonate ale centrului
0agnification or =eig!t6>73 <; (inaltimea noului ecran
(a noii imagini
-entrul ales va fi centrul imaginii afisate pe ecran& colturile ferestrei sunt calculate in
functie de acest punct si inaltimea imaginii, introdusa de utilizator.
Zoom Dynamic
+legand .//0 D9namic, pe ecran vor fi marcate mai multe ferestre (imagine
temporara& dispare dupa inc!iderea comenzii. 4n dreptung!i alb marc!eaza limitele
desenului (corespunzatoare variabilelor ":)0%1 si ":)0+:, un dreptung!i verde
punctat marc!eaza imaginea afisata in momentul apelarii comenzii .//0-D, patru
colturi rosii indica limitele ecranului virtual, adica in care comanda .//0 nu are nevoie
de o regenerare& un dreptung!i cu : in centru reprezinta o fereastra dinamica, pe care o
putem deplasa pentru a alege noua imagine& cand comanda este consumatoare de timp, in
coltul stang de jos apare o clepsidra. Fereastra dinamica are raportul latime5 inaltime egal
cu raportul ecranului util. Dupa apasarea butonului selector al mouse-ului (sau tasta
"nter, :-ul din mijlocul ferestrei este inlocuit de o sageata, ceea ce inseamna ca
deplasand mouse-ul, se va modifica marimea ferestrei (raportul ramane acelasi.+pasand
din nou butonul selector (sau "nter, reapare : si putem deplasa fereastra dinamica
(modul P+1 in pozitia dorita si apoi apasam al doilea buton al mouse-ului (sau "nter de
doua ori si comanda va fi e#ecutata.
Zoom Extents
*-a vazut deja ca e#ista o diferenta intre limitele zonei de desenare si limitele desenului
efectiv, desi uneori acestea pot sa coincida. 'imitele desenului efectiv sunt date de
valorile variabilelor ":)0%1 si ":)0+:. Fereastra afisata de .//0-" este
determinata de aceste valori. -oltul stang de jos (coltul de baza este dat direct de
":)0%1. -oltul din dreapta-sus este calculat in functie de valoarea variabilei ":)0+:
si raportul latime5 inaltime al ecranului util. De e#emplu, daca ":)0%1?;,; si
":)0+:?<;,<;, avand un raport latime5 inaltime de @5A, se va lua din ":)0+:
coordonata , si se va recalcula coordonata : (:?@5AB<;?<A.AA, astfel ca in fereastra
afisata va fi cuprins intregul desen.
.//0-"#tents determina de fiecare data o regenerare a desenului. Daca limitele date de
":)0%1 si ":)0+: le depasesc pe cele date de '%00%1 si '%00+:, .//0-
"#tents va avea acelasi efect cu .//0-+ll.
Zoom Left
+ceasta optiune a comenzii .//0 presupune introducerea coltului de baza al ferestrei
afisate (stanga-jos si a inaltimii ferestrei (latimea va fi apoi calculata in functie de
raportul ecranului.
"#3
-ommand3 .oom
+ll5 -enter5 ...5 'eft5 ... 5 6*cale(:5:P73 '
'ower left corner point3 <,<
0agnification or =eigt!6>73 <;
-ommand3
Deci, coltul de baza va fi (<,<, iar celalalt colt va fi (in cazul unui raport de @5A
(<A.AC<,<;C<, adica (<@.A,<<.
Zoom Previous
+uto-+D memoreaza <; imagini afisate succesiv (prin .//0 sau P+1. /ptiunea
"Previous" determina afisarea imaginii precedente. +stfel, daca suntem la a D-a imagine,
dupa .//0-P o revedem pe a E-a, dupa inca un .//0-P pe a F-a s.a.m.d.
Zoom max
+ceasta optiune este disponibila numai incepand cu (elease <<. "a permite afisarea unei
imagini care depaseste dimensiunile ecranului virtual, fara a regenera desenul& din aceasta
cauza, este uneori preferabila optiunilor ""#tents" sau "+ll". 2ma# (view ma# este
imaginea ma#ima afisata. 'imitele ei se modifica dupa afisarea unei imagini mai mari.
De e#emplu, dupa .//0-", 2ma# va avea limitele date de ":)0%1 si ":)0+:.
Desenand ceva in afara acestui spatiu, ":)0%1 si5 sau ":)0+: se modifica, dar
2ma# ramane aceeasi. Deci, .//0-2ma# va afisa imaginea data de limitele anterioare,
iar .//0-"#tents pe cea data de noile limite. Dupa primul .//0-"#tents, se modifica
si 2ma#.
Zoom !indow
Dupa cum ii spune numele, aceasta optiune afiseaza imaginea continuta intr-o fereastra
(Window ? fereastra definita de utilizator. Daca raportul latime5 inaltime al ferestrei este
diferit de cel al ecranului, se va pastra coltul de baza nesc!imbat (stanga-jos si se va
ajusta coltul opus, astfel incat intreaga imagine marcata de utilizator sa fie afisata (vezi
e#emplul de la
.//0-". Dialogul decurge cam asa3
-ommand3 .oom
+ll5 ... 5 Window5 6*cale(:5:P73 W
First corner3 ;,;
/t!er corner3 <;,<;
-ommand3
Zoom "cale
/ptiunea "*cale" determina marirea sau micsorarea ferestrei afisate, pastrand acelasi
punct central. Daca la factorul de scara introdus se adauga ":", marirea sau micsorarea se
va face relativ la imaginea afisata in momentul respectiv. Daca lipseste ":", factorul de
scara se va referi la limitele intregului desen ('%00%1 si '%00+:.

Pan
-omanda P+1 se foloseste cand se doreste afisarea unei zone a desenului aflata in
continuarea zonei curent afisate. 0arimea ferestrei va fi aceeasi& deci se pastreaza
factorul de scara, modificandu-se doar coltul de baza al ferestrei.
Dialogul3
-ommand3 Pan
Displacement3 punct
*econd point3 punct
-ommand3
*e va efectua o translatie (numai pe ecran& baza de date nu este ajustata, astfel incat cel
de-al doilea punct introdus sa ajunga in locul primului.
"#emplu3
- coltul de baza initial este ;,;& inaltimea <;.;
- primul punct selectat3 G,A
- al doilea punct3 F,F
- se calculeaza distantele pe : si , de la coltul de baza la primul punct3
d#?G-;?G& d9?A-;?A.
- se calculeaza coordonatele noului colt3 #?F-d#?<& 9?F-d9?A.
%n final, coltul de baza al imaginii afisate este <,A& inaltimea ramane aceeasi (<;.
Punctele pot fi introduse si de la tastatura& in acest caz cele doua ferestre pot fi destul de
departate una de alta (ceea ce s-ar putea sa determine regenerarea desenului.

'ista completa a comenzilor de afisare ((elease <<3
+ttdisp
Dview
0view
Pan
Plan
(edraw
(egen
(egenall
(egenauto
*!ade
2iew
2iewres
2point
.oom