Vizatimi i drejtkëndëshave, eklipse dhe rrathëve

Të gjitha funksionet e vizatimit në bibliotekën e PyGame fillojnë me pg.pull. Në varësi të asaj forme që duam të vizatojmë, ne i quajmë funksione të ndryshme. Në shpjegimet që vijojnë, kuptimi i parametrave është:

Tani do të shohim përshkrime më të hollësishme të funksioneve për të vizatuar drejtkëndësha, eklipse dhe rrathët. Një shembull i shkurtër i një ose dy rreshtave të kodit jepet pas secilit përshkrim të funksionit. Ju mund të ekzekutoni secilën nga këto shembuj duke e kopjuar atë në programin më poshtë (i cili tani nuk vizaton asgjë). Fotografitë që pasojnë shembujt janë marrë në të njëjtën mënyrë.

Vizato një drejtkëndësh

Për të vizatuar një drejtkëndësh ne përdorim funksionin pg.draw.rect, i cili ka dy forma:

pg.draw.rect(canvas, color, rectangle, thickness)
pg.draw.rect(canvas, color, rectangle)

Ne përdorim formularin pa parametrin thickness kur duam që brendësia e drejtkëndëshit të mbushet edhe me ngjyrën e treguar.

Për shembull, e para nga dy deklarimet e mëposhtme do të thotë:

  • vizatoni një drejtkëndësh (funksioni rect)

  • pikturojeni të zezë (parametri (0, 0, 0) specifikon ngjyrën e zezë)

  • Kulmi i majës së sipërme të drejtkëndëshit ka koordinata (40, 80)

  • gjerësia e drejtkëndëshit është 50 dhe lartësia 30 piksele

  • vetëm korniza e drejtkëndëshit duhet të vizatohet dhe linjat duhet të jenë të trasha 3 pixel

Deklarimi e dytë do të thotë:

  • vizatoni një drejtkëndësh (funksioni rect)

  • pikturojeni atë të zezë (parametri pg.Color (“black” gjithashtu specifikon ngjyrën e zezë)

  • Kulmi i majës së sipërme të drejtkëndëshit ka koordinata (140, 80)

  • drejtkëndëshi do të jetë 20 piksel i gjerë dhe i lartë, kështu që në të vërtetë do të jetë një katror

  • Sheshi do të mbushet me ngjyra pasi që nuk ka asnjë parametër të trashësisë

../_images/drawing_rectangles.png

Vizatimi i një elipsi

Për të vizatuar një elips, p[rdorni funksionin``pg.draw.ellipse``, me apo pa parametrin e trashesisë:

pg.draw.ellipse(canvas, color, rectangle, thickness)
pg.draw.ellipse(canvas, color, rectangle)

Parametri retrangle përfaqëson drejtkëndëshin në të cilin është shkruar elipsi, dhe parametrat e tjerë kanë të njëjtin kuptim si më parë. Nëse kemi nevojë për të, ne mund të llogarisim qendrën dhe gjysëm boshtet kryesore dhe të vogla të elipsës duke përdorur tuple: matematikë: (x, y, w, h) ose listën \([x, y, w, h] \), dhe gjysmë-boshtet kryesore dhe të vogla të elipsit janë \(w / 2\) dhe: matematikë:` h / 2`. Kështu, për shembull, deklarimi:

vizaton një elips të verdhë të mbushur. Qendra e elipsit është qendra e drejtkëndëshit të specifikuar, e cila është në pikën (130, 180). Gjendja gjysmë-boshtore horizontale e elipsit është e gjatë 30 piksele, dhe 20 vertikale.

../_images/drawing_ellipse.png

Viato një rreth

Përdor funksionin pg.draw.circle për të vizatuar një rreth, me ose pa parameter trashësie:

pg.draw.circle(canvas, color, center, radius, thickness)
pg.draw.circle(canvas, color, center, radius)

Parametri center është një pikë që përfaqëson qendrën e rrethit, dhe parametri raduis është një numër që përfaqëson rrezen e rrethit në pixel. Për shembull, thënia e mëposhtme vizaton një rreth të kuq, 3 pixel të trashë, me rreze 50 pixel, qendra e të cilit është në pikën (100, 100):

../_images/drawing_circle.png

Nëse parametri i fundit (gjerësia e goditjes 3) do të ishte zhdukur, brendësia e rrethit do të ishte gjithashtu e kuqe.

Vizatimi i drejtkëndëshave, elipsave dhe rrathëve - pyetje

Kontrolloni sa kuptoni dhe mbani mend për këto funksione vizatimi:

    Q-42: Çfarë duhet të specifikohet kur vizatoni një rreth?

  • Koordinatat e kulm-majës së sipërme
  • Koordinatat e kulmit të sipërm të majtë specifikohen kur vizatoni një elips ose një drejtkëndësh
  • Rrezja
  • Saktë
  • Koordinatat e qendrës
  • Saktë
  • GJerësia dhe gjtësia
  • Koordinatat e kulmit të sipërm të majtë specifikohen kur vizatoni një elips ose një drejtkëndësh...
  • Ngjyra
  • Saktë

    Q-43: Për të vizatuar një rreth me qendër në pikën \((100, 100)\), rrezja e së cilës është \(30\) piksele, duke përdorur linjën :math:` 5` pixel të gjerë, cili funksion i thirrjes duhet të bëhet?

  • pg.draw.circle(canvas, color, 100, 100, 30, 5)
  • Provo përsëri
  • pg.draw.circle(canvas, color, (100, 100), 30, 5)
  • Saktë
  • pg.draw.circle(canvas, color, (100, 100, 30, 5))
  • Provo përsëri
  • pg.draw.circle(canvas, color, (100, 100), (30, 5))
  • Provo përsëri

    Q-44: Dallimi midis pg. pull.circle (canvas, color, (cx, cy), r) dhe pg. pull.circle (canvas, color, (cx, cy), r, 1) është se:

  • kjo e fundit vizaton një elips, boshtet gjysmë të mëdha dhe gjysmë të vogla të së cilës janë të barabarta r dhe 1.
  • Provo përsëri
  • kjo e fundit mbush brendësinë e rrethit me ngjyra.
  • Provo përsëri
  • i pari vizaton një disk (rrethi të mbushur), dhe i dyti një vijë rrethore.
  • Saktë
  • i pari vizaton një vijë rrethore, ndërsa i dyti një disk (rrethi i mbushur).
  • Provo përsëri

    Q-45: Cfarë nuk specifikohet kur vizatoni një drejtkëndësh?

  • Koordinatat vertikale majtas
  • Provo përsëri
  • Gjerësia e goditjes
  • Provo përsëri
  • Gjerësi
  • Provo përsëri
  • Gjatësi
  • Provo përsëri
  • Koordinatat e qendrës
  • Saktë

    Q-46: Për të vizatuar një drejtkëndësh, kulmi i majtë i të cilit është në pikën :math: (100, 100), :math: 30 pixel i gjerë dhe :math:` 50` pixel të lartë, cili funksion duhet të bëhet?

  • pg.draw.rect(canvas, color, 100, 100, 30, 50)
  • Provo përsëri
  • pg.draw.rect(canvas, color, (100, 100), (30, 50))
  • Provo përsëri
  • pg.draw.rect(canvas, color, (100, 100), 30, 50)
  • Provo përsëri
  • pg.draw.rect(canvas, color, (100, 100, 30, 50))
  • Saktë

    Q-47: Për të vizatuar një drejtkëndësh, kulmi i majtë i të cilit është në pikë \((80, 80)\), dhe kulmi i djathte poshtë \((130, 160)\), cilin thirrje funksioni duhet të bëhet:

  • pg.draw.rect(canvas, color, (80, 80, 50, 80))
  • Saktë
  • pg.draw.rect(canvas, color, (80, 80), (130, 160))
  • Provo përsëri
  • pg.draw.rect(canvas, color, (80, 80, 130, 160))
  • Provo përsëri
  • pg.draw.rect(canvas, color, (80, 80), (50, 80))
  • Provo përsëri

Vizatimi sipas udhëzimeve

Në detyrat e mëposhtme, mund të shihni se çfarë programi juaj duhet të vizatojë duke klikuar butonin “Luaj detyrën”. Për t’ju siguruar informacionin e nevojshëm për të shkruar deklarimet që ju nevojiten, jepen gjithashtu udhëzime të hollësishme me përshkrime të parametrave.

Mbani në mend se para se të vizatoni duhet të pikturoni sfondin me ngjyrën e duhur, për të cilën përdorni thënien canvas.fill (pg.Color (...)) (në vend të pikave specifikoni një ngjyrë).

Detyrë - objektiv:

Vizatoni një objektiv në një sfond të bardhë duke përdorur tre rrathë të mbushura. Qendrat e të tre rrathëve duhet të jenë në qendër të dritares dhe të gjitha rrathët duhet të jenë të mbushura me ngjyra. Së pari, vizatoni një rreth të kuq me rreze 100, pastaj një blu me rreze 75, dhe më pas një rreth jeshil me rreze 50 pixel.

Cfarë mendoni, a mund të tërhiqen këto rrathë në një renditje tjetër? Nëse nuk jeni të sigurt se çfarë do të ndodhte nëse detyra do ndryshonte, provojeni.

Detyrë - rosa:

Në një sfond të gjelbër, vizatoni një rosë si një karakter vizatimor. Vizatimi përbëhet nga pjesët e mëposhtme:

    - Koka: një elitë e verdhë e mbushur, e gdhendur në një drejtkëndësh 320 x 300 pixel, me kulm të sipërm të majtë në pikën (40, 50)     - Kufiri i kokës: një elitë e zezë që kornizon elipsën e mëparshme me një vijë gjerësi 1     - Syri i majtë: një elips i mbushur me të zezë, i gdhendur në një drejtkëndësh me pixel 40 x 40 me kulm të sipërm të majtë në pikën (130, 130)     - Syri i djathtë: një elips i mbushur me të zezë, i gdhendur në një drejtkëndësh me pixel 40 x 40, me kulm të sipërm të majtë në pikën (280, 120)     - Goja (sqepi): një elips i mbushur me të kuqe, të gdhendur në një drejtkëndësh me pixel 120 x 140, me kulm të sipërm të majtë në pikën (200, 170)     - Kufiri i gojës: një elitë e zezë që kornizon elipsën e mëparshme me një vijë gjerësi 1

Këtu kemi më shumë liri me rendin e vizatimit, por prapë na duhet të ndjekim njëfarë rendi. Mundohuni të shpjegoni se cilat pjesë të figurës duhet të vizatohen saktësisht në këtë renditje, dhe cilat nuk duhet.

Vini re se sytë janë të gdhendur në drejtkëndësha që janë në të vërtetë katrorë. Si (falë kësaj) mund t’i vizatojmë të njëjtat sy në një mënyrë tjetër?