You are on page 1of 45
Ho Huu Son - Chuyen Nquyen Tat Thanh Kon Tum oon 08 Duc Dong - Lalmen Hoos ‘Trin 06 Hung - Nguyén Thanh Hing TAI LIEU CHUYEN TIN HOC Quyéa 3 y GD NHA XUAT BAN GIAO DUC VIET NAM MUC LUC (CHUYEN bf 8. HINH HOC TINH TOAN I. Mt sé khai nigm co ban... Il, M@ts6 bai todn co ban... UL. M@t sé bai todn théng dung khéc ... CHUYEN BE 9. Li THUYET TRO CHOI 46 AT 1 Mt s6 khéi nigm, Il. Trd choi té hgp can biing.. Ill. Trd choi hai ngudi cé ting diém bing 0... CHUYEN bf 10, THUAT TOAN MO PHONG TY NHIEN GIAI BAI TOAN TOI UU TO HOP 128 1. Bai todn t6i uu td hop Il Thugt toan di truyén va tinh toan tién hod IIL, Phuong phép tdi wu héa dan kién...... 129 so 134 HUONG DAN GIAI BAI TAP... lent HINH HQC TINH TOAN cre.) Hin hoc tinh tofn (computational geometry) Ia mOt nhénh ta nganh Khoa hoc may tinh, chuyén nghién citu vé thu®t todn giai quyét cfc bai tod lin quan t6i ce ‘46 tugmg hinh ge. Trong todn hoe va eOng nghé hin 4, hinh hoe tinh tos €6 ‘img dung Khé réng fi trong cte finh ype vé dB hog may tinh, thiét ké, m6 hong. Do gidi han noi dung eva cubn stch, ching t st chi khdo st met sb bal ton va ‘hut todn cn bin. DE gidp cho ngubi doe nhanh chéng nim bit duge ¥ wong vA ‘Ai 9 thuft ton, da 8 cdng tie hinh hoe duge thira nhén, khéng chimg minh. 1. M6ts6 khai niém co ban I. Hé tog d6 Bé-cic Trong mat phing, chon mot diém O va hai vecto don vj (vecto 6 d6 dai 1) 7,7 vudng géc v6i nhau. Khi 46 b6 ba (0, 7,7) duge goi 1a hé toa 46 Dé-cée vudng 6c (hay con goi la mot myc tiéu Oclit hai chiéu, myc tiéu trye chudn) Don vi 46 dai 1d mOt khdi nigm quy uée, 6 thé ld cm, mm, inch... Rang bude vé hai vecto i,j 06 thé viét dudi dang biéu thite cia tich v6 hung (tich chdm): P=Paivaij=o0, Ta cling ki higu myc tiéu 46 1a Oxy véi Ox va Oy 18 hai tia géc O 06 vecto chi phuong lin lugt 1a? va 7. Le Hink 8.1. Myc leu Oettt Diém O goi 1a géc tog 46, dung thing Ox dugc goi la truc hoanh va Oy duge goi a true tung, Trong Ki thuat vé hinh, hai vecto ¢ va j thuémg dugc vé sao cho chiéu quay tir t6i ‘Tnguge véi chiéu kim déng hd. Ta goi chiéu quay tir F161 vacto j 1a chiéu thudn, chiéu quay trdi hay ngugc chiéu kim déng hé (counterclockwise-ccw). Neguge Iai, ta goi chidu quay tir vectarj ti vecta 71a chiéu nghich. chiéu quay Dhdi hay chiéu kim déng hé (clockwise-cw). 2. Toa dp Xét mat phiing truc chudn (0,7,j), voi m6t vecto # bat ki cia mat phing, ton tai duy nhét mgt c&p s6 thye (x; y) sao cho # = xt + yf. Cap sb (2:y) khi d6 duge g9i la toa 46 cia vecto ¥ d6i voi muc tiéu dA cho, ki higu 3 = (x;y). Cac két qua sau cé thé dé ding chimg minh bing djnh nghia toa 46: '* Vecta i ¢6 tog d9 (1; 0) va veto j c6 toa 46 (0; 1). © Néu H= (euiy,) va B= (psy) thi Z= 8 khi vA chi khi x, 39) thi tong vecto Z+ 3 = (&y Fei +9) va tich v6 hudng 9 = xy + Judo © Néud = (x; y) vak€ R thi kd = (kx;ky), Trén mat phing tryc chudn (0, 7,7) ta My mot diém M, khi 46 toa 46 (x;y) cua. vecto OM duge goi la tog 46 cla diém M, ki higu M = (x;y). Ta c6 m6i lién hé gitta tog dé cia vecto va toad cia diém: Néu M=(x i Yue) VAN = (ays ¥u) thi MN = ON — OM = (3y = X05 Yu = Yo)- 3. Dbi hg tog a6 Cho hai hé tog 46 trve chudn trén mat phing: (0,%,7) va (0',7,7'). Gia sir diém M 6 toa a6 (x;y) d6i voi hé toa dé (0. diém M d6i voi hé tog 46 (0,7,)). Gia si trong hé tog. 46 (0,i,j) diém O'=,(p;q), vector = (cd). Khi 46 theo djnh nghia: 7’), bai todn d&t ra la xée dinh toa 46 a; b), vecto 8.1) Biém M c6 toa dé (x;y) di v6i hé toa 46 (017, OM axi+yy Suy ra OM =00'+ OM pi + qj + x(ai + bf) + (ct + dj) (8.2) = ilar + cy +p) +j(bx + dy +4) ‘Céng thite (8.2) cho biét ring diém M c6 toa a9 (ax + cy +p; bx + dy + q) di voi hé toa 49 (0, 7,7). Néu ta goi (#7) 1d tog 43 didm M Abi voi hg toe 46 (08,7) thi cong thi (8.2) c6 thé viét du6i dang ma trén: 6) O+@ e Chit §: Céng thite di toa 46: Ta c6 thé nhé nhur sau cho dé: céc hg s6 ¢ phurong trinh thet nhét 1a hoanh d6-cta ba vecto?,' va 00" trong khi céc hé s6 & phurong trinh thit hai 1d tung 46 cia ba vecto dé. 4. Xéy dung cng thite bién déi tog 46 Trong hinh hgc ghing, mét trong nhtng kf thudt quan trong la xay dymg cong thite bién d8i toa 3 cho céc phép ddng dang (tinh tién, quay, 44i xing true, vitu...). KI thudt chung c6 thé mé ta nhur sau: © Trén hg toa 46 trye chuiin ban dau (0, i,j), xe dinh diém J = (1;0) va didm J = (0;1). © Voi mét phép ding dang f, ta thyc hign f trén ba diém 0,1, 48 nhan duge be Anh ong dng eda ching the' thé ty 1407 ', Tir db xéc dinh toa 46 dim 0' = (p;q), veeto t = OF = (a;b) va vecto © Nhfin xét ring néu diém M c6 toa 46-(x; 17) 086i on ab tye ck 6 cho (0,7,7) thi sau phép bién d4i f, diém M sé bién thanh diém M’ ciing 06 tog 46 (x; y) nhung v6i hg tog 46 true chudn trac chuan (0,7, © Ap dung cng thite (8.2) hoac (8.3) 4@ xdy dymg céng thite toa d6 cia diém M' theo h€ toa 46 ban di. a) Phép quay oMween P= Csinasessay $= (0:1) eMac {= (cosa;sina) I= (1:0) Minh 8.2. Php quay ttm 0 pbc a Ta xét phép quay quanh tim O mt géc «. Phép quay nay gitt bat bién diém O, tire 1a 0" = (0;0), diém 1 =(1;0) bién thinh I' = (cosa;sina), diém J = (0;1) bidn thanh J’ = (—sin a; cos a). Nhu vay: 0' = (0;0); (cosa; sina); OF = (-sina;cosa). Ap dung cong thite (8,2) hoe (8.3), phép quay tim O géc a sé bién diém (x;y) thinh diém (8; 9), trong 46: G)- Gre wse)G) tite la: B= xcosa—ysina {pines yee as Truong hop diac biét: Néu g6c a =-90°, ta 06 cos @ = 0 va sina = 1. Céng thite (8.4) trd thanh R= -y =x Néu g6c @ = 180°, day 1a phép 46i ximg tam 0, cosa = —1 va sina = 0. Cong thite (8.4) tré than: b) Phép tinh tién Ta xét phép tinh tién theo vecto (a; b). Phép tinh tién nay bién diém 0 = (0;0) thanh O° = (a;b). Diém I = (1;0) bién thanh ['(a + 1b) va diém J = (0;1) bign thanh J’ = (a; b + 1). Nhu vay: 0" = (a5); Ap dung céng thitc (8.2) hode (8.3), phép tinh tién theo vecto (a; b) sé bién diém (x; y) thanh diém (2; 9), trong 46: G=6 DG)+G) Grits ws ° Phép quay quanh mot diém cho truée ‘Céng thite phép quay géc a quanh mét diém A cé thé xay dung bing phuong phap tuong ty trén, tuy nhién ta cé thé lam theo cach sau: ‘Thue hién phép tinh tién theo vecto AG, sau d6 thye hign phép quay tém 0 pbc a, ri thyc hign tiép phép tinh tién theo vecto OA. Céng thie cy thé nhu thé nio xin danh cho ban doc. d) Phep vi ty Dé thyc hién phép vi ty tim A =.(x4; y4) ti 86 k, ta 06 thé ding phuong phép nnhur sau: 10 + Tinh tién theo vecto AO: Diémr (x;y) sé bién thanh diém (x';y’) thoa =X min 2 f Ya = Thyc hign phép vj ty tam O ti s6 k. Phép vi ty nay gidt bat bién diém 0, diém 1 =(1;0) bién thanh I’ =(k;0), diém J = (0;1) bién thanh J = (O;k). Nhu vay: 0’ = (0;0); OF =k). Ap dung céng thite (8.2) hoge (8.3), sau phép vj ty tam 0 ti sé k, diém (xiy’) se bién thanh diém (x"; y") thoa man: (2 kext ky’. = Cuéi cing, ta thyc hign phép tinh tién theo vecto OA: x tm y+ Ye Téng hop lai ta duge: kOe x4) +x y Ya) + Yar & 5S. M6t sé khdi nigm khdc a) Tich cham Tich cham (dot product) hay tich v6 hudng cia hai vecto it va 3, ki higu ii, 31a mot s6 thye duge tinh bing tich 49 dai hai vecto i va 3 nhin véi cosin cia gée xen gitta hai vecto 46. Géc xen gitta hai vecto nay la géc khéng dinh huéng, cé 36 do tir0 t6i m. Ham s6 cosin la ham nghich bién trong khong [0;7], né dat gid tri lon nhét bing 1 khi géc gitta hai vecto bing 0 (hai vecto cing chiéu), dat gid tri nho nit bang —1 khi géc gitta hai vecto bing 7 (hai vecto ngugc chiéu) va dat gié tri 0 khi hai vecto vudng gée (true giao). (8.6) Bigu thie cia tich chim gitta hai vecto = (xy; ¥,) va B = (xp: yp) c6 thé dig gid nhu sau: Tacé: Gantt Bett yf Vay: HB = (ult wd). Hot + Yo) ute tek + Gude + Yury) gy (8.7) uty + Yudor ° Cling tir dinh nghia tich chim, ta suy ra céng thite tinh cosin cia géc a hop béi hai veoto i = (xy; ¥,) va B= (xpi 9%): Xury + Yao Vena e cosa u Tich vO hudng c6 thé coi nhu mét 46 do vé mite 46 cing chidu gita hai vecto. Quan trong hon, né la co sé 48 xy dung céc Khai nigm vé khodng cach va géc. ‘Vi dy néu A = (x4; y4) va B = (xp; yp) thi 46 dai doan thing AB dugc tinh bing: VaB = (Gin) Oe =I b) Tich chéo . Tich chéo (cross product) cia hai vecto it va 8, kf higul x #14 mot s6 thye duge tinh biing tich 4 dai hai vecto i va # nhan véi sin cia gée xen gita hai ‘vecto 46. Géc xen gitta hai vecto nay 14 géc dinh huéng, c6 s6 do tir —m t6i 7, s6 do mang déu duong néu chiéu quay tir i t6i # 1a chiéu thugn (nguige chiéu kim dng hd) va mang ddu Am néu chiéu quay tir il t6i # 1a chiéu nghich (theo chidu kim ding hd). L SS 3 Hink 8.3. Ge c6 huing Tich chéo 1 m6t khai nim suy ra tir Khéi nigm tich c6 huémg trong khéng gian vecto Oclit nhiéu chiéu. Bing céc céng cy dai s6 tuyén tinh, ngudi ta d& chimg minh duge céng thire cua tich chéo gitta hai vecto il = (xy;y4) va 8 = (xy: 94): fe Yu Yo! @9) tie Ia gid tj cia tich cho bing dinh tire cba ma tran (5 5). Ta cing suy ra céng thire tinh sin cla géc dinh huéng a gitta hai vecto T= xu Yu) va B= (xvi yy): ixé uo ~ Xu FHL [GE + yeGE +98) 12 ‘Vé mat hinh hoc, gif trj tuyét d6i ca tich chéo if x # 1a dign tich hinb binh hinh OABC, trong dé 0 1a gbc tog 49, OA = it, OC = 3 vA OB =H +9, Tich chéo e6 mot img dung quan trong trong vigc khéo sét chiéu: Gia sir ta di ti diém A sang diém B theo dudng thing va di tip sang diém C theo dudng thing, ki 46: Tih chéo AB x BC se 1a s6 dvong néu ch8 re tai 5 ta “re A 0 c6 nghfa la dinh cia da gidc duge ligt ké nguge chiéu kim déng hé (va nguge Iai). é hinh dung céng thitc trén, ta c6 thé dung cde duémg thing dimg xuéng true hoanh. Méi hang tir sé la dign tich dai 6 cia m6t hinh thang thanh phdn. Dién tich cdc hinh thang phia trén sé nguge dau véi cdc hinh thang bén duéi, tir 46 cho ta dign cola da gide khi Iy tong cua ching ‘Néu vin phan vin vé loi gii thiéu tinh xdy dung trén, ta c6 thé xdy dymg lai ‘c6ng thitc tinh dign tich bing céch khée: tinh tng dign tich cae tam gic Ay4od3, AiAsAs, «... Aidnnidn. Dign tich mdi tam gide durge tinh bing tich cd huéng cia - hai vecto A,A,—; va AzA,, i = 3;7, do dé day 1a dign tich 6 déu. Téng cia cée dign tich nay sau khi rit gon sé dua vé biéu thie trén day va do dé cing Ii giai tai sao S lai la dign tich dai sé. Duéi day 14 chuong trinh tinh dign tich da giée véi khuén dang InpuvOutput ‘hur sau: Input - © Dong dau tién chita s6 dinh n ca da gide (1 0 then WriteLn('Polygon direction: ccW") lee Writetn ("Polygon direction: CH); Writeln(‘area = ', Abs(s)/2 end. 8) Budng tron Dudng tron (O; R) la tp hop cdc diém cach déu tim O(x; y) mot khoang cach R, Dudng tron duge hoan toan xdc dinh boi b§ ba sé (x, y, R) (R> 0). ae I Mét 86 bai toan co ban 1. Biéu dién tuyén tinh Bai todn du tién ta xét dén la cho ba vecto d, B va ¢, hay tim hai sé thyc p,q a: Hai sé p,q cé thé tinh bing céng thie: 16 © NéuD =a x5 #0 thi c6 duy nhét mot cach biéu din tuyén tinh vecto 2 qua hai vecto @ va b (nghiém (p; q) la duy nat). « Néu D = 0, hai vecto d va 5 song song véi nhau, khi 46: = & (Nan; Nan) néu é song song véi ca d va b; = (Bq) = (inf; Inf) néu é khéng song song véi d va B. Ta viét ham: function SolveSLE (conat a, b,c: TVactor): IVector; hin vao ba vecto a, 5, va tra vé mét vecto ¢6 toa 49 (x;y) tuong img véi hé 86 (p;,q) oan tim: function SolveSLe (const a, b, ci Tvector): TWVector? D: Floats begin Dim ave by Result r= Vector((c >< b)/D, (a >< ©) /D); fend; 2. Tim giao diém cia hai duéng thing Trén mat phing véi hé tog dj Dé-cée vudng géc cho hai dudng thing véi phuong trinh tng quét: e . Ax + By + Gy Axx + Bay + C= 0. Bai ton dat ra la xde dinh giao diém cia hai duimg thing 48 cho. Dat i = (Ay; Az), 3 = (By; B,) va W = (~C,;—C,), bai toan tré thanh bai toan biéu din vecta i qua tS hop tuyén tinh cia hai vecto dl va W Waxt+yd. Vige cén Iai chi la bign lugn cho gi tri giao diém tim duge. 2 RTS E ESS 7S EA GN Ss (SHODE OBIFEC) Program Lineintersection; ses math; type sa rhuturaee 8) 7 18 Point = record x, yi Floats end; TWector = TPoint: al, bl, cl, a2, b2, 62: Float; p: TPoint; function Vector (x, y: Float): Tvectors begin Result.x i= x; Result.y t= yz end; Wich chéo cia hal vecto operator >< (const u, v: TVector): Float: begin Result i= ux * vey ~ uy * vax: end; WBiéu dién tye tink function SolveSLE(conat a, b, c: TVector): Tvector; Float; begin Dis ade by Result = Vector((e >< BI/D, (a >< c)/0)7 end; ‘WCheong tink chin uGIN SetBxcept iontask [Low (TFPUEXceptorMask) .. igh (TFPUExceptiontask) }); Readin(al, bl, cly a2) b2, C2); ("Tem giao diém cir hal dung thing P i= SolveSLE (Vector (a1, a2) , Vector (bl, b2) , Vector (¢,¢2)}7 if ToWan(p.x) then //Hai ding thing tring nhaw Weitetn('TWo Lines are coincident") else if TeInfinite(p.x) ‘then /Hai ding thing song song Writeta(*TwWo lines aze parallel") adam Hol chnng thing gino dim ao nhdt Weiteta ("Intersection point (',p.x: ete BaysOEds TE aa sud manoecen 3. Tim giao diém cia hai dogn thing Bai todn tiép theo ta xét la cho bén diém A, B,C, D trén m&t phing, hy cho biét hai doan thing AB va CD cé6 giao diém duy nhét khong, néu o6 cho biét ton 46 giao diém. Hin 2.6 Dé tim giao diém cia hai doan thing AB va CD ta cé thé: © Viét phuong trinh téng quét cila hai dung thing AB va CD; © Tim giao diém M cua hai duémg thing; + Kiém tra M cé nim trén dogn thing AB va trén doan thing CD hay khéng. Phuong trinh cia dung thing di qua hai diém phan biét A= (x4;y4) va B= (xpi ys) la @ x4) * Oe ~ Ya) = Ya) # (a — ¥4)- Ta c6 thé bién di phuong trinh trén vé phwong trinh téng quét va sir dung ham SolveSLE dé tim giao diém M cia hai duing thing AB va CD, sau 46 kiém tra M c6 nim trén hai dogn thing AB va CD hay khong. Céch lam nay kéo theo nhiéu phép tinh khong higu qué, ta s€ sir dung cng thie khdc. Néu M la giao diém duy nhdét ca hai dogn thing AB va CD thi sé tin tai duy nhdt mot cép s6 thye p,q € [0; 1] 42 (nem (CM = TD. ‘Tri tuong img hai vé, ta c6 AC = pAB + q De. 19 Nhu v@y, ta chi can tim biéu din tuyén tinh cia AC qua AB va DC, sau khi c6 cap 36 p,q, ta kiém tra diéu kign p,q € [0; 1] va tinh tog d6 giao diém M theo ‘céng thite: OM = 0A + paB. ‘Thugt toa nhur sau: Tnpat_ > A, B,C, D: Teoints £ i= SolveSLE(B ~ Ay C - D, C- Aly A€ not InRange(r.x, 0, 1) of not InRange(r.y, 0, 1) then URiém tra nghiém €{0.1) Output © Khong 66 giao didm duy nhét el begin PIS A+ (B-A) * roxy Output + Glao didm duy mht (psx, pe) 4, Tim giao diém gitta m6t dogn thing va m6t tia pé tim giao diém duy gitta doan thing AB va tia CD, ta cé thé sir dung phuong phép tong ty nhu trén: Néu M li giao diém duy nat cia dogn thing, AB va tia CD thi sé tin tai duy nhat mét c&p-sé thy p,q, trong 46 p € [0; 1], @ € [0;+00) sao cho @ = pAb (CH = qCD. Ap dung thuft ton nhw tric, chi cé diéu sau khi tim duge c&p s6 p,q, ta khong kiém tra p,q € (0; 1] ma kiém tra p € (0; 1] vag > 0. Céch tint giao diém cia duéng thing AB véi dutmg thing CD, tia AB voi tia CD, duong thing AB véi dogn thing CD... c6 thé thye hign theo céch twong ty, chi cdn sta déi pham vi cia tham s6 p,q. . 5. Bo géc gitta hai vecto Bai todn: Cho hai vecto khac 0: ii va 3. CAn tim s6 do te dia ng tra 8. $6 do g6c Ginh huéng nim trong pham vi (-1;]. 20 ‘Thu vign math cung cap ham ArcTan2(y,x) tra vé goc dinh hung tao boi vecto (1; 0) véi vecto (x;y). Ta c6 cae sit dung ham nay dé tinh gid tr} géc dinh hung tir @ t0i # bing cach viét: ArcTan2(i x d, i. 8). ‘Thu tye nhu sau: Function Radleanat u,v? Bvectoy; Floats begin Result := ArcTan2(u >< v, u * viz end; 6. Tinh dign tich a) Dien tich tam giée Hink 8.7 Tuy thong tin duge cho ma ta sit‘dung cng thite giai tich thich hop 4é tinh dign tich tam gid: Néu biét 49 dai mOt canh cia tam gide 18 a va chidu cao trong img véi canh dé 1a h thi dign tich tam gide c6 thé tinh boi céng thite: ath sei ‘Néu biét 46 dai hai canh tam gidc lab va-c, ddng thoi géc xen gita hai canh dé la A thi dign tich tam gide c6 thé tinh béi céng thite: besina me . ‘Néu ta biét 46 dai ba canh cia tam gide ld a,b,c thi dign tich tam gide c6 thé tinh béi céng thie Hé-rong: =Vp@-a)(p-b)e-0), ‘ s 21 atbse trong 46 p = 2 (nita chu vi). = Néu biét hai veeto AB va AC thi dign tich tam pie c6 thé tinh bing cong ‘thie tich chéo: s- Exe 69) Céng thie nay 6 thé vidt Ipi khi ta biét toa dd ba diém A= (x43 yA). B= (xpiya) VAC = (xc: ¥c): |p — x4) ec — Ya) — (Xe ~ Xa) V's = Ya) | z Chi § ring néu bé ddu gid tri tuyét 46i, cong thtte tinh dign tich 6 trén sé cho gid ‘rj duong néu huéng quay tir vecto AB toi vecto AC la huéng thuan. Nguge lai, céng thite s& cho gid trj m néu huéng quay tir vecto AB t6i vecto AC la huéng nghich. b) Dien tich da gidc ‘Tren mit phiing voi hé toa do Da-céc vudng gée, cho da gide P = P,P, trong 46 diém P, c6 tog 46 (x;;;). BS sung thém diém Py Ppes = Pi, khi 46 din tich da giéc durge tinh theo cOng thite (8.11): eo s= [yore fet se (8.10) Pay P, va diém pycm — mis) fat 8.11) 1 ee (Chéng minh Gi sirring cfc dinh cba da ike duge dinhs6 theo huéng thuén (nggc chidu kim ag hb)*, ta bi he aide P,P, Fy VOX BBC ton 49 O, dupe n tam Bide: Cyd thmbe tui do theo che canh cin da gide theo thi P,P tile th pla tay tdi IA mid de 2 POP, PzO Pym, Pet 0Pas PrOPs- Be P 5 0 Hink 8.8 ‘Trong hinh 8.8, ta xét mot tt gie v6i bn dinh P,, Ps, Pa, Pa- Dign tich eta tir gite nay c6 thé tinh bing: S$ = ~S4(PyOP,) ~ Sa(POPs) + S4(P5OP.) + Sa(PAOPs) {ae 18 dit cs da gid c6 thé tinh qua obo dif tch ce tara gide $5(P,OPi..). Khi ‘mbt hong ti $,(P,OP..) xudt hign trong ting, no 8 durge mang du “+” néu chitu quay tr vecta OF t6i veeto OFr-, 18 hiréng thukn, nguge Je, hang tt nby s€ mang 0 tuong img véi phép dénh sé thudn va S < 0 tuong mg vi phép dan sé nghich. Durimg bién da gidc phai la mot dudng gdp khiic khép kin, kh6ng ty clit. ‘Céng thire (8.11) s® sai néu dat liu vao khéng thoa man diéu kign nay. Hinh 8.9 la mét vi dy vé m6t “da gide” gdm bén dinh (0; 0), (1; 1), (0:1) va 430). inh 89 Céng thite (8.11) sé tinh duge dign tich mién mat phing gidi han béi duong gdp Khite nay 14 0, tuy nhién trén thye té thi dign tich mién nay 14 0.5. ©) Dign tich duemg cong Trén mat phing cho C la mot duémg cong khép kin, khéng tyr cit, tron timg Khiic, o6 phuomg trinh tham s6: ff = x(t) vO v6i t € [a,b], x(a) = x(b) va y(a) = y(b). ‘Ta cé thé hinh dung khi t chay tir a t6i b thi céc didm (x(t); y(t)) vé ra trén mat phang true chun mt dung cong khép kin khéng ty ct C. Duémg cong C tron timg khiic tire 1a ta c6 thé chia khoang [a; b] thanh mét s6 dém duge cdc khoang ‘con ma trén mi Khodng con d6, cée dao ham x'(t) va y’(t) la céc ham lign tue. Khi 46, dign tich cia mién mat phing D gidi han boi dudng cong C cé thé tinh qua mt hé qua cla céng thire Green trong giai tich ham: 1 Ss z fray —ydx ke a (8.16) =3f Gor @-yor wpa. Chui §: Cong thite (8.16) cho két qua la dign tich c6 déu cia mién D (la sé am néu mién D duge dinh huéng nghjch). C6 thé thém vao céng thire déu gid tr) tuy@t déi néu chi can biét dign tich. 25 Thye ra céng thie tinh dign tich da gidc ma ta trink bay & mye true chi Ia truéng hop riéng clia céng thie (8.16). Viée chimg minh céng thite (8.16) can phai sit dung nhiéu kién thitc cia todin cao cdp, ta chi can nhé va 4p dung. Vidy: Xét dung trdn tam O ban kinh R, dudng tron nay c6 phuong trinh tham sé f Roost y= Rsint voit € [0;2n]. Ap dung céng thite (8.16), ta c6 dign tich hinh tron: an (R? cos? t + R? sin? e)dt f 2n dt = nR?. lo Ill, Mt s6 bai toan théng dung khac 1. Tam giée Xt mot tam gide xéc dinh béi toa 46 ba dink ld ba dim A(A.x; 4.y), B(B.x; By), C(Cx; Cy). Ki higu a, 6, ¢ 18 46 dai ba canh cia tam-gide ABC. ‘Tam duéng tron ngoai tiép tam gid ABC 1a giao diém cita hai duong trung tryc ‘huge hai canh cia tam giée, Dudng trung trye cba canh AB duge xéc dinh thong aque trang didm o (2224,4222) cin cqnh AD va veeto chi phon Id veeto phdp tuyén cita dudng thing AB. b) Budmg phan gide ‘Durtmg phin gide cha gée ABC duge xée dinh théng qua deng biéu dién (P, d) trong dé P chinh la diém B con vecto d xéc dinh theo céng thire sau: EAC “Wal Tee] ad 26 ©) Budng tron noi tigp tam giéc Tam cia dudng tron n6i tiép tam gidc ABC cé thé xc dinh bing cach tim giao iém cia hai duéng phan gidc. Tuy nhién, ta cé thé sir dung céng thite toan hoc 4é xc dinh tog 46 tm cia dudng tron ndi tiép chinh 1a toa d6 cia vecto: a.0A+b.0B +¢.06 —atbte trong d6 O la gic toa 46. ‘Ban kinh duéng tron ndi tiép bing 2s "Sapte ‘v6i S la dign tich tam giéc. 2. Kiém tra diém nam trong da gic Bai todn. Trén’ mat phiing voi hé toa d6 Dé-céc vudng géc, cho da gidc P = P,P, ... Py va mét diém A. Hay cho biét diém A cé nim trong da giée hay khong. Thugt ton Néu A thugc mét canh da gide thi két lun ngay A nim trong da gidc. Néu khéng, tir diém A, xéc dinh mét tia géc A khéng di qua dinh nao cia da gidc, goi tia nay Ta tia AB. C6 nhiéu cdch chon tia nay, ching han nhu chon ngdu nhién n + 1 tia 46i m6t khic nhau, khi 46 chic chin s€ c6 mét tia khéng di qua dinh nao ciia da gide. Tuy nhién trén thyc té, phuong php thyc dung té ra hiéu qua hon: sinh “ngdu nhién mét tia, néu tia d6 di qua mét dinh cia da giéc thi sinh ngdu nhién ‘mit tia khae va thi Ie... Néu tia AB cit canh da gidc mét s6 1é lan thi diém A nim trong da giéc, nguge Iai thi diém A nim ngoai da gidc. ‘Tét ca nhing ki thuat tim giao diém, xéc dinh tia d& dugc néi dén trong cfc bai rude, ta chi tng hop Iai céc ki thugt nay 48 gp trinh gidi bai toén diém nim trong da gide. Input © ° Déng thir nhét chita sé nguyén n < 10° la s6 dinh cia da gidc va hai sé thye xA, yA tuong ‘mg la hoanh 46 va tung d6 diém A; 27 © nddng tiép theo, dong thir { chita hai sé thye x, y; la toa 46 dinh P; cla da gide. Output Cho biét diém A c6 nam trong da gide P hay khong? 2 PTINPOLYGON,PAS ¥ Kim tra didm nm trong da gide (SMODE OBSFFC) program Point InPolygon; ses Math; const maxN = 1000000; epsilon = 18-67 type TPoint = record x, yt Float; end; Tvector = TPoint; pt arsay[1..maxN + 1) of TPoint; ni Integer; A, B: TPoint; Inside: Boolean; function Vector(x, y: Float): Tvectors begin Result.x i= end; UWPhip wit vecto operator -(conat u, v: TVector): Tector; begin Result.x r= u.x = vixs Result-y := wy - v.y? end; Wich cham cita hai vecte operator *(conat u, v: TVector}: Float; : Result-y i= yi begin Result i= ux * vie + uy * vey? end; MTich chéo cia hai ecto : operator ><(const u, v: TVector): Float; begin . Result i= uxt vey = wy * v.x7 end; 28 procedure Enter; var i: Integer; begin Readin(n, A.x, Avy): for i := 1 ton do with pli] do begin Readin (x, yb? end; pin +1) := pllly end; “Kim tra diém nim tren dogn thing function OnSegment (const P, Q: TPoint): Boolean; begin Result := IsZero(P >< Q, epsilon) and (P * Q <= 0) end; MF 90 tia Procedure MakeRay; repeat OK := Teves B.x for i: 1 ton do 4€ Tezero((B - A) >< pl}, epsilon) then begin OK s= Fal Break; end until OK; end; itu din tan tin function SolvestE (const a, b, var 0: Float; begin Dim a >< bs Result := Vecto((c >< b)/D, (a >< c)/D); end; MKiém tra tia cit canh da gic function Cut (const C, 0: TPoint): Boolean; var r: tector Random; B.y != Random; 1 TVecto}: Tvector 29 begin SolveSLE(B - A, C = D, C= Ali Result :™ (r.x >= 0) and InRange(r.y, 0, 1): end; function Check: Boolean; var i: Integer; begin for i := 1 ton do Af OnSegment (p{il, p(i + 1]} then Exit (True); MakeRa: Result := False: for i := 1 ton do Af Cut(p[i], pli 1]) then Result := not Result; end; Cheong trinh chin BEGIN SetExcept iontask { (Low (TFPUEXcept ionMask) .. High (TFPUExcept iontiask) 1) if Check then WriteLn("Inside the polygon") @lse WiriteLn (‘Outside the polygon"); END. 3. Tim hai diém gan nhét Cho mot tap diém Q (c6 thé tring nhau). Tim cap diém trong Q cé khodng céch ho nbhét. ‘Néu kiém ta tit c€ cée cBp diém ta s€ c6 mot thugt todn véi do phite tap O(N*). ‘Thuét todn sau day c6 46 phitc tap O(MogN) gidi quyét vin dé bing cach chia 4 tri, Voi mét bai todn kich thurée N, ta dura vé thuét todn gidi hai bai todn nhd kkich thuée %, va két hop két qua trong thoi gian OW). Q duge biéu dign béi hai mang 4x sip xép X (theo hodnh d6) va ¥ (theo tung 49). ‘Thuét todn abu sau: Bude 1. Ding m6t duvng thing dimg d, ta cé thé chia 46i Q thanh Q va Q2. Cae iém nim ding trén d cé thé phén bd tuy ¥ sao cho Q; va Qs céin bing, Buéc 2. Goi 4% quy tim khoang cach ngin nhAt d; trong Q; va d; trong Q2. Dat do = min(di,d2). Bude 3. Két qua tra vé sé 1a do, hoe mét gid tri nhd hon dy néu tdn tai mot diém trong Q; va m6t diém trong Q2 c6 khoang céch nhé hon dp. Cac diém nh 30 vay chi 06 thé nim trong khoang céch dp tix dudng thing d. Tim tép hop Qo céc diém thoa man dung thing 46, ciing véi Yo tuong img clia Qo. Buéc 4. V6i mbi diém P; trong Qo, ta xét kha nang P, la ddu mut phia trén cia cap diém gin nhau nhét, Nhu vay, diém cén lai phdi nim trong hinh ‘chit nhat dy x 2do cd canh trén di qua P,. Hinh chi nhét nay c6 tdi da én diém trong Q; va bon diém trong Q>. Do dé né c6 tdi da tim diém trong Qo. Nhu vay, ta chi cin kiém tra khoang cach ca P; dén bay diém theo sau né trong 6. Bude 5. Tra vé khoang cach ngiin nhét tim duge. Tai bude 2, ta céin Xi, X2, Yi, Yo tong img cho Qi, Qs. Céc mang nay 6 thé duge sinh ra trong thai gian O(N). Tai bude 3, Yo cling duge sinh ra trong O(N) bing céch doc tudn ty mang ¥ va Jogi ra cée diém edch xa d. Che bude 1, 2, 3, 4 dim blo chi phi xir I O(N) tai mBi lan 48 quy, ti 46 cho ta thugt toén c6 d6 phitc tap O(MogN). Khong thé due them mgt did no” vio ben ‘wong mi vin ‘dim bdo Khodng ‘fch wt tidu dy Hanh 8.10. Khoing chek tt thibu »——_s Mink hog. Do céc diém trong Q; ¢ khoang cach ti thigu do, tir P, tro xudng chi 6 t6i da bén diém thuge vé Qi. | 4. M6t sé thit tue co ban a) Kiém soat sai sé Khi tinh ton cdc cOng thite hinh hoc trén may tinh, c6 rit nhiéu phép tinh khong thé dat duge 46 chinh xéc tuyét déi nhu phép chia, phép khai cn béc 2... Ngay 3 ca nhing phép cng va nhan sé thyc trén may tinh ofing phai chju sai sé 6 chi 6 c6 nghia cuéi cing. Sai sé trong cdc phép tinh c6 thé dan t6i nhiéu phién todi, vi thé phai co phuong phap 4é kiém sodt sai s6 nay trong qué trinh trinh ton. Kinh nghiém chung la: © Néu det ligu vao 1a cae sé nguyén, ta cb ging str dung cdc phép tinh toan sb nguyén dén chimg nao cdn o6 thé duge. © Néu bit bude phai tinh tofn s6 thyc, trong mot sé trudng hop ta can phai dye kién sai s6 tinh toan. Ching han, chon mdt hing s6 € di nhé (ching han € = 10°), sau d6 thay vi so sinh p = q; ta viét lp — ql

You might also like