Bine ati venit la oricine este interesat în grafica Pascal. Se vorbește despre modul de utilizare a procedurilor de Arc, DrawPie, FillPie Pie și desena un arc de cerc și un sector de cerc în PascalABC, PascalABC.Net, care face parte din cercul și cercul. Subprogramul de patru în prezent doar simplu PascalABC Arc și Pie.
Anterior, am studiat procedurile de lucru cu cerc și cercul Cercul, DrawCircle, FillCircle, asa ca va recomand sa se familiarizeze cu primul material.
Procedura Arc
Aceasta rutina este în PascalABC și PascalABC.Net, și este destinat să atragă arc. Aici este definiția:
✎ Procedura Arc (x, y, r, a1, a2: integer);
- atrage un arc de cerc cu centrul în punctul (x, y) și raza r, este prins între două grinzi care formează unghiuri a1 și a2 cu axa OX (a1 și a2 - sunt reale și sunt date în grade numărate invers acelor de ceasornic).
După cum se poate observa din definiție, desen arcului trebuie să stabilească centrul cercului, raza și două colțuri. Desenul are loc în sistemul de coordonate normale - invers acelor de ceasornic. Dar trebuie să se țină seama de faptul că, în cadrul procedurii PascalABC Arc atrage unghiul de colț A2 A1. și PascalABC.Net - dintr-un unghi mai mic la un mai mare. indiferent de valorile unghiului a1 și a2. Acest lucru înseamnă că o schimbare de locuri PascalABC.Net unghiurile A1 și A2 la nimic plumb (procedură selectează dintr-un unghi mai mic și atrage mai mult), și un arc suplimentar este desenată în PascalABC simplu.
O altă remarcă unghiuri valorile sunt date în grade, mai degrabă decât în radiani. În cartea problemelor am analizat diferențele dintre grade de la radiani. Acum directăm exemplu care arată legenda de mai sus.
Cod PascalABC, PascalABC.Net
Aici am desenat 150px raza arcului format de unghiurile de 10 ° și 120 °, cu centrul în punctul (150, 250), fereastra grafică.
Procedura de DrawPie
Această rutină este prezentă în PascalABC.Net.
✎ Procedura DrawPie (x, y, r, a1, a2: integer);
- atrage un sector de cerc. un arc limitat cu centrul în punctul (x, y) și raza r, este prins între două grinzi care formează unghiuri a1 și a2 cu axa OX (a1 și a2 - sunt reale și sunt date în grade numărate invers acelor de ceasornic)
Trebuie înțeles faptul că sectorul DrawPie necompletate. și, prin urmare, utilizat în procedurile de program Pentru a utiliza Perie (SetBrushColor, de exemplu) nu are sens - ele nu vor fi aplicate.
Și unghiurile a1 și a2 se comportă la fel ca în procedura pentru Arc PascalABC.Net - desen apare la mai mic la unghiuri mai mari.
Acum, încercați să adăugați la codul de program pentru completarea procedurii de SetBrushColor (clred); - nimic nu se va întâmpla.
După cum puteți vedea, zona interioară a sectorului este într-adevăr văzut prin.
Procedura de FillPie
Se întâmplă că trebuie doar să completați culoarea sectorului, nu atrage granițele sale. În acest caz, utilizați procedura PascalABC.Net FillPie. Direct definiția și da doar un exemplu.
✎ Procedura FillPie (x, y, r, a1, a2: integer);
- Umple interiorul sectorului de cerc. un arc limitat cu centrul în punctul (x, y) și raza r, este prins între două grinzi care formează unghiuri a1 și a2 cu axa OX (a1 și a2 - sunt reale și sunt date în grade numărate invers acelor de ceasornic)
Primul sector al programului menționat corespunde cu codul de mai sus. Pentru a desena un alt sector (sau cookie-urile-cașete), trebuie să modificați stilul de umplere, iar apoi schimba culoarea la portocaliu.
Astfel, linia anterioară de cod pentru a înlocui 11 SetBrushStyle (bsHatch); SetBrushColor (clOrange); Prima procedură de a schimba stilul de bar, iar al doilea specifică culoarea.
Procedura Pie
Protserura Pie prezent în PascalABC și PascalABC.Net, și este destinat să atragă sectorului, cu posibilitatea de umplere.
✎ Procedura Pie (x, y, r, a1, a2: integer);
- atrage un sector de cerc umplut. un arc limitat cu centrul în punctul (x, y) și raza r, este prins între două grinzi care formează unghiuri a1 și a2 cu axa OX (a1 și a2 - sunt reale și sunt date în grade numărate invers acelor de ceasornic)
Cod PascalABC, PascalABC.Net
Pentru a obține a doua imagine, trebuie să schimbați stilul de umplere a „continuă“ (implicit), în „bar“. Pentru aceasta pasta SetPenColor (clOrange) în PascalABC.Net în loc de 11 rânduri; - culoarea frontierei, și 13 linie de cod pentru a înlocui SetBrushStyle (bsHatch); SetBrushColor (clOrange); - stil si culoare de umplere.
Pentru a obține o imagine-plachete într-un PascalABC simplu, bsHatch stilul necesar de PascalABC.Net înlocui, de exemplu, de la bsCross PascalABC. În plus, culoarea constanta clOrange de asemenea, nu PascalABC, astfel încât să o înlocuiască cu un RGB echivalent (255, 165, 0) - funcție care returnează 255 roșu, 165 componente de culoare verde si albastru 0. Asta obținem:
div> .uk-panel „>„date-uk-grid-marja>