Sunteți pe pagina 1din 44

Elemente de grafic asistat

5. APLICAII REZOLVATE ALE UNOR


PROBLEME TEORETICE DE GEOMETRIE
DESCRIPTIV
Aspectele teoretice artate n capitolele anterioare pot fi
aplicate pentru reprezentarea automat, vizualizarea i
verificarea unor probleme de geometrie descriptiv sau
analitic, cum sunt reprezentrile n dubl sau tripl proiecie
ortogonal a unor poliedre, intersecii de poliedre, verficarea
unor probleme de intersecie etc. Totodat, aceast abordare
ofer o imagine mai sugestiv a problemei abordate, este mai
sugestiv i mai captivant.
5.1 Reprezentarea prismelor i a piramidelor
Fie, de exemplu, prisma triunghiular ABCA1B1C1.
Proieciile verticale i orizontale ale punctelor A, B, C i A1 se
obin prin introducerea coordonatelor acestor puncte la cererile
repetate ale programului. Cele ale punctelor B1 i C1 se obin
innd cont c bazele ABC i A1B1C1 sunt congruente adic,
dup ce se selecteaz poliliniile proieciilor bazei ABC, se
poate folosi comanda Copy, care conserv lungimile laturilor
i mrimea unghiurilor ce se copiaz (figura 5.1).
1.Prisma 1. LSP
;Prisma. LSP Desenarea dublei proiecii ortogonale a muchiilor
unei prisme triunghiulare
;Obs.
;Autor: H.Tarziu
; Data: 15.01.2002
; Variabile: Coordonatele varfurilor A,B, C si A1.
(DEFUN C:Prisma ( )
(setq o1 (list 0.0 150.0))
(setq o2 (list 420.0 150.0))
(Command pline o1 o2 C )
(setq v1 (list 210 0))

131

Aplicaii rezolvate
(setq v2 (list 210 300))
(Command pline v1 v2 C)
(SETQ a (GETPOINT Coordonatele punctului A:))
(setq p1 (list (- 210 (car a)) (- 150 (cadr a))))
(setq q1 (list (- 210 (car a)) (+ 150 (caddr a))))
(Command Point p1)
(Command Point q1)
(Command Pline p1 q1 )
(setq polilinia1 (entlast))
( SETQ b (GETPOINT Coordonatele punctului B:))
(setq p2 (list (- 210 (car b)) (- 150 (cadr b))))
(setq q2 (list (- 210 (car b)) (+ 150 (caddr b))))
(Command Point p2)
(setq punctul2 (entlast))
(Command Point q2)
(Command Pline p2 q2 )
(setq polilinia2 (entlast))
(SETQ c (GETPOINT Coordonatele punctului C:))
(setq p3 (list (- 210 (car c)) (- 150 (cadr c))))
(setq q3 (list (- 210 (car c)) (+ 150 (caddr c))))
(Command Point p3)
(Command Point q3)
(Command Pline p3 q3 )
(setq polilinia3 (entlast))
(Command Pline p1 w 0.8 0.8 p2 p3 C)
(setq polilinia4 (entlast))
(Command Pline q1 w 0.8 0.8 q2 q3 C)
(setq polilinia5 (entlast))
(SETQ a1 (GETPOINT Coordonatele punctului A1:))
(setq p11 (list (- 210 (car a1)) (- 150 (cadr a1))))
(setq q11 (list (- 210 (car a1)) (+ 150 (caddr a1))))
(Command Pointp11)
(Command Pointq11)
(Command Pline p11 w 0 0 q11 C)
(setq polilinia6 (entlast))
(Command Pline p1 w 0.8 0.8 p11 )
(setq polilinia7 (entlast))
(Command Pline q1 w 0.8 0.8 q11 )
(setq polilinia8 (entlast))
(command color red)
(Command Pline p1 w 0.8 0.8 p2 p3 C)
(setq polilinia9 (entlast))

132

Elemente de grafic asistat


(command color white) ;
(Command Point (list (- 210 (car a1)) (- 150 (cadr a1)))) ;
(command copy l p1 p11)
(command copy polilinia5 q1 q11)
(command copy polilinia9 p1 p11)
(command copy polilinia7 p1 p2)
(command copy polilinia7 p1 p3)
(command copy polilinia8 q1 q2)
(command copy polilinia8 q1 q3)
(command copy polilinia2 p1 p11)
(command copy polilinia3 p1 p11)
(command copy punctul2 p1 p11)
(command zoom e))
a1'
c1'

b1'
a'
c'

b'
a

c
b

a1
c1
b1

Figura 5.1
n figura 5.1 (n partea stng) este prezentat dubla
proiecie ortogonal a prismei definit de punctele A, B ,C i
A1, ale cror coordonate sunt A(120, 40, 60) B(150, 120, 20),
C(60, 80, 30) i A1(-50, 130, 150). n figura 5.1 (n partea
dreapt) este redat dubla proiecie ortogonal obinut
automat, a aceleiai prisme, dar obinut cu ajutorul funciei
;Prisma 2, care introduce i notaiile corespunztoare
vrfurilor sale.
133

Aplicaii rezolvate

Un program scris pentru reprezentarea celei de a treia


proiecii (pe planul lateral) a oricrui poliedru, n particular a
unui tetredru sau a unei prisme, include i coordonatele
corespunztoare proieciilor laterale: ordonatele vrfurilor
poliedrului devin abscise cu semn schimbat, iar cotele se
transform n ordonate. De exemplu, proiecia lateral r1 a
punctului A se obine introducnd:
(SETQ a GETPOINT "Coordonatele punctului A:"))
(setq p1 list (- 210 (car a)) (- 150 (cadr a))))
setq q1 (list (- 210 (car a)) (+ 150 (caddr a))))
setq r1 (list (+ 210 (cadr a)) (+ 150 (caddr a))))

Dac se procedeaz astfel pentru fiecare vrf al


poliedrului i dac apoi se ataaz comenda Pline pentru
reprezentarea muchiilor, se obine aplicaia urmtoare,
denumit Tripla1, care ns nu rezolv i vizibilitatea
muchiilor. Totui, dup cum se va vedea, acest lucru nici nu
este necesar pentru rezolvarea problemelor de determinare a
seciunilor plane prin poliedre.
n figura 5.2 (n partea stng), este redat tripla
proiecie ortogonal a tetraedrului ale crui vrfuri au
coordonatele A(140, 20,130), B(120, 130, 40), C(15, 60, 40) i
S(50, 110, 100), iar n figura 5.2 (dreapta) acelai tetraedru, dar
cu introducerea automat a notaiilor convenionale A(a, a,
a), B(b, b, b) etc.
a'

a''
s'
b'

s''
c'

a
c
s
b

Figura 5.2
134

c''

b''

Elemente de grafic asistat

Pentru reprezentarea triplei proiecii ortogonale a


muchiilor unei prisme triunghiulare (fr a stabili vizibilitatea
lor, proiecia unui model de srm), se procedeaz ca n
exemplul urmtor, n care este prezentat funcia Tripla2. La
cererea repetat a programului (GETPOINT), sunt introduse de
la tastatur coordonatele vrfurilor A, B i C ale bazei
inferioare i al vrfului A1, omologul lui A al bazei superioare.
Proieciile laterale, notate n interiorul programului cu r, au
fost definite innd cont de proprietatea acestor proiecii de a fi
definite prin ordonatele, respectiv cotele punctelor
corespunztoare. De exemplu, pentru proiecia lateral a
punctului A, s-a introdus punctul r1 astfel:
(setq r1 (list (+ 210 (cadr a)) (+ 150 (caddr a))))
1.Tripla2.LSP
;Tripla2. LSP Desenarea triplei proiecii ortogonale a muchiilor
unei prisme triunghiulare
;Obs.
;Autor: H.Tarziu
; Data: 15.01.2002
; Variabile: Coordonatele varfurilor
(DEFUN C:Tripla2 ( )
(setq o1 (list 0.0 150.0))
(setq o2 (list 420.0 150.0))
(Command "xline" o1 o2 "" )
(setq v1 (list 210 0))
(setq v2 (list 210 300))
(Command "xline" v1 v2 "" )
(SETQ a (GETPOINT "Coordonatele punctului A:"))
(setq p1 (list (- 210 (car a)) (- 150 (cadr a))))
(setq q1 (list (- 210 (car a)) (+ 150 (caddr a))))
(setq r1 (list (+ 210 (cadr a)) (+ 150 (caddr a))))
(Command "Point" p1)
(Command "text" (list (+ (car p1) 8) (+ (cadr p1) 5)) 12 0 " a ")
(Command "Point" q1)
(Command "text" (list (+ (car q1) 8) (+ (cadr q1) 5)) 12 0 " a' ")
(Command "Point" r1)
(Command "text" (list (+ (car r1) 8) (+ (cadr r1) 5)) 12 0 " a'' ")
(Command "Pline" p1 q1 "")
(Command "Pline" q1 r1 "")

135

Aplicaii rezolvate
(SETQ b (GETPOINT "Coordonatele punctului B:"))
(setq p2 (list (- 210 (car b)) (- 150 (cadr b))))
(setq q2 (list (- 210 (car b)) (+ 150 (caddr b))))
(setq r2 (list (+ 210 (cadr b)) (+ 150 (caddr b))))
(Command "Point" p2)
(Command "text" (list (+ (car p2) 8) (+ (cadr p2) 5)) 12 0 " b ")
(Command "Point" q2)
(Command "text" (list (+ (car q2) 8) (+ (cadr q2) 5)) 12 0 " b' ")
(Command "Point" r2)
(Command "text" (list (+ (car r2) 8) (+ (cadr r2) 5)) 12 0 " b'' ")
(Command "Pline" p2 q2 "")
(Command "Pline" q2 r2 "")
(SETQ c (GETPOINT "Coordonatele punctului C:"))
(setq p3 (list (- 210 (car c)) (- 150 (cadr c))))
(setq q3 (list (- 210 (car c)) (+ 150 (caddr c))))
(setq r3 (list (+ 210 (cadr c)) (+ 150 (caddr c))))
(Command "Point" p3)
(Command "text" (list (+ (car p3) 8) (+ (cadr p3) 5)) 12 0 " c ")
(Command "Point" q3)
(Command "text" (list (+ (car q3) 8) (+ (cadr q3) 5)) 12 0 " c' ")
(Command "Point" r3)
(Command "text" (list (+ (car r3) 8) (+ (cadr r3) 5)) 12 0 " c'' ")
(Command "Pline" p3 q3 "")
(Command "Pline" q3 r3 "")
(SETQ a1 (GETPOINT "Coordonatele punctului A1:")) ; varf al
bazei superioare
(setq p4 (list (- 210 (car a1)) (- 150 (cadr a1))))
(setq q4 (list (- 210 (car a1)) (+ 150 (caddr a1))))
(setq r4 (list (+ 210 (cadr a1)) (+ 150 (caddr a1))))
(Command "Point"p4)
(Command "text" (list (+ (car p4) 8) (+ (cadr p4) 5)) 12 0 " a1 ")
(Command "Point"q4)
(Command "text" (list (+ (car q4) 8) (+ (cadr q4) 5)) 12 0 " a1' ")
(Command "Point"r4)
(Command "text" (list (+ (car r4) 8) (+ (cadr r4) 5)) 12 0 " a1'' ")
(Command "Pline" p4 "w" "0" "0" q4 "C")
(Command "Pline" q4 "w" "0" "0" r4 "C")
(setq p5 (list (+ (car p4) (- (car p2) (car p1))) (+ (cadr p4) ((cadr p2) (cadr p1)))))
(Command "Point"p5)
(Command "text" (list (+ (car p5) 5) (+ (cadr p5) 5)) 12 0 " b1 ")

136

Elemente de grafic asistat


(setq q5 (list (+ (car q4) (- (car q2) (car q1))) (+ (cadr q4) ((cadr q2) (cadr q1)))))
(Command "Point"q5)
(Command "text" (list (+ (car q5) 8) (+ (cadr q5) 5)) 15 0 " b1' ")
(setq r5 (list (+ 210 (- 150 (cadr p5))) (cadr q5)))
(Command "Point"r5)
(Command "text" (list (+ (car r5) 5) (+ (cadr r5) 5)) 15 0 " b1'' ")
(setq p6 (list (+ (car p4) (- (car p3) (car p1))) (+ (cadr p4) ((cadr p3) (cadr p1)))))
(Command "Point"p6)
(Command "text" (list (+ (car p6) 8) (+ (cadr p6) 5)) 15 0 " c1 ")
(setq q6 (list (+ (car q4) (- (car q3) (car q1))) (+ (cadr q4) ((cadr q3) (cadr q1)))))
(Command "Point"q6)
(Command "text" (list (+ (car q6) 8) (+ (cadr q6) 5)) 15 0 " c1' ")
(setq r6 (list (+ 210 (- 150 (cadr p6))) (cadr q6)))
(Command "Point"r6)
(Command "text" (list (+ (car r6) 5) (+ (cadr r6) 5)) 15 0 " c1'' ")
(Command "Pline" p4 q4 "C")
(Command "Pline" p5 q5 "C")
(Command "Pline" p6 q6 "C")
(Command "Pline" q5 r5 "C")
(Command "Pline" q6 r6 "C")
(Command "Pline" p1 "W" "0.8" "0.8" p2 p3 "C") ; Se traseaza
muchiile prismei
(Command "Pline" p4 p5 p6 "C")
(Command "Pline" p1 p4 "C")
(Command "Pline" p2 p5 "C")
(Command "Pline" p3 p6 "C")
(Command "Pline" q1 q2 q3 "C")
(Command "Pline" q4 q5 q6 "C")
(Command "Pline" q1 q4 "C")
(Command "Pline" q2 q5 "C")
(Command "Pline" q3 q6 "C")
(Command "Pline" r4 r5 r6 "C")
(Command "Pline" r1 r2 r3 "C")
(Command "Pline" r1 r4 "C")
(Command "Pline" r2 r5 "C")
(Command "Pline" r3 r6 "C")
(Command "zoom" "e")
)

137

Aplicaii rezolvate

n figura 5.3 este redat tripla proiecie ortogonal a


muchiilor prismei ale crei vrfuri au coordonatele A(150, 110,
30), B(100, 20, 100), C(50, 70, 100) i A1(200, 95, 120), care a
fost obinut cu ajutorul funciei Tripla2.
b1'

b1''
c1'

c1''

a1'

a1''
b'

b''
c'

c''

a'

a''

b1

b
c1

a1

Figura 5.3
n figura 5.4 este tripla proiecie ortogonal, obinut cu
ajutorul aceluiai program, a prismei triunghiulare cu baza n
planul de nivel z = 20, ale crei vrfuri au coordonatele A(150,
110, 20), B(100, 20, 20), C(50, 70, 20) i A1(200, 95, 120).
a1'

b1'

c1'

a'
b1

b'

c'

b
c1

a1

b1''

Figura 5.4
138

b''

c1'' a1''

c''

a''

Elemente de grafic asistat

n sfrit, n figura 5.5 este redat tripla proiecie


ortogoal a unei prisme cu baza n planul de front y = 20, ale
crei vrfuri au coordonatele A(150, 20, 30), B(100, 20, 100),
C(50, 20, 80) i A1(200, 95, 120).
b1'

b1''
c1''

c1'
a1'

a1''
b'

b''
c''

c'
a'

a1

a''

b1

c1

Figura 5.5
O prism triunghiular, cu baza n planul de profil x =
30 este reprezentat n figura 5.6. Vrfurile ei au coordonatele
A(30, 110, 30), B(30, 20, 100), C(30, 70, 80) i A1(200, 95,
120).
b1'
c1'

b1''
c1''

a1'

a1''
b'
c'

b''

a'
b1
c1
a1

c''
a''

b
c
a

Figura 5.6
139

Aplicaii rezolvate

Notaiile corespunztoare celor trei proiecii ale


vrfurilor au fost cuprinse n cadrul programului Tripla2,
prin urmare ele vor fi introduse automat.
Stilul textului (Times new roman, bold) i cel al
punctelor sunt prestabilite de la caseta de dialog a programului
AutoCAD14, dar pot fi introduse i in cadrul programului
Tripla2.

5.2 Probleme de intersecie


n acest subcapitol va fi prezentat automatizarea
rezolvrilor, a vizualizrilor i a reprezentrilor unor probleme
de intersecie: a dreptei cu planul, a planelor ntre ele, a
seciunilor plane prin poliedre, a interseciei plcilor plane etc.
n toate aceste tipuri de probleme, aa cum deja este tiut, o
mare utilitate practic o au dreptele particulare numite urmele
planului.
5.2.1 Urmele planului
Se reamintete c notaia P(ph, pv) indic planul P, a
crui urm orizontal este ph i vertical pv (reamintim c
urmele unui plan de poziie oarecare sunt interseciile acelui
plan cu planele de proiecie). Aceste dou urme, dar i cea
lateral, pot fi trasate automat, dac se cunosc, ca variabile,
coordonatele celor trei puncte care determin un plan.
n continuare, este prezentat integral un program pentru
determinarea grafic a urmelor unui plan, definit prin
coordonatele celor trei puncte ale sale.
Algoritmul de determinare a urmelor este cel folosit n
geometria descriptiv, conform cruia urmele unei drepte
coninut ntr-un plan se gsesc pe urmele de acelai fel ale
planului. S-au ales arbitrar cte dou dintre cele trei puncte i sau gsit nti urmele dreptelor determinate de aceste puncte.
140

Elemente de grafic asistat


URME.LSP. Determinarea urmelor unui plan definit prin
coordonatele carteziene ale punctelor A, B, i C.
OBS. Programul cere n mod repetat coordonatele punctelor.
Autor: H Trziu
Data: 16.03.2003-03-19
Variabile: Coordonatele punctelor A,B, i C.
(DEFUN C:urme ( )
(setq o1 (list 0.0 150.0))
(setq o2 (list 420.0 150.0))
(Command "pline" o1 o2 "C" )
(setq v1 (list 210 0))
(setq v2 (list 210 300))
(Command "pline" v1 v2 "C")
(SETQ a (GETPOINT "Coordonatele punctului A:"))
(setq p1 (list (- 210 (car a)) (- 150 (cadr a))))
(setq q1 (list (- 210 (car a)) (+ 150 (caddr a))))
(Command "Point" p1)
(Command "text" (list (+ (car p1) 8) (+ (cadr p1) 2)) 12 0 "a")
(Command "Point" q1)
(Command "text" (list (+ (car q1) 8) (+ (cadr q1) 2)) 12 0 "a'")
)Command "Pline" p1 q1 "")
( SETQ b (GETPOINT "Coordonatele punctului B:"))
(setq p2 (list (- 210 (car b)) (- 150 (cadr b))))
(setq q2 (list (- 210 (car b)) (+ 150 (caddr b))))
(Command "Point" p2)
(Command "text" (list (+ (car p2) 8) (+ (cadr p2) 2)) 12 0 "b")
(Command "Point" q2)
(Command "text" (list (+ (car q2) 8) (+ (cadr q2) 2)) 12 0 "b'")
(Command "Pline" p2 q2 "")
(SETQ c (GETPOINT "Coordonatele punctului C:"))
(setq p3 (list (- 210 (car c)) (- 150 (cadr c))))
(setq q3 (list (- 210 (car c)) (+ 150 (caddr c))))
(Command "Point" p3)
(Command "text" (list (+ (car p3) 8) (+ (cadr p3) 2)) 12 0 "c")
(Command "Point" q3)
(Command "text" (list (+ (car q3) 8) (+ (cadr q3) 2)) 12 0 "c'")
(Command "Pline" p3 q3 "")
(command "pline" p1 "w" "0.8" "0.8" p2 p3 "C")
(command "pline" q1 "w" "0.8" "0.8" q2 q3 "C")
(command "xline" p1 p2 p3 "")
(command "xline" q1 q2 q3 "")
(Setq i1 (inters o1 o2 p1 p2 nil))

141

Aplicaii rezolvate
(Command "Point" i1)
(Command "text" (list (+ (car i1) 8) (+ (cadr i1) 2)) 14 0 "v1 ")
(command "xline" "V" i1 "")
(setq i2 (list (+ 0 (car i1)) (+ 10 (cadr i1))))
(Setq i3 (inters i1 i2 q1 q2 nil))
(Command "Point" i3)
(Command "text" (list (+ (car i3) 8) (+ (cadr i3) 2)) 14 0 "v1'")
(Setq i4 (inters o1 o2 p2 p3 nil))
(Command "Point" i4)
Command "text" (list (+ (car i4) 8) (+ (cadr i4) 2)) 14 0 "v2")
(command "xline" "V" i4 "")
(setq i5 (list (+ 0 (car i4)) (+ 10 (cadr i4))))
(Setq i6 (inters i4 i5 q2 q3 nil))
(Command "Point" i6)
(Command "text" (list (+ (car i6) 8) (cadr i6)) 14 0 "v2' ")
(Setq i7 (inters o1 o2 q1 q2 nil))
(Command "Point" i7)
(Command "text" (list (+ (car i7) 8) (cadr i7)) 14 0 "h1' ")
(command "xline" "V" i7 "")
(setq i8 (list (+ 0 (car i7)) (+ 10 (cadr i7))))
(Setq i9 (inters i7 i8 p1 p2 nil))
(Command "Point" i9)
(Command "text" (list (+ (car i9) 8) (cadr i9)) 14 0 "h1 ")
(Setq i10 (inters o1 o2 q2 q3 nil))
(Command "Point" i10)
(Command "text" (list (+ (car i10) 8) (cadr i10)) 14 0 "h2' ")
(command "xline" "V" i10 "")
(setq i11 (list (+ 0 (car i10)) (+ 10 (cadr i10))))
(Setq i12 (inters i10 i11 p2 p3 nil))
(Command "Point" i12)
(Command "text" (list (+ (car i12) 8) (cadr i12)) 14 0 "h2 ")
(Setq i13 (inters v1 v2 i3 i6 nil))
(Setq i14 (inters v1 v2 i9 i12 nil))
(setq i15 (list (+ 210 (- 150 (cadr i14))) (+ 150 0 )))
(Command "Point" i13) ; punctul Pz
(Command "text" (list (+ (car i13) 8) (cadr i13)) 14 0 "Pz")
(Command "Point" i14)
(Command "Point" i15)
(Setq i16 (inters v1 v2 o1 o2 nil))
(Command "Arc""c" i16 i14 i15 )
(command "color" "red")
(command "xline" i3 i6 "")

142

Elemente de grafic asistat


(command "xline" i9 i12 "")
(command "xline" i13 i15 "")
(Setq i17 (inters i3 i6 o1 o2 nil))
(Command "Point" i17) ; Punctul Px
(Command "text" (list (+ (car i17) 8) (cadr i17)) 14 0 "Px")
(command "color" "red" "")
(command "pline" i13 "w" "1.5" "1.5" i15 "")
(command "pline" i13 "w" "1.5" "1.5" i17 "")
(command "pline" i17 "w" "1.5" "1.5" i14 "")
(Command "Zoom" "e"))
b'
v1'Pz

Px

v2'
c'
h2' v2
c
h2

a'
v1

h1'

a
h1

Figura 5.7
In figura 5.7 este redat dubla proiecie a urmelor
planului, pentru urmtoarele valori ale coordonatelor punctelor
sale: A(-60, 120, 30), B(50,-40,140) i C(150,20,30), iar,
pentru comparaie, n figura 5.8 este redat aceeai
reprezentare, dar pentru valorile A(-80, 120, -10), B(40,-70,90)
i C(150, -20, -50).
Programul nu red i urmele unor plane cu o poziie
particular, cum sunt cele de nivel, de front sau de profil.
Urmele orizontale ale dreptelor de nivel (sau verticale ale celor
de front) sunt aruncate la infinit i, n acest caz, la
reprezentarea lor programul returneaz nil. Se observ n cele
dou figuri cum au fost alese cte dou drepte incluse n plan,
cum programul stabilete urmele acestor dou drepte, le
noteaz, le unete.
143

Aplicaii rezolvate

b'
b
v2

h2
h2' Px

v1'
Pz
v1

h1'
a'

c'
h1
a

v2'
Figura 5.8
5.2.2 Intersecia dreptei cu planul

A determina seciunea plan a unui poliedru, nseamn


a gsi poligonul ale crui vrfuri sunt punctele n care muchiile
acelui poliedru neap planul de seciune. Cu alte cuvinte,
problema se reduce la determinarea interseciei dreptei cu
planul.
Se cunosc operaiile grafice necesare aflrii dublei
proiecii ortogonale a punctului de intersecie a unei drepte,
definit prin coordonatele unor puncte ale ei, cu un plan, definit
tot prin coordonatele celor trei puncte ale sale. Aceste operaii
se repet, sunt algoritmice i ele se deosebesc doar prin valorile
acelor coordonate. De aceea, dup principiul artat anterior, se
poate elabora un program care s reuneasc operaiile grafice
necesare. El a i fost deja scris i, cu ajutorul su, s-a obinut
reprezentarea dublei proiecii ortogonale a punctului I(i, i),
din figura 5.9.
ABC(abc, abc) MN(mn, mn) = I(i, i)
Se cunoate metoda cea mai direct de determinare a
dublei proiecii ortogonale a a punctului de intersecie a dreptei
MN(mn, mn) cu planul ABC(abc, abc), i anume metoda
144

Elemente de grafic asistat

planelor auxiliare proiectante. La scrierea programului s-a


folosit aceast metod.
Punctele M i N, ce determin dreapta, ct i A,B i C
ale planului, sunt date prin coordonatele lor carteziene, care se
vor introduce de la tastatur.

b'
m' 2'
c'

i' 1'

n'
a'

c2 b
m

i
1

Figura 5.9
Reprezentarea din figura 5.9 corespunde urmtoarelor
valori ale coordonatelor punctelor: A(-22, 145, 12), B(52, 23,
112), C(110, 25, 42), M(125, 90, 72) i N(-42, 55, 40).
Construcia a fost raportat unui sistem de axe rectangulare, a
cror origine este O(210, 150), alegndu-se pentru desenare
(plotare) un format A3.
n cadrul programului, punctele de intersecie aparent
(sau real) au fost definite cu ajutorul funciei INTERS sau
APPINT, care, dac sunt introduse punctele (predefinite prin
funcia SETQ) ce determin fiecare dintre cele dou drepte,
returneaz punctul lor de intersecie.
Dac este vorba de o intersecie care se afl n afara
segmenului i13 i14, atunci AutoLISP returneaz NIL, iar
dac specificaia NIL este introdus n cadrul comenzii
145

Aplicaii rezolvate

INTERS, atunci returneaz intersecia oriunde se afl ea., ca


n exemplul de mai sus.
n figura 5.10 este redat intersecia obinut cu ajutorul
funciei Defun: Inter (pentru comparaie cu desenul din
figura 3.14) cu urmtoarele valori ale coordonatelor: A(-140, 90, -120), B(40,100,130), C(100, 120, 10), M(150, 30, 80( i
N(-100, 20, 90).
2'

m'

1'

i'

n' a

c'
m
1
c

2 b

a'

Figura 5.10
INTER.LSP. Determinarea proieciilor unei drepte cu un plan
definite prin coordonatele carteziene ale punctelor.
OBS. Programul cere n mod repetat coordonatele punctelor.
Autor: H Trziu
Data: 16.03.2003-03-19
Variabile: Coordonatele punctelor A, B, C, M i N.
(DEFUN C:Inter ( )
(setq o1 (list 0.0 150.0)) ; se defineste sistemul axelor de
coordonae
(setq o2 (list 420.0 150.0)) ;pe un format A3
(Command "pline" o1 o2 "C" )
(setq v1 (list 210 0))
(setq v2 (list 210 300))
(Command "pline" v1 v2 "C")
(SETQ a (GETPOINT "Coordonatele punctului A:")) ; se introduc
coordonatele
(setq p1 (list (- 210 (car a)) (- 150 (cadr a)))) ;punctelor ce
determina planul

146

Elemente de grafic asistat


(setq q1 (list (- 210 (car a)) (+ 150 (caddr a)))) ; ABC
(Command "Point"p1)
(Command "text" (list (+ (car p1) 8) (cadr p1)) 16 0 "a")
(Command "Point"q1)
(Command "text" (list (+ (car q1) 8) (cadr q1)) 16 0 "a'")
(Command "Pline" p1 q1 "")
(SETQ b (GETPOINT "Coordonatele punctului B:"))
(setq p2 (list (- 210 (car b)) (- 150 (cadr b))))
(setq q2 (list (- 210 (car b)) (+ 150 (caddr b))))
(Command "Point"p2)
(Command "text" (list (+ (car p2) 8) (cadr p2)) 16 0 "b")
(Command "Point"q2)
(Command "text" (list (+ (car q2) 8) (cadr q2)) 16 0 "b'")
(Command "Pline" p2 q2 "")
(SETQ c (GETPOINT "Coordonatele punctului C:"))
(setq p3 (list (- 210 (car c)) (- 150 (cadr c))))
(setq q3 (list (- 210 (car c)) (+ 150 (caddr c))))
(Command "Point"p3)
(Command "text" (list (+ (car p3) 8) (cadr p3)) 16 0 "c")
(Command "Point"q3)
(Command "text" (list (+ (car q3) 8) (cadr q3)) 16 0 "c'")
(Command "Pline" p3 q3 "")
(Command "Pline" p1 "w" "0.8" "0.8" p2 p3 "C")
(Command "Pline" q1 "w" "0.8" "0.8" q2 q3 "C")
(SETQ m (GETPOINT "Coordonatele punctului M:"))
Coordonatele punctelor dreptei MN
(setq p4 (list (- 210 (car m)) (- 150 (cadr m))))
(setq q4 (list (- 210 (car m)) (+ 150 (caddr m))))
(Command "Point"p4)
(Command "text" (list (+ (car p4) 8) (cadr p4)) 16 0 "m")
(Command "Point"q4)
(Command "text" (list (+ (car q4) 8) (cadr q4)) 16 0 "m'")
(Command "pline" p4 "w" "0" "0" q4 "C")
(SETQ n (GETPOINT "Coordonatele punctului N:"))
(setq p5 (list (- 210 (car n)) (- 150 (cadr n))))
(setq q5 (list (- 210 (car n)) (+ 150 (caddr n))))
(Command "Point"p5)
(Command "text" (list (+ (car p5) 8) (cadr p5)) 16 0 " n ")
(Command "Point"q5)
(Command "text" (list (+ (car q5) 8) (cadr q5)) 16 0 " n' ")
(Command "Pline" p5 "w" "0" "0" q5 "C")
(Command "pline" p4 "w" "0.8" "0.8" p5 "C")

147

Aplicaii rezolvate
(Command "pline" q4 "w" "0.8" "0.8" q5 "C")
(Setq i1 (inters q4 q5 q1 q2 nil)) ; intersectia planului de capat cu
AB
(setq i2 (list (+ 0 (car i1)) (+ 10 (cadr i1)))) ; punct al liniei de
ordine
(Command "Point" i1)
(Command "text" (list (+ (car i1) 8) (cadr i1)) 16 0 "1' ")
(Command "xline" i1 i2 "") ; linia de ordine
(Setq i3 (inters i1 i2 p1 p2 nil)) ; in proiectie orizontala
(Command "Point" i3)
(Command "text" (list (+ (car i3) 8) (cadr i3)) 16 0 " 1 ")
(Setq i4 (inters q4 q5 q2 q3 nil))
(Command "Point" i4)
(Command "text" (list (+ (car i4) 8) (cadr i4)) 16 0 "2' ")
(setq i5 (list (+ 0 (car i4)) (+ 10 (cadr i4))))
(Command "xline" i4 i5 "")
(Setq i6 (inters i4 i5 p2 p3 nil))
(Command "Point" i6)
(Command "text" (list (+ (car i6) 8) (cadr i6)) 16 0 "2 ")
(Setq i7 (inters i3 i6 p4 p5 nil))
(Command "Point" i7)
(Command "text" (list (+ (car i7) 8) (cadr i7)) 16 0 "i ")
(setq i8 (list (+ 0 (car i7)) (+ 10 (cadr i7))))
(Setq i9 (inters i7 i8 q4 q5 nil))
(Command "Point" i9)
(Command "text" (list (+ (car i9) 8) (cadr i9)) 16 0 "i' ")
(Command "pline" i3 "w" "0" "0" i6 "C")
(Command "pline" i9 "w" "0" "0" i7 "C")
)

5.2.3 Seciuni plane prin poliedre


n acest subcapitol vor fi prezentate cteva aplicaii
pentru determinarea automat a poligoanelor de seciune plan
a unor piramide i a unor prisme.
A determina seciunea plan a unui poliedru, nseamn
a gsi poligonul ale crui vrfuri sunt punctele n care muchiile
acelui poliedru neap planul de seciune. Cu alte cuvinte,
problema se reduce la determinarea interseciei dreptei cu
planul. Se cunosc deja operaiile grafice necesare aflrii dublei
148

Elemente de grafic asistat

proiecii ortogonale a punctului de intersecie a unei drepte,


definit prin coordonatele unor puncte ale ei , cu un plan,
definit tot prin coordonatele celor trei puncte ale sale.
Folosind rezultatele obinute cu funcia anterioar,
programul poate fi generalizat pentru interseciile succesive ale
unui plan (de seciune) cu muchiile unui poliedru, de exemplu
cu muchiile unei prisme. Acest lucru a fost fcut la catedra de
matematic fizic a Academiei Forelor Aeriene H. Coand
din Braov, obinndu-se funcia Defun: Sect. 2. Programul
nu rezolv i vizibilitatea muchiilor prismei dar, n acest stadiu,
acest lucru nici nu este necesar, reprezentrile prismelor putnd
fi considerate proieciile unor modele de srm
b1'

c1'

q'
a1'

Px c1

a1

Pzr'

a'
r
b1

c'

b'

c
q

Py

Figura 5.11
n figurile 5.11 i 5.12 sunt redate comparativ seciunile
plane ale aceleiai prisme, cu dou plane diferite, introduse
prin coordonatele punctelor M, N i P. Prisma triunghiular
ABCA1B1C1 este definit prin coordonatele vrfurilor bazei A,
149

Aplicaii rezolvate

B i C, plus cele ale vrfului A1 al bazei superioare. Toate


aceste coordonate se vor introduce de la tastatur.
Astfel, n figura 5.11 coordonatele punctelor sunt A(20, 120, 10 ), B(-200, 50, 100), C(-80, 20, 90), A1(150, 110,
130), M(20,90,10), N(50, -20, 110) i P(100, 10, 20).
b1'

c1'
r'

Pz

q'

a1'
b'

c'
p'
Px

c1

a'
b1

a1

Py

Figura 5.12
n figura 5.12 este pstrat aceeai prism triunghiular,
dar planul de seciune este modificat dup cum urmeaz: M(70,
130, 35), N(100, -10, 150) i P(150, 60, 70). Punctele de
intersecie ale muchiilor AA1, BB1 i CC1 cu planul (vrfurile
triunghiului de seciune), sunt respectiv Q(q, q), R(r, r) i T(t,
t). Ele au fost determinate (dubla lor proiecie ortogonal) cu
ajutorul programului Sect. 2, care reunete toate operaiile
grafice necesare acestei determinri. S-a folosit metoda
planelor auxiliare proiectante, alegnd succesiv, pentru
fiecare muchie, cte un plan de capt, care s includ acea
muchie.
Poliliniile corespunztoare proieciilor orizontal i
vertical ale acestui triunghi au fost selectate n cadrul
150

Elemente de grafic asistat

programului i ele au fost haurate folosind comanda Bhatch


a AutoCAD-ului.
n continuare, este prezentat integral aplicaia Sect 2,
cu ajutorul creia au fost obinute seciunile n prismele
triunghiulare.
(DEFUN C:sect2 ( )
(setq o1 (list 0.0 150.0))
(setq o2 (list 420.0 150.0))
(Command "xline" o1 o2 "" )
(setq v1 (list 210 0))
(setq v2 (list 210 300))
(Command "xline" v1 v2 "" )
(SETQ a (GETPOINT "Coordonatele punctului A:"))
(setq p1 (list (- 210 (car a)) (- 150 (cadr a))))
(setq q1 (list (- 210 (car a)) (+ 150 (caddr a))))
(Command "Point" p1)
(Command "text" (list (+ (car p1) 8) (+ (cadr p1) 5)) 15 0 " a ")
(Command "Point" q1)
(Command "text" (list (+ (car q1) 8) (+ (cadr q1) 5)) 15 0 " a' ")
(Command "Pline" p1 q1 "")
( SETQ b (GETPOINT "Coordonatele punctului B:"))
(setq p2 (list (- 210 (car b)) (- 150 (cadr b))))
(setq q2 (list (- 210 (car b)) (+ 150 (caddr b))))
(Command "Point" p2)
(Command "text" (list (+ (car p2) 8) (+ (cadr p2) 5)) 15 0 " b ")
(setq punctul2 (entlast))
(Command "Point" q2)
(Command "text" (list (+ (car q2) 8) (+ (cadr q2) 5)) 15 0 " b' ")
(Command "Pline" p2 q2 "")
( SETQ c (GETPOINT "Coordonatele punctului C:"))
(setq p3 (list (- 210 (car c)) (- 150 (cadr c))))
(setq q3 (list (- 210 (car c)) (+ 150 (caddr c))))
(Command "Point" p3)
(Command "text" (list (+ (car p3) 8) (+ (cadr p3) 5)) 15 0 " c ")
(Command "Point" q3)
(Command "text" (list (+ (car q3) 8) (+ (cadr q3) 5)) 15 0 " c' ")
(Command "Pline" p3 q3 "")
( SETQ a1 (GETPOINT "Coordonatele punctului A1:")) ; varf al
bazei superioare
(setq p4 (list (- 210 (car a1)) (- 150 (cadr a1))))
(setq q4 (list (- 210 (car a1)) (+ 150 (caddr a1))))

151

Aplicaii rezolvate
(Command "Point"p4)
(Command "text" (list (+ (car p4) 8) (+ (cadr p4) 5)) 15 0 " a1 ")
(Command "Point"q4)
(Command "text" (list (+ (car q4) 8) (+ (cadr q4) 5)) 15 0 " a1' ")
(Command "Pline" p4 "w" "0" "0" q4 "C")
(setq p5 (list (+ (car p4) (- (car p2) (car p1))) (+ (cadr p4) (- (cadr
p2) (cadr p1)))))
(Command "Point"p5)
(Command "text" (list (+ (car p5) 8) (+ (cadr p5) 5)) 15 0 " b1 ")
(setq p6 (list (+ (car p4) (- (car p3) (car p1))) (+ (cadr p4) ((cadr p3) (cadr p1)))))
(Command "Point"p6)
(Command "text" (list (+ (car p6) 8) (+ (cadr p6) 5)) 15 0 " c1 ")
(setq q5 (list (+ (car q4) (- (car q2) (car q1))) (+ (cadr q4) (- (cadr
q2) (cadr q1)))))
(Command "Point"q5)
(Command "text" (list (+ (car q5) 8) (+ (cadr q5) 5)) 15 0 " b1' ")
(setq q6 (list (+ (car q4) (- (car q3) (car q1))) (+ (cadr q4) (- (cadr
q3) (cadr q1)))))
(Command "Point"q6)
(Command "text" (list (+ (car q6) 8) (+ (cadr q6) 5)) 15 0 " c1' ")
(Command "Pline" p1 p2 p3 "C") ; Se traseaza muchiile prismei
(Command "Pline" p4 p5 p6 "C")
(Command "Pline" p1 p4 "C")
(Command "Pline" p2 p5 "C")
(Command "Pline" p3 p6 "C")
(Command "Pline" q1 q2 q3 "C")
(Command "Pline" q4 q5 q6 "C")
(Command "Pline" q1 q4 "C")
(Command "Pline" q2 q5 "C")
(Command "Pline" q3 q6 "C")
(Command "Pline" p4 q4 "C")
(Command "Pline" p5 q5 "C")
(Command "Pline" p6 q6 "C")
(SETQ m (GETPOINT "Coordonatele punctului M:")) ;Punctele
planului de sectiune MNP
(setq p11 (list (- 210 (car m)) (- 150 (cadr m))))
(setq q11 (list (- 210 (car m)) (+ 150 (caddr m))))
( SETQ n (GETPOINT "Coordonatele punctului N:"))
(setq p22 (list (- 210 (car n)) (- 150 (cadr n))))
(setq q22 (list (- 210 (car n)) (+ 150 (caddr n))))
( SETQ p (GETPOINT "Coordonatele punctului P:"))

152

Elemente de grafic asistat


(setq p33 (list (- 210 (car p)) (- 150 (cadr p))))
(setq q33 (list (- 210 (car p)) (+ 150 (caddr p))))
(Setq i1 (inters o1 o2 p11 p22 nil)) ; determinarea urmelor
planului MNP
(setq i2 (list (+ 0 (car i1)) (+ 10 (cadr i1))))
(Setq i3 (inters i1 i2 q11 q22 nil))
(Setq i4 (inters o1 o2 p22 p33 nil))
(setq i5 (list (+ 0 (car i4)) (+ 10 (cadr i4))))
(Setq i6 (inters i4 i5 q22 q33 nil))
(Setq i7 (inters o1 o2 q11 q22 nil))
(setq i8 (list (+ 0 (car i7)) (+ 10 (cadr i7))))
(Setq i9 (inters i7 i8 p11 p22 nil))
(Setq i10 (inters o1 o2 q22 q33 nil))
(setq i11 (list (+ 0 (car i10)) (+ 10 (cadr i10))))
(Setq i12 (inters i10 i11 p22 p33 nil))
(Setq i13 (inters v1 v2 i3 i6 nil))
(Command "Point" i13)
(Command "text" (list (+ (car i13) 8) (cadr i13)) 15 0 " Pz ")
(Setq i14 (inters v1 v2 i9 i12 nil))
(Command "Point" i14)
(Command "text" (list (+ (car i14) 8) (cadr i14)) 15 0 " Py ")
(setq i15 (list (+ 210 (- 150 (cadr i14))) (+ 150 0 )))
(Setq i16 (inters v1 v2 o1 o2 nil))
(Command "Arc""c" i16 i14 i15 ) ; urmele planului ABC
(command "xline" i3 i6 "")
(command "xline" i9 i12 "")
(command "xline" i13 i15 "")
(Setq i17 (inters i3 i6 o1 o2 nil))
(Command "Point" i17) ; Punctul Px
(Command "text" (list (+ (car i17) 8) (+ (cadr i17) 5)) 15 0 " Px ")
(command "pline" i13 "w" "1.0" "1.0" i15 "")
(command "pline" i13 "w" "1.0" "1.0" i17 "")
(command "pline" i17 "w" "1.0" "1.0" i14 "")
(Setq j1 (inters q1 q4 q11 q22 nil)) ; intersectia cu AA1
(setq j2 (list (+ 0 (car j1)) (+ 10 (cadr j1)))) ; punct al liniei de
ordine
(Setq j3 (inters j1 j2 p11 p22 nil)) ; in proiectie orizontala
(Setq j4 (inters q1 q4 q22 q33 nil))
(setq j5 (list (+ 0 (car j4)) (+ 10 (cadr j4))))
(Setq j6 (inters j4 j5 p22 p33 nil))
(Setq j7 (inters j3 j6 p1 p4 nil))
(setq j8 (list (+ 0 (car j7)) (+ 10 (cadr j7))))

153

Aplicaii rezolvate
(Setq j9 (inters j7 j8 q1 q4 nil))
(Command "Point" j9)
(Command "text" (list (+ (car j9) 8) (+ (cadr j9) 5)) 15 0 " p' ")
(Command "Point" j7)
(Command "text" (list (+ (car j7) 8) (+ (cadr j7) 5)) 15 0 " p ")
(Command "pline" j9 "w" "0" "0" j7 "C")
(Setq l1 (inters q2 q5 q11 q22 nil)) ; intersectia cu BB1
(setq l2 (list (+ 0 (car l1)) (+ 10 (cadr l1)))) ; punct al liniei de
ordine
(Setq l3 (inters l1 l2 p11 p22 nil)) ; in proiectie orizontala
(Setq l4 (inters q2 q5 q22 q33 nil))
(setq l5 (list (+ 0 (car l4)) (+ 10 (cadr l4))))
(Setq l6 (inters l4 l5 p22 p33 nil))
(Setq l7 (inters l3 l6 p2 p5 nil))
(setq l8 (list (+ 0 (car l7)) (+ 10 (cadr l7))))
(Setq l9 (inters l7 l8 q2 q5 nil))
(Command "Point" l9)
(Command "text" (list (+ (car l9) 8) (+ (cadr l9) 5)) 15 0 " q' ")
(Command "Point" l7)
(Command "text" (list (+ (car l7) 8) (+ (cadr l7) 5)) 15 0 " q ")
(Command "pline" l9 "w" "0" "0" l7 "C")
(Setq s1 (inters q3 q6 q11 q22 nil)) ; intersectia cu CC1
(setq s2 (list (+ 0 (car s1)) (+ 10 (cadr s1)))) ; punct al liniei de
ordine
(Setq s3 (inters s1 s2 p11 p22 nil)) ; in proiectie orizontala
(Setq s4 (inters q3 q6 q22 q33 nil))
(setq s5 (list (+ 0 (car s4)) (+ 10 (cadr s4))))
(Setq s6 (inters s4 s5 p22 p33 nil))
(Setq s7 (inters s3 s6 p3 p6 nil))
(setq s8 (list (+ 0 (car s7)) (+ 10 (cadr s7))))
(Setq s9 (inters s7 s8 q3 q6 nil))
(Command "Point" s9)
(Command "text" (list (+ (car s9) 8) (+ (cadr s9) 5)) 15 0 " r' ")
(Command "Point" s7)
(Command "text" (list (+ (car s7) 8) (+ (cadr s7) 5)) 15 0 " r ")
(Command "Color" "red")
(Command "pline" s9 "w" "0" "0" s7 "C")
(Command "Pline" j9 "w" "1.2" "1.2" l9 s9 "C")
(setq polilinia1 (entlast))
(Command "Hatch" "ansi31" 1 0 "l" "")
(Command "Pline" j7 "w" "1.2" "1.2" l7 s7 "C")
(setq polilinia2 (entlast))

154

Elemente de grafic asistat


(Command "Hatch" "ansi31" 1 0 "l" "")
(Command "Zoom" "e")
)

n mod analog, reunind rutinele Urme, Inter


Sectetc. n cadrul unui program pentru trasarea automat a
seciunilor plane prin piramide triunghiulare, a fost construit
funcia denumit Sect.1..
Pe lnga faptul c la elaborarea ei se ine cont de
proprietile piramidei, ea realizeaz i proieciile laterale ale
vrfurilor piramidei, muchiilor acesteia i a vrfurilor
triunghiului de seciune.
n figura 5.13 este prezentat un exemplu, n care apare
tripla proiecie ortogonal a triunghiului de seciune M1N1P1 a
suprafeei piramidale (triunghiulare) SMNP (smnp, smnp,
smnp) cu planul determinat de punctele AB i C, pentru
urmtoarele valori arbitrare ale coordonatelor acestor puncte:
A(-50, 90, 20), B(10, 25, 70), C(60, 15, 30), S(200, 20, 140),
M(5, 5, 10), N(60, 90, 20) P(35, 100, 70).
p'p''

n''

p1'
n1'

n1''

Pz

s'

n'
p1''

s''
m1''
Pxm''

m1'

m'

p
n
p1

n1
m1

Py

Figura 5.13
155

Aplicaii rezolvate

La fel ca n cazul funciei anterioare Sect. 2., aplicaia


traseaz automat i urmele ph, pv i pl ale planului de seciune,
notat de data asta cu ABC, care nu au fost notate n figura 5.13,
dar care pot fi identificate prin cunoscutele puncte Px, Py i Pz.
n concluzie, operaiile grafice de determinare a dublei
sau triplei proiecii ortogonale a poligonului de seciune plan a
unui poliedru pot fi automatizate, adic pot fi nseriate n
cadrul unui program grafic care l reprezint direct. Se cere
doar introducerea datelor problemei, sub forma coordonatelor
vrfurilor poliedrului i ale celor care determin planul de
seciune. Acest programe pot fi generalizate i i pot gsi o
aplicaie foarte util n determinarea poligonului (n spaiu) de
intersecie a dou poliedre, apoi, prin alte generalizri, pentru
seciun plane prin corpuri cilindro-conice.
Pz
s'
m'1
p'1
m'
n'1

p'
n'

Px

m
p1

m1
s

n1 n

Py

Figura 5.14
n figura 5.14, s-a reprezentat seciunea M1N1P1 a
prismei triunghiulare SMNP(smnp, smnp) cu planul P
determinat de punctele ABC. Coordonatele acestor puncte sunt:
A(20, 120, 40), B(50, -40, 140), C(100, 10, 20), S(100, 130,
150), M(-50, 10, 90), N(-10, 130, 10) i P(-140, 50,40).
156

Elemente de grafic asistat

Programul cere n mod repetat aceste valori i ele vor fi


introduse de la tastatur.
Alte exemple sunt redate n figurile 5.15 i 5.16 pentru
urmtoarele valori ale coordonatelor vrfurilor: n figura 5.15,
A(-20, 140,10), B(50,20,110), C(100, 40,30), S(120,90,110),
M(-50,20, 100), N(-10, 110, 40) i P(-100, 0, 80). n figura
5.16, A(-100, 0, 90), B(0, 110, 40), C(100, 10, 80), S(90, 40,
30), M(-100, 0, 120), N(-40, 120, 140), P(-10,80,0).
Pz

s'

m'1p'1

m'
p'
n'1
n'

Px

p
m
m1

p1

s
n1
n
Py

Figura 5.15
Se observ c programul, dup introducerea
coordonatelor punctelor A, B i C, traseaz automat urmele
planului de seciune, cu punctele lor remarcabile Px, Py i Pz.
Programul este astfel alctuit nct seciunea care se
reprezint este a suprafeei piramidale corespunztoare vrfului
S i bazei MNP. La anumite valori ale coordonatelor acestor
puncte, seciunea se afl pe feele suprafeei piramidale, dar n
afara muchiilor vizibile ale piramidei , aa ca n figura 5.17, n
care punctele care determin planul de seciune au aceleai
157

Aplicaii rezolvate

coordonate ca n figura 5.16, iar cele ale vrfurilor piramidei au


coordonatele S(10, -150, -10), M(100, 90, -20), N(-60, 0, 80) i
P(0, 40, 0).
n'
m'
Pzp'1
n'1
s'

m'1
p'
p1

m1
n1
p
n

Figura 5.16
Pz
s

n'1

n'

Px
p'1
m'

s'

m'1
p'

p
p1
m
n1
m1
Py

Figura 5.17
158

Elemente de grafic asistat

5.2.4 Alte probleme de intersecie


n acest subcapitol vor fi prezentate alte exemple n care
problemele de intersecie pot fi rezolvate i verificate mai uor
i mai atractiv cu ajutorul calculatorului i al programului
AutoCAD.
Dreapta i sfera
Fie construcia din figura 5.18, n care este prezentat
dubla proiecie ortogonal a punctelor de intersecie a dreptei
D(d, d) cu suprafaa sferei de centru O(o, o). Cea mai direct
metod este alegerea unui plan auxiliar proiectant vertical,
P(PH, PV) [H],
P(PH, PV) D(d, d)
d'

Pv

k'
m'

v'

o'

h'

l'
x

h'

Px

h
vo
Pvo

Ao

O
l

m o
k

lo

d = Ph = h

Mo
Bo
ko

Figura 5.18
159

Aplicaii rezolvate

Acest plan, dac secioneaz sfera, o taie dup un cerc,


a crui proiecie, n plan vertical, este o elips. Determinarea ei
este dificil, de aceea se rabate planul P pe planul orizontal,
astfel nct se pun n eviden att cercul de seciune ct i
interseciile acestui cerc cu dreapta D, coninut n planul
rabtut P.
n ridicarea rabaterii planului P, punctelor l0 i k0 le
corespund respectiv punctele L(l, l) i K(k, k), ale cror
proiecii descriu grafic coordonatele carteziene ale interseciilor
dreptei cu sfera.
Toat aceast construcie grafic, prezentat n figura
5.18, poate fi obinut automat cu unul din programele
AutoCAD, prin ncrcarea unei aplicaii specifice scris n
limbaj AutoLISP, pe care am numit-o sfera, scris ntr-un
editor de text oarecare i ncrcat prin funcia load
applications din bara de meniu derulant tools a
programului.
Aplicaia sfera este alctuit din trei blocuri distincte,
care sunt, pe scurt, urmtoarele:
intrducerea coordonatelor centrului sferei, a razei r a
sferei, a coordonatelor punctelor ce determin dreapta D, toate
acestea fiind cerute la linia de dialog a AutoCAD lui i
introduse de la tastatur. De exemplu,
(SETQ o (GETPOINT "Coordonatele centrului sferei o:"))
(setq p (list (- 210 (car o)) (- 150 (cadr o))))
(setq q (list (- 210 (car o)) (+ 150 (caddr o))))
(SETQ r (GETREAL "Valoarea razei sferei r:"))
(SETQ A (GETPOINT "Coordonatele punctului A:"))
(setq a1 (list (- 210 (car a)) (- 150 (cadr a))))
(setq a2 (list (- 210 (car a)) (+ 150 (caddr a))))
(SETQ B (GETPOINT "Coordonatele punctului B:"))
(setq b1 (list (- 210 (car b)) (- 150 (cadr b))))
(setq b2 (list (- 210 (car b)) (+ 150 (caddr b))))

atribuirea valorilor corespunztoare variabilelor


care intervin n realizarea construciei grafice, unghiuri,
distane, puncte de intersecie etc., de exemplu:
160

Elemente de grafic asistat


(Setq
r1 (distance i j)
u1 (angle a1 b1)
j1 (polar i (+ (/ pi 1) 0) r1)
j2 (polar i (+ (/ pi 2) u1) r1)
j3 (polar j2 u1 (car i))
t (polar p (+ (/ pi 2) u1) r)
m1 (inters a2 b2 q j nil)
o0 (inters p t j2 j3 nil)
n (polar m1 (/ pi 2) (cadr m1))
m (inters n m1 a1 b1 nil)
h1 (inters a2 b2 o1 o2 nil)
h2 (polar h1 (/ pi 2) (car h1))
h (inters a1 b1 h1 h2 nil)
m0 (polar m (+ (/ pi 2) u1) r1)
w (inters a1 b1 p o0 nil)
r2 (distance p w)
r0 (sqrt (- (expt r 2) (expt r2 2)))

n sfrit, comenzile AutoCAD


reprezentrii propriu-zise. De exemplu,

necesare

(Command "circle" p r )
(Command "circle" q r )
(Command "pline" p "w" "0" "0" q "")
(Command "point" a1 "text" (list (+ (car a1) 8) (+ (cadr a1) 6)) 12
0 "a")
(Command "point" a2 "text" (list (+ (car a2) 8) (+ (cadr a2) 6)) 12
0 "a'")
(command "pline" a1 "w" "0" "0" a2 "")
(Command "point" b1 "text" (list (+ (car b1) 8) (+ (cadr b1) 6)) 12
0 "b")
(Command "point" b2 "text" (list (+ (car b2) 8) (+ (cadr b2) 6)) 12
0 "b'")
(command "pline" b1 "w" "0" "0" b2 "")

n figura 5.19 este prezentat desenul obinut cu ajutorul


aplicaiei sfera pentru urmtoarele valori ale variabilelor:
O(11, 44, 57), r = 80, A(-75, 90, 111) i B(105, 35, 12).
Programul returneaz (la prompterul AutoCAD)
coordonatele punctelor l, l, k, k, care sunt coordonatele
punctelor de intersecie ale dreptei D cu sfera. Coordonatele
punctului L, pentru situaia prezentat n figura 5.18, sunt:
161

Aplicaii rezolvate

xr = 257,789
yr = 68,314
zr = 246,034
respectiv coordonatele punctului K:
xr = 126,298
yr = 108,493
zr = 173,713

Figura 5.19
innd seama de faptul c originea sistemului de axe
folosit pentru reprezentarea dublei proiecii ortogonale a fost
aleas n punctul raportat la UCS prin O(210, 150), pentru a
afla valorile reale ale coordonatelor punctelor L i K, trebuie s
se fac urmtoarea translaie, n care x, y i z sunt coordonatele
reale i xr, yr i zr sunt valorile returnate de aplicaia sfera.
Bineneles, aplicaia poate fi conceput n aa fel nct
programul s returneze direct valorile reale ale coordonatelor
punctelor de intersecie a dreptei cu sfera.
162

Elemente de grafic asistat

Astfel, pentru L se calculeaz:


x = 210 - 257,789 = - 47,789
y = 150 - 68,314 = 81,686
z = 246,034 - 150 = 96,034
Pentru punctul K:
x = 210 - 126,298 = 83,702
y = 150 - 108,493 = 41,507
z = 173,713 - 150 = 23,713
Pe de alt parte, aceste valori pot fi obinute analitic
rezolvnd sistemul:

(x x 0 )2 + (y y 0 )2 + (z z 0 )2 R 2 = 0

x xa
y ya
z za
=
=
x
b x a yb ya zb za
care, particulariznd pentru situaia prezentat n figura 5.18,
devine
(x 11)2 + (y 44 )2 + (z 57 )2 80 2 = 0

x + 75
y 90
z 111
=
=

105 + 75 35 90 12 111
Se observ cu uurin c valorile determinate grafic
verific sistemul de mai sus.
Dreapta i conul
Aa cum s-a artat deja n introducerea acestui
subcapitol, proprietatea programului de a returna valorile
coordonatelor oricrui punct, introdus ca entitate geometric,
poate fi folosit pentru a afla coordonatele unor puncte de
intersecie folosind metode grafice. Fie conul circular, cu
vrful S i baza n planul orizontal de proiecie, din figura 5.20.
Cea mai simpl metod grafic de determinare n dubl
proiecie ortogonal a punctelor de interesecie dintre dreapt i
suprafaa conic const n alegerea dreptei D1(d1, d1), paralel
cu D(d, d) i care trece prin vrful conului S(s, s).
163

Aplicaii rezolvate

D(d, d) // D1(d1, d1)


D1(d1, d1) S(s, s)
s'
m'
d'
n'
h'
2'

1'

h1'

h1

2
1

d1'

d1
s

Figura 5.20
Urmele orizontale h i h1 ale acestor drepte determin
urma orizontal a unui plan care taie suprafaa conic dup
generatoarele S1 (s1, s1) i S2 (s2, s2). Evident, aceste
generatoare, coplanare cu dreapta D (d, d), conin punctele de
intersecie ale dreptei D cu suprafaa conic.
D (d, d) S1 (s1, s1) = M(m, m)
D (d, d) S2 (s2, s2) = N(n, n)
Aceast construcie poate fi automatizat prin
intermediul unei aplicaii specifice, scris n AutoLISP, pe care
am denumit-o con, al crei bloc de selecie este:
(Setq h11 (inters a2 b2 o1 o2 nil)
r1 (distance a1 b1) j1 (polar h11 (/ pi 2) r1) h1 (inters h11 j1 a1 b1
nil) u1 (angle a2 b2) j2 (polar s2 u1 r1) h21 (inters s2 j2 o1 o2
nil)u2 (angle a1 b1)j3 (polar s1 u2 r1)j4 (polar h21 (/ pi 2) r1)

164

Elemente de grafic asistat


h2 (inters h21 j4 s1 j3 nil)u (angle h1 h2)
w (polar p (+ (/ pi 2) u) r1)w1 (inters p w h1 h2 nil)
r2 (distance p w1)d1 (sqrt (- (expt r 2) (expt r2 2)))
l0 (polar w1 u d1)u3 (angle h2 h1)
k0 (polar w1 u3 d1)k (inters k0 s1 a1 b1 nil)

Intersecia plcilor plane


O problem teoretic des intalnita n aplicaiile de geometrie
descriptiv, menit sa fixeze cunotinele legate de punct,
dreapt i plan, n dubl proiecie ortogonal, este cea a
determinrii interseciei unor plci triunghiulare i a vizibilitii
acestei intersecii. Fie, de exemplu, urmatoarea problem de
intersecie:

Figura 5.21
S se gaseasc intersecia dintre placa ABC i
MNP, fr a determina urmele planului, dac vrfurile acestor
165

Aplicaii rezolvate

plci au coordonatele A(100, 60, 35), B(5, 80, 10), C(40, 10,
85), M(90, 20, 15), N(70, 75, 75) si P(20, 30, 35).
In figura 5.21 este redat determinarea interseciei cu
ajutorul planelor auxiliare proiectante. Pe scurt,
(NP) [Q]; [Q] fiind un plan auxiliar de capt.
[Q] [ABC] (12) (NP) S
(MP) [R]; [R] fiind un alt plan auxiliar de capt
[R] [ABC] (34) (MP) T .
Deci ABC MNP (ST).
Rezolvarea aceste probleme poate fi, mai intuitiv i
mai sugestiv, tratat cu ajutorul modelrii 3D, folosind
operaiile extrude ale conceptului AutoCAD solid, apoi,
pentru obinerea unei imagini ct mai reale, operaiile de
randare, umbrire etc. Pentru prima placa ABC se reprezint
conturul ei, apoi se extrudeaz pe o nlime relativ mic, n
acest caz de o unitate, astfel nct se obine modelul solid al
plcii raportat la user coordinates sistem. Analog pentru cea
de-a doua plac MNP, apoi se folosete opiunea
interference, care realizeaz intersecia plcilor, stabilind i
vizibilitatea

Figura 5.22
In figura 5.22 sunt redate alaturat doua reprezentari ale
aceleiasi intersectii, corespunzatoare punctului vpoint (-1, -1,
1). In partea stanga este redat un model wireframe al
166

Elemente de grafic asistat

intersectiei placilor, fara vizibilitate si fara ascunderea


muchiilor, iar in partea dreapta, aceeasi intersectie, dar intr-o
forma realistica, cu materiale, umbre si lumini, cu ajutorul
viewports.
Un alt exemplu este cel redat in figura 5.23, in care
varfurile celor doua placi ABC si MNP au coordonatele
A(120,40,10), B(70, 10, 70), C(10, 60, 20), M(110, 50, 30),
N(80, 80, 70) si P(20, 0, 0). [6]

Figura 5.23
Acest mod de abordare al problemei interseciei de
plci este pentru studeni sugestiv i captivant i totodat i
familiarizeaz cu modelarea 3D. Punctul din care este privit
construcia corespunde centrului de proiecie din sistemul
central (conic) al teoriei clasice a sistemelor de proiecie.
Intersectii de poliedre
Fie urmatoarea problem clasic de intersecii de
poliedre: S se reprezinte n epur prismele date prin
coordonatele vrfurilor lor: prisma ABCA1B1C1 , A(109, 44,
0), B(201, 105, 0), C(241, 15.5, 0), A1(223, 64, 115), i
167

Aplicaii rezolvate

NPRTN1P1R1T1, N(365, 60, 0), P(325, 97, 0), R(230, 80, 0),
T(286, 12, 0) i T1 (82, 5, 115) [6].
Pentru a obine o reprezentare n epur a poligonului
de intersecie, care este un poligon n spaiu, se determin
vrfurile acestuia, care sunt punctele n care fiecare muchie a
unei prisme ineapa feele celeilalte, cu metoda planelor
auxiliare proiectante. Este o operaie anevoioas, care i irit
deopotriv pe studeni ct i pe profesorii lor. Folosind
posibilitaile modelrii solide, reprezentarea devine mai
accesibil, mai sugestiv i, asa cum se intampl de multe ori
n nvaarea i nelegerea unor chestiuni abstracte i pentru
dezvoltarea capacitaii de abstractizare, calea cea mai plcut
este totodat i cea mai eficient.

Figura 5.24
n figura 5.24 este redat imaginea interseciei celor
doua prisme, obtinut prin modelare solid 3D. Poligoanele
dela baza prismelor au fost introduse prin coordonatele
vrfurilor date numeric, apoi au fost definite corpurile solide
prin extrudare, de-a lungul unei ci de extrudare (path) n
lungul unei muchii a prismei, de exemplu AA1 sau TT1. n
partea stang a reprezentrii (viewport stnga) sunt vizibile
modelele wireframe ale celor doua corpuri solide. n partea
dreapt sunt redate imaginile realistice ale celor dou prisme,
168

Elemente de grafic asistat

din materiale diferite, pentru un mai mare contrast, i


intersecia lor cu vizibilitatea acestei intersecii.
n cazul modelrii solide a unei piramide, calea cea mai
direct este de a seciona prisma creia i aparine piramida prin
planul determinat de trei puncte convenabil alese, cu ajutorul
funciei slice. Fie, de exemplu, urmtoarea problem de
intersecie: S se reprezinte n epur poliedrele date prin
coordonatele vrfurilor lor, prisma ABCA1B1C1, A(109, 40,
0), B(190, 105, 0), C(241, 15, 0), A1(227, 64, 115) i piramida
SNPRT, S(34, 5, 129), N(365, 60, 0), P(325, 117, 0), R(230,
103, 0) i T(286, 12, 0).

Figura 5.25
n figura 5.25 este redatat imaginea interseciei
(interference) celor dou corpuri modelate ca solide 3D. Se
observ c intersecia este o strpungere. Pentru ca acest
lucru s fie i mai vizibil, se pot folosi alte centre de proiecie
(vpoint) sau chiar o imagine 3D dinamic, obinut prin
modificarea continu a centrului de proiecie, cu ajutorul
opiunii 3D continous orbit.
n figura 5.26 este redat imaginea realistic a
interseciei, cu materiale diferite ale celor dou corpuri, cu
umbre i lumini produse de o surs luminoas punctiform,
169

Aplicaii rezolvate

care lumineaz construcia dintr-un punc predefinit. Prisma a


fost modelat prin extrudare, de-a lungul unei ci definite de
una dintre muchiile ei, iar piramida prin secionarea cu ajutorul
funciei slice, bineineles, n ambele cazuri alegnd un sistem
de referin adecvat (user coordinates system).

Figura 5.26
Imaginea astfel obtinut a interseciei (o strpungere)
este mai intuitiv, atractiv i mai frumoas. Un alt exemplu (o
rupere), n care o problem clasic de intersecie de poliedre
este tratat cu mijloacele modelarii solide este redat n figura
5.27.

Figura 5.27
Determinarea proieciei laterale
Un anumit gen de exerciiu care, dup introducerea
sistemelor de proiecie i a regulilor de reprezentare a
poliedrelor, se folosete pentru deprinderea studenilor cu
aezarea normal a proieciilor i, n general, pentru

170

Elemente de grafic asistat

dezvoltarea capacitaii lor de abstractizare n probleme de


desen tehnic, este cel n care se dau dou proiecii ale unui
poliedru (combinaie de poliedre, corpuri cilindro-conice etc.),
de exemplu, cea vertical i orizontal (figura 5.28), i se cere
determinarea celei de-a treia proiecie (lateral).
Lucrul se poate desfasura in paralel cu realizarea unui
model avansat 3D. Acest tip de
z
reprezentri, asemntoare celor
axonometrice, este din ce n ce
mai rspndit, fiind accesibil i
sugestiv. n principiu, un desen
3D este un model virtual al unui
x
o
obiect, realizat ntr-un program
de tip CAD i cruia, mai mult
dect
n
reprezentrile
axonometrice,
i
pot
fi ataate
y
anumite proprieti.
Figura 5.28
Programul ofera posibilitatea de schimbare a punctului
imaginar din care este privit un obiect si acesta este principalul
avantaj al reprezentrilor 3D fa de cele axonometrice, n
cazul crora, odat planul axonometric ales, nu mai poate fi
schimbat.

Figura 5.29
Opiunea VPOINT este echivalent cu pstrarea
obiectului n poziia iniial i deplasarea (virtual) a
171

Aplicaii rezolvate

observatorului n oricare punct din spaiu, din care sunt vizibile


detaliile interesante (figura 5.29).
Dup ce modelul de srm a fost construit, lui i se pot
aduga suprafeele care-l mrginesc i astfel se poate
transforma n unul superficial. Extremitile muchiilor
modelului de srm (ale liniilor extrudate) pot servi drept cadru
pentru amplasarea feelor 3D (figura 5.30).

Figura 5.30
n figura 5.31 este redat imaginea 3D a altui poliedru,
obinut de data asta cu ajutorul programului SolidWorks, un
program, aa cum s-a artat deja, specializat n modelri 3D. O
facilitate interesant i spectaculoas a acestuia este
posibilitatea trecerii rapide dela imaginea 3D la una n dubl
sau multipl proiecie ortogonal. Dei rezultatele i imaginile
obiectului modelat sunt asemntoare, n cazul lucrului cu
SolidWorks totul este mult mai rapid. De exemplu, numai
extrudarea solid aici se face pe dou direcii convenabil alese,
aa nct o dreapt poate fi dezvoltat ntr-un obiect solid. n
figura 5.31 a fost ales un corp combinaie de prisme drepte, cu
172

Elemente de grafic asistat

multiple degajri i alezaje, tocmai pentru a artat ct de uor


se pot obine toate aceste detalii.

Figura 5.31
Ca i programul AutoCAD, SolidWorks lucreaz cu
mai multe vederi simultan, avnd i posibilitatea unei vizionri
animate. Totodat, trecerea dela un model 3D la proieciile
ortogonale ale acelui model se face cu mare uurin, acesta din
173

Aplicaii rezolvate

urm avnd toate facilitile de cotare cunoscute. n figura 5.32


sunt artate proieciile ortogonale ale solidului din figura 5.31,
aezate dup cunscuta metod a cubului de proiecie.

Figura 5.32

174