Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Grafické objekty a metody

Podobné prezentace


Prezentace na téma: "Grafické objekty a metody"— Transkript prezentace:

1 Grafické objekty a metody
Úvod

2 Základní objekty V paletě objektů najdete dvojici objektů ke kreslení:
Shape (tvar) Line (čára) Dále je k disposici pár objektů k vložení obrázku: PictureBox Image

3 Shape Objekt Shape má základní tvary:
0 – čtyřúhelník 1 – čtverec 2 – ovál 3 – kruh 4 – čtyřúhelník se zaoblenými rohy 5 - čtverec se zaoblenými rohy Dále lze volit barvy a tvar výplně a obrysové čáry

4 Line Objekt Line nakreslí čáru s určenou barvou, tloušťkou a tvarem
Může být plná, přerušovaná a podobně Jako s ostatními objekty se s ní může pohybovat – měnit její délku, tloušťku a umístnění

5 Základní metody Pro kreslení na formulář nebo obrázkový box (PictureBox) můžeme použít i určité metody: Circle – nakreslí kruh, resp. elipsu Line – umožní nakreslit čáru, resp. čtyřúhelník

6 Metoda Circle Základní syntax (x,y) – souřadnice středu
Radius – poloměr kružnice Color – barva kružnice Start, end – počátek a konec oblouku (vyjádřen v radiánech) Aspect – poměr poloos elipsy (aspect 1.0 odpovídá přesné kružnici) object.Circle Step (x, y), radius, color, start, end, aspect

7 Metoda Line Základní syntax:
Step – nepovinné – určuje, že souřadnice jsou relativní k poslední posici uložené v CurrentX a CurrentY (x2, y2) – určí souřadnice konce čáry Color – barva čáry B – určí, že bude vykreslen čtyřúhelník F – jestliže je použit parametr B, pak užití parametru F způsobí vyplnění obrazce object.Line Step (x1, y1) - Step (x2, y2), color, BF

8 Jednoduchý příklad Na příkladu si předvedeme možnosti prvku Shape
Na formulář umístníme Shape, tlačítko a časovač

9 Vlastnosti prvku Shape
Prvek Shape1 má určité vlastnosti, které budeme měnit: Shape – tvar (rozsah 0 – 5) FillStyle – druh výplně (rozsah 0 – 7) BackColor – barva pozadí prvku FillColor – barva výplně

10 Měnění vlastností Měnění vlastností provádíme např. kombinací cyklu a náhodné volby Sub Zmena() a = a + 1 b = b + 1 If a > 5 Then a = 0 If b > 7 Then b = 0 Shape1.Shape = a Shape1.FillStyle = b Shape1.BackColor = QBColor(Int(Rnd * 15)) Shape1.FillColor = QBColor(Int(Rnd * 15)) Shape1.Refresh End Sub

11 Počáteční nastavení Definujeme potřebné veřejné proměnné
Při natažení formuláře je nastavíme Dim a As Integer, b As Integer Private Sub Form_Load() Randomize a = 6 * Rnd - 1 b = 8 * Rnd - 1 Zmena End Sub

12 A jak to běhá? Stisknutím tlačítka spustíme časovač
Ten každou minutu zavolá proceduru Změna Zbytek už si domyslíte

13 Ukázka použití Úkolem je vytvořit analogové hodiny, které ukazují hodiny, minuty a vteřiny Ručičky mají skokový chod po jednotkách času odpovídající úrovně

14 Základní formulář Základní formulář obsahuje pouze několik základních prvků: Časovač Timer1 Čáry Line1 (vteřiny), Line2 (minuty), Line3 (hodiny) Tlačítko Command1

15 Globální proměnné Nejprve deklarujeme proměnné
Dim AX, AY, Rad As Integer 'souřadnice středu, poloměr Dim h, m, s As Integer 'hodiny,minuty,sekundy Dim hRad, mRad, sRad As Integer 'délky ručiček

16 Nastavení počátečního stavu
Sub Form_Load() AX = ScaleWidth / 'nastavení souřadnic AY = ScaleHeight / 'středu hodin Rad = (ScaleWidth / 2) * 'poloměr kruhu hRad = (ScaleWidth / 2) * 'délka mRad = (ScaleWidth / 2) * 'jednotlivých sRad = (ScaleWidth / 2) * 'ručiček h = 'počáteční čas m = 0 s = 0 Line1.X1 = AX 'ručičky začínají ve středu Line1.Y1 = AY Line2.X1 = AX Line2.Y1 = AY Line3.X1 = AX Line3.Y1 = AY End Sub

17 Časovač 1 Vše řídí procedura časovače, která je volána podle úvodního nastavení vždy po 1/10 vteřiny (interval=100) Nejprve se opakovaně překreslí kruh, který uzavírá celé hodiny Pak se počítá poloha jednotlivých ručiček Circle (AX, AY), Rad, RGB(255, 0, 0)

18 Časovač 2 Propočet polohy hodinové ručičky:
Po přepočtu na stupně vypočítáme souřadnice konce ručičky – aplikace definice trigonometrických funkcí sin a cos If h <> Hour(Time) Then 'změnila se hodina? h = Hour(Time) 'načteme nový údaj h1 = h * 'přepočteme na úhel ve stupních Line3.X2 = AX + hRad * Sin(h1 * / 180) Line3.Y2 = AY - hRad * Cos(h1 * / 180) End If

19 Časovač 3 Obdobně pro minuty A pro vteřiny
If m <> Minute(Time) Then 'změnila se minuta? m = Minute(Time) m1 = m * 6 Line2.X2 = AX + mRad * Sin(m1 * / 180) Line2.Y2 = AY - mRad * Cos(m1 * / 180) End If If s <> Second(Time) Then 'změnila se vteřina? s = Second(Time) s1 = s * 6 Line1.X2 = AX + sRad * Sin(s1 * / 180) Line1.Y2 = AY - sRad * Cos(s1 * / 180) End If

20 Nakonec K tlačítku Konec doplníme … ale to už doufám víte sami


Stáhnout ppt "Grafické objekty a metody"

Podobné prezentace


Reklamy Google