1 00:00:00,660 --> 00:00:02,176 Jsme zpátky u Winstona. 2 00:00:02,417 --> 00:00:06,776 Jeho polohu určujeme pomocí proměnných x a y. 3 00:00:07,436 --> 00:00:11,592 Můžeme ho tedy posouvat do stran, nahoru i dolů! 4 00:00:12,342 --> 00:00:13,145 Pěkné. 5 00:00:13,755 --> 00:00:18,571 Pojďme teď vrátit hodnoty proměnných na 200 a 200. 6 00:00:19,138 --> 00:00:21,791 Ukážeme si, jak tento program vlastně funguje. 7 00:00:22,893 --> 00:00:26,113 Na začátku máme proměnnou eyeSize. 8 00:00:26,113 --> 00:00:28,370 Ta se používá k ovládání velikosti očí. 9 00:00:28,370 --> 00:00:31,842 Ty mají 40 pixelů na šířku i na výšku. 10 00:00:32,470 --> 00:00:35,437 Pak tady máme proměnné x a y. 11 00:00:35,437 --> 00:00:39,127 Ty určují střed Winstonovy tváře. 12 00:00:39,663 --> 00:00:40,801 Jak můžete vidět, 13 00:00:40,801 --> 00:00:44,423 používáme je ve vlastnostech elipsy, která vykresluje velký žlutý kruh. 14 00:00:45,682 --> 00:00:50,727 Pro vykreslení očí opět používáme proměnné x a y. 15 00:00:50,729 --> 00:00:55,849 Tady vidíme, že oči jsou umístěny v návaznosti na střed tváře. 16 00:00:55,946 --> 00:01:01,016 Toto je umístěno 50 pixelů nalevo od středu. 17 00:01:01,528 --> 00:01:04,938 A toto je umístěno 100 pixelů napravo od středu. 18 00:01:07,849 --> 00:01:11,069 Díky tomu můžeme pohybovat Winstona nahoru a dolů. 19 00:01:11,982 --> 00:01:15,402 Nyní bych chtěla ovládat více vlastností Winstonovy tváře. 20 00:01:15,402 --> 00:01:16,762 A to pomocí proměnných. 21 00:01:17,112 --> 00:01:21,149 Čili chci zjistit, pro co další v programu můžu proměnnou použít. 22 00:01:21,149 --> 00:01:22,134 Abych to zjistila, 23 00:01:22,134 --> 00:01:27,388 projedu každý řádek kódu a zkusím najít tzv. napevno zakódována čísla. 24 00:01:27,388 --> 00:01:34,283 To jsou čísla, která nejsou vyjádřená pomocí proměnné. 25 00:01:34,632 --> 00:01:37,210 Začneme tady u první elipsy. 26 00:01:37,972 --> 00:01:41,332 Pro šířku a výšku tu máme hodnoty 300 a 300. 27 00:01:41,584 --> 00:01:43,544 Jsou to čísla. 28 00:01:43,794 --> 00:01:45,968 Pojďme z nich udělat proměnnou. 29 00:01:46,224 --> 00:01:48,351 Nazveme ji faceSize, tedy velikost obličeje. 30 00:01:48,351 --> 00:01:51,321 Dáme jí hodnotu 300. 31 00:01:51,321 --> 00:01:57,073 Nyní napíšeme faceSize a faceSize. 32 00:01:57,073 --> 00:01:58,153 Barvy přeskočíme. 33 00:01:58,496 --> 00:02:02,656 Všechny vlastnosti této elipsy jsou nyní proměnné nebo závislé na proměnných. 34 00:02:02,656 --> 00:02:04,526 Zatím je tak ponechám. 35 00:02:04,999 --> 00:02:09,715 První dvě vlastnosti pusy jsou závislé na proměnných x a y. 36 00:02:09,715 --> 00:02:12,209 Ale tyto hodnoty jsou zase čísla. 37 00:02:12,899 --> 00:02:14,259 150 a 150. 38 00:02:14,889 --> 00:02:19,726 Zavedeme si tedy proměnnou mouthSize, tedy velikost úst. 39 00:02:19,726 --> 00:02:22,464 A bude se rovnat 150. 40 00:02:22,545 --> 00:02:27,556 Obě čísla nahradíme mouthSize. 41 00:02:27,556 --> 00:02:33,156 Teď máme velikosti tvarů uloženy v proměnných hned na začátku. 42 00:02:33,156 --> 00:02:35,936 To znamená, že můžeme velice jednoduše upravovat velikost. 43 00:02:36,103 --> 00:02:36,933 Takhle. 44 00:02:36,933 --> 00:02:41,557 Winston má hlad! 45 00:02:41,557 --> 00:02:47,382 Winston má hlad, proto sní hodně koblih a teď je hrozně velký! 46 00:02:47,382 --> 00:02:51,467 Na tomto programu se mi ale něco nelíbí. 47 00:02:53,193 --> 00:02:59,303 Když hodnotu faceSize opravdu hodně zmenším, 48 00:02:59,404 --> 00:03:01,064 začne to vypadat vtipně. 49 00:03:01,076 --> 00:03:04,616 Protože oči a ústa vystupují z tváře. 50 00:03:05,307 --> 00:03:09,177 A v určitém bodě už ani nevypadají jako součást tváře. 51 00:03:09,177 --> 00:03:10,997 Už se ani nejedná o tvář. 52 00:03:11,799 --> 00:03:21,426 Chtěla bych, aby při změně faceSize došlo i ke změně úst a očí. 53 00:03:21,584 --> 00:03:24,144 V případě, že faceSize zmenším o polovinu, 54 00:03:24,634 --> 00:03:27,929 chci mít ústa taky o polovinu menší. 55 00:03:27,929 --> 00:03:29,519 To znamená, 56 00:03:29,519 --> 00:03:35,869 že chci vypočítat mouthSize a eyeSize jako zlomky faceSize. 57 00:03:36,690 --> 00:03:39,820 Vrátíme původní hodnoty proměnných. 58 00:03:39,820 --> 00:03:41,810 Hned vám ukážu, co mám na mysli. 59 00:03:41,971 --> 00:03:43,711 Začneme s mouthSize. 60 00:03:44,372 --> 00:03:47,202 Momentálně je hodnota faceSize 300. 61 00:03:47,497 --> 00:03:49,967 A hodnota mouthSize je 150. 62 00:03:50,757 --> 00:03:53,558 Budeme-li uvažovat o nich ve vztahu k sobě, 63 00:03:53,558 --> 00:03:56,998 uvidíme, že faceSize je dvakrát větší než mouthSize. 64 00:03:57,577 --> 00:04:01,410 Nebo že mouthSize je o polovinu menší než faceSize. 65 00:04:02,272 --> 00:04:04,362 Náš kód můžeme přepsat takhle: 66 00:04:04,362 --> 00:04:08,292 1/2 krát faceSize. 67 00:04:08,943 --> 00:04:10,713 Čili tento řádek kódu říká, 68 00:04:10,713 --> 00:04:14,983 že vezmeme hodnotu faceSize, vynásobíme ji 1/2 a uložíme jako mouthSize. 69 00:04:15,674 --> 00:04:22,348 Pokud tedy změníme faceSize, mouthSize se automaticky vypočítá jako její půlka. 70 00:04:22,348 --> 00:04:24,349 Skvělé, přesně to chceme! 71 00:04:24,349 --> 00:04:26,448 Teď eyeSize. 72 00:04:27,398 --> 00:04:30,919 Takže faceSize je 300 a eyeSize je 40. 73 00:04:32,399 --> 00:04:36,639 Potřebujeme, aby eyeSize bylo 40/300 hodnoty z faceSize. 74 00:04:36,639 --> 00:04:43,639 A to je to samé jako 4/30, což zjednodušíme na 2/15. 75 00:04:44,650 --> 00:04:49,269 Takže napíšu 2/15 krát faceSize. 76 00:04:50,242 --> 00:04:54,412 Pokud jste mimochodem ještě se zlomky nepracovali a jsou pro vás těžké, 77 00:04:54,412 --> 00:04:57,352 můžete si je procvičit zde na Khan Academy. 78 00:04:57,352 --> 00:05:00,432 A vrátíte se, až se budete cítit připraveni. 79 00:05:00,702 --> 00:05:02,122 Najdete je zde. 80 00:05:03,652 --> 00:05:06,562 Zkusme znovu změnit velikost tváře. 81 00:05:07,775 --> 00:05:11,604 Podívejte se na to, ústa a oči mění velikost úměrně k tváři. 82 00:05:11,865 --> 00:05:15,185 Asi jste si ale všimli, že něco není v pořádku. 83 00:05:15,382 --> 00:05:18,891 Oči a ústa pořád vystupují z tváře. 84 00:05:19,162 --> 00:05:22,882 A to přestože jsou jejich velikosti už přijatelnější. 85 00:05:23,396 --> 00:05:24,714 Je to kvůli tomu, 86 00:05:24,714 --> 00:05:28,184 že v naší elipse máme pořád napevno zakódována čísla. 87 00:05:28,838 --> 00:05:32,398 Jsou to čísla, která by měla být zlomkem proměnných. 88 00:05:33,439 --> 00:05:34,599 Pojďme to prozkoumat. 89 00:05:35,149 --> 00:05:40,689 Poloha x elipsy vykreslující oko je definována jako x minus 50. 90 00:05:41,133 --> 00:05:43,883 To znamená, že je vždy x minus 50. 91 00:05:43,883 --> 00:05:47,243 A to i v případě, že uděláme faceSize menší než 50 pixelů. 92 00:05:47,441 --> 00:05:48,581 To nedává smysl, 93 00:05:48,581 --> 00:05:53,011 protože naše levé oko pak už ani nebude na tváři. 94 00:05:53,011 --> 00:05:54,344 Správně by to tedy mělo být: 95 00:05:54,344 --> 00:05:57,128 x minus určitý zlomek velikosti naší tváře. 96 00:05:57,418 --> 00:06:00,148 Zlomek zjistíme opět stejným způsobem. 97 00:06:00,148 --> 00:06:04,428 Porovnáme hodnotu 50 ve vztahu k původní hodnotě 300. 98 00:06:04,428 --> 00:06:08,758 Čili 50/300, 5/30, 1/6. 99 00:06:08,822 --> 00:06:11,482 Takže napíšeme: 1/6 krát faceSize. 100 00:06:12,440 --> 00:06:14,110 Zde máme taky 50. 101 00:06:14,400 --> 00:06:16,060 Uděláme tedy to samé. 102 00:06:16,060 --> 00:06:17,360 Bude to ten samý výraz. 103 00:06:17,660 --> 00:06:20,151 Zde máme 100/300. 104 00:06:20,151 --> 00:06:22,661 To bude: 1/3 krát faceSize. 105 00:06:23,220 --> 00:06:24,991 Tady je 60. 106 00:06:25,027 --> 00:06:28,597 To bude: 1/5 krát faceSize. 107 00:06:29,447 --> 00:06:31,977 A tady máme dalších 50. 108 00:06:31,977 --> 00:06:34,057 To je opět jedna šestina. 109 00:06:34,647 --> 00:06:37,797 A 40, to už máme tady nahoře. 110 00:06:37,877 --> 00:06:44,937 2/15 krát faceSize. 111 00:06:45,327 --> 00:06:48,487 Pojďme to zkusit znovu. 112 00:06:48,577 --> 00:06:49,817 Podívejte na to! 113 00:06:49,858 --> 00:06:51,457 To je hezké. 114 00:06:51,657 --> 00:06:54,587 Pojďme si to celé zopakovat. 115 00:06:54,587 --> 00:06:57,719 Vytvořili jsme tuto proměnnou, která obsahuje velikost obličeje. 116 00:06:57,719 --> 00:06:59,810 Ta obsahuje pouze číslo. 117 00:06:59,810 --> 00:07:03,350 Poté zde máme proměnné mouthSize a eyeSize. 118 00:07:03,350 --> 00:07:06,632 Definujeme je jako zlomky proměnné faceSize. 119 00:07:06,790 --> 00:07:12,120 Tím zajistíme, že se jejich hodnoty mění úměrně k této hodnotě. 120 00:07:13,194 --> 00:07:17,574 Následně jsou všechny poměry vypočteny ve vztahu k faceSize. 121 00:07:17,574 --> 00:07:21,524 Tím zajišťujeme, že se poloha uvnitř tváře mění úměrně ke změně faceSize. 122 00:07:21,538 --> 00:07:25,264 Tak a nyní, když už umíme vytvářet proměnné, 123 00:07:25,264 --> 00:07:27,816 které jsou závislé na hodnotách jiných proměnných, 124 00:07:27,816 --> 00:07:30,218 můžeme toho s našimi programy dělat mnohem víc. 125 00:07:30,305 --> 00:07:33,990 Pojďme to oslavit a udělat Winstona opravdu velkého!