...final este 360, atunci este de desenat un cerc complet.ElipseProcedura elipse deseneaza un arc de elipsa si este definita astfelProcedure elipse x,yintegerUstrat, ufinalordXraza,YrazaordX si Y reprezinta coordonatele cetrului. Ustrat si Ufinal reprezinta unghiul de sfarsit al arcului de elipsa, in grade, in sens trigonometric. Valorile Xraza si Yraza definesc raza orizontala respectiv axa verticala a elipsei.GeatArcCoords Procedura GteArcCords returneaza centrul si coordonatele de inceput si de sfrarsit ale ultimului arc desenat. Procedura este definita astfelProcedure GetArcCoords var coordonareArcCoordsTypeCoordarc detip predefinit ArcCoordsTzpe va contine coordonatele centrului crcului sau elipsei si cordonatele punctului de inceput si de sfarsit al arcului . Tipulpredefinit ArcCordsTzpe esteType ArcCoordsTyperecord x,y integer IcentruSXstart, Ystartinteger Iinceputul arculuiS Xend,Yendineteger Isfarsitu arculuiSEndPieSliceProcedure PieSlince deseneza si hasureaza un sector de cerc si este definita astfelProcedure PieSlice x, yinteger Ustart, Ufinal, rordX si y Ufinal reprezinta unghiul de inceput si de sfarsit al sectorului, iar r este raza.Culoarea cercului este culoarea actuala, iar modelul de hasurare si culoare de hasurare este definita este definita de procedurile SetFillStyle sau SetFillPattern.SectorProcedura Sector deseneaza si hasureaza un sector de elipsa si este definita astfelProcedure Sector x,yinteger Ustar, Ufinal, Xraza, YrazaordX si y reprezinta coordonatele centruluiUstart, Ufinal reprezinta unghiul de inceput si de sfarsitul al sectorului de elipsa in grade, in sens trigonometric. Variabilele Xraza si Yraza definesc axa orizontala respectiv axa verticala a elipsei. Culoarea este culoarea actuala, iar modelul de hasurare este definit de procedurile SetFillStyle si SetFillPattern.FillEllipse Procedura FillEllipse deseneaza si hasureaza o elipsa si este definita astfelProcedure FillEllipse x, yintegerXrazaYrazaordx,y reprezinta coordonatele centruluiXraza si Yraza reprezinta axa orizontala respectiv verticala a elipsei.Culoarea elipsei este culoarea actuala, iar modelul si culoarea de hasurare este definita de procedurile SetFillStyl sau SetFillPattern.GetAspectRatio Procedura GetAspectRatio determina dimensiunile maximale ale ecranului grafic. Procedura se determina astfelProcedure GetAspectRatio var xasp vaspordXasp, yasp reprezinta valoarea maxima a abscisei si a ordonatei, adica rezolutia efectiva a ecranului grafic. Din aceste valori se poate calcula raportul dimensional xasp yasp. Acest raport este utilizabil la rotunjiri necesare la trasarea cercurilor, sectoarelor si arcelor de cerc.SetAspectRetioProcedura SetAspectRatio defineste raportul dimensional implicit. Procedura se defineste astfelProcedure SetAspectRatio xasp, yaspordxasp, yasp reprezinta valorile amxime pentru abscisa si ordonata. Cu aceste valori definite, un cerc torsionat poate fi rectificat pe baza raportului dimensional definti.6.2. AplicatieProgramul curbe realizeaza trasarea de cercuri, arcuri, elipse, sectoare de cerc, sectoare de elipse.Program curbeUses crt, graphVar Raza, gd, dmintegerch charXasp, yaspord Begingddetectinitgraph gd, gm,ctbptbgiif graphresultgrOk thenhalt 1 repeatoutTextXY11. 0. apasatioutTextXY10. 10. 1-cerc 2-arc 3-elipsa 4-sector de cerc 5-sector elipsa 6-hasurarea elipseiOuttextXY10. 470. 0-iesirechreadkeycase ch of1 beginfor raza1 to 5 do circle 100.100. raza10end2 beginfor raza1 to 5 doarc200.200.0.90. raza 10end3 beginelipse300.100.0.360.30.50end4beginpieslice400
.100.0.270.40end5beginsectorgetmaxx div 2. getmay div 2.0.45.50.50getaspectratioxasp, yasp Isector circularSsectorgetmaxx div 2. getmaxy div 2 180.135.50.50longintxasp div yasp Ipunc centratS end6beginfillellipse100.350.50.50getaspectrationxa
sp,yasp Ielipsa circularaSfillellipse50.50.30.30endenduntil ch0closegraphend....
Download