Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)



Podobné dokumenty
Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď

Nejzajímavější jsou události MouseDown a KeyDown.

Metodický list k didaktickému materiálu

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Objekty jako zapozdření dat. začneme vytvářet vlastní objekty a třídy

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Evropská obchodní akademie, Děčín I, Komenského náměstí 2, příspěvková organizace IČ tel

Indexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Aplikace pro vykreslování grafů elementárních funkcí

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Větvení programů příkaz IF

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Kapitola 5. Seznámíme se ze základními vlastnostmi elipsy, hyperboly a paraboly, které

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Pokročilá práce s proměnnými

Takto chápanému druhu objektů se říká TŘÍDA.

Středoškolská odborná činnost. Obor SOČ: 1. Matematika a statistika GRAFY FUNKCÍ

Rovnice přímek v rovině

Nejprve si připomeňme z geometrie pojem orientovaného úhlu a jeho velikosti.

Metodický list k didaktickému materiálu

Podmíněné vykonávání

Jazyk C# a platforma.net

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

INTERNETOVÉ ZKOUŠKY NANEČISTO - VŠE: UKÁZKOVÁ PRÁCE

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Základy algoritmizace a programování

POLE. - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

Kreslení elipsy Andrej Podzimek 22. prosince 2005

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

4.2.3 Oblouková míra. π r2. π π. Předpoklady: Obloukovou míru známe z geometrie nebo z fyziky (kruhový pohyb) rychlé zopakování.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

2. Kinematika bodu a tělesa

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Číslo hodiny. Označení materiálu. 1. Mnohočleny. 25. Zlomky. 26. Opakování učiva 7. ročníku. 27. Druhá mocnina, odmocnina, Pythagorova věta

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Jazyk C# a platforma.net

Autorizovaný software DRUM LK 3D SOFTWARE PRO VYHODNOCENÍ MĚŘENÍ ODCHYLEK HÁZIVOSTI BUBNOVÝCH ROTAČNÍCH SOUČÁSTÍ

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

1.1 Napište středovou rovnici kružnice, která má střed v počátku soustavy souřadnic a prochází bodem

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Jazyk C# - přístup k datům

Kinematika. Tabulka 1: Derivace a integrály elementárních funkcí. Funkce Derivace Integrál konst 0 konst x x n n x n 1 x n 1.

Rozklad na prvočinitele. 3. prosince 2010

R β α. Obrázek 1: Zadání - profil složený ze třech elementárních obrazců: 1 - rovnoramenný pravoúhlý trojúhelník, 2 - čtverec, 3 - kruhová díra

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

1. Téma 03 - Rozhodování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Rovnoměrný pohyb po kružnici

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

10. Analytická geometrie kuželoseček 1 bod

Komponenty v.net. Obsah přednášky

, = , = , = , = Pokud primitivní funkci pro proměnnou nevidíme, pomůžeme si v tuto chvíli jednoduchou substitucí = +2 +1, =2 1 = 1 2 1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Metodický list k didaktickému materiálu

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Tento výukový materiál byl vytvořen v rámci projektu MatemaTech Matematickou cestou k technice.

Jazyk C# (seminář 7)

Veličiny charakterizující geometrii ploch

ICT podporuje moderní způsoby výuky CZ.1.07/1.5.00/ Matematika analytická geometrie. Mgr. Pavel Liška

Cvičné příklady Hodina 2

PROGRAMOVÁNÍ PRO MS WINDOWS 1

c) nelze-li rovnici upravit na stejný základ, logaritmujeme obě strany rovnice

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Obsah 1 Technologie obrábění na CNC obráběcím stroji... 2

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

MATURITNÍ TÉMATA Z MATEMATIKY

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Algoritmizace a programování

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Obecná rovnice kvadratické funkce : y = ax 2 + bx + c Pokud není uvedeno jinak, tak definičním oborem řešených funkcí je množina reálných čísel.

Programování v C++ 3, 3. cvičení

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

4. Matematická kartografie

Maturitní otázky z předmětu MATEMATIKA

Pokyny k hodnocení MATEMATIKA

7. Gravitační pole a pohyb těles v něm

8 Třídy, objekty, metody, předávání argumentů metod

Modelové úlohy přijímacího testu z matematiky

Využití programu GeoGebra v Matematické analýze

Transkript:

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz) Autor: Radek Vystavěl Díl 8: Analytická geometrie Polární souřadnice, kružnice, elipsa, spirála MATEMATIKA Pro úlohy aplikované matematiky, které vykazují alespoň částečnou osovou symetrii, bývá mnohdy vhodnější použití polárních souřadnic r, θ (resp. v prostoru r, θ, φ) namísto souřadnic kartézských x, y (resp. x, y, z v prostoru). Jako příklad uvažujme rovnoměrný pohyb po kružnici. Při řešení v kartézských souřadnicích by bylo třeba y dopočítávat podle vztahu y 2 2 = ± R x, kde R je poloměr kružnice, a ještě se starat o znaménko podle toho, v jakém kvadrantu se nacházíme. A to nemluvím o tom, jak vyřešit rovnoměrnost pohybu rozhodně nejde o rovnoměrnou změnu x. V polárních souřadnicích je úloha nepoměrně snadnější. Souřadnice r (vzdálenost od středu) zůstává konstantní, souřadnice θ (úhel průvodiče) se plynule mění s časem t, přičemž konstantou úměrnosti je úhlová rychlost ω: r = const. θ = ω t K procvičení problematiky vytvořme tedy program, ve kterém se bude kulička rovnoměrně pohybovat po kružnici. Pozice kuličky v něm bude primárně reprezentována v polárních souřadnicích. Vzhledem k tomu, že grafické funkce vyžadují předání souřadnic kartézských, bude nutno provádět transformaci. Úloha nám tedy poslouží i k procvičení této transformace. Proč zrovna pohyb po kružnici? Myslím, že je takové pěkné, přitažlivé pro studenty, když se v programu něco hýbe

KONCEPČNÍ OTÁZKY PROGRAMU V úloze jde především o následující dvě otázky: 1. Pohyb jak vyřešit, aby se kulička pohybovala sama. 2. Transformace z polárních na kartézské souřadnice. K první otázce: Má-li program provádět něco sám, bez popudu ze strany uživatele, je třeba použít časovač, který v pravidelných intervalech tiká. Při každém tiku se zvětší úhel průvodiče a kulička se vykreslí v nové pozici. Ke druhé otázce: Pro studenta, který umí používat goniometrické funkce, není problém transformaci odvodit. x kružnice x x kuličky x y kružnice r y θ y kuličky y Z obrázku vyplývají tyto transformační vztahy: kde x kuličky = x kružnice + x, y kuličky = y kružnice + y, x = r cos θ, y = r sin θ. Samozřejmě, je třeba dbát na definici počátku a smyslu měření úhlu θ. TECHNICKÉ OTÁZKY NA PLATFORMĚ.NET/C# Použití časovače bylo vysvětlováno v sedmém dílu tohoto seriálu. Pro výpočet sinu a kosinu existují statické metody Sin a Cos třídy Math. Metody vyžadují úhel v radiánech. Uvažujeme-li raději ve stupních, je třeba před výpočtem provést převod na radiány. K tomu se může hodit hodnota π, kterou lze získat jako Math.PI. Ke kreslení kružnice, resp. kruhu slouží metody DrawEllipse, resp. FillEllipse objektu kreslicí plochy okna. Metody vyžadují předání levého horního rohu obdélníka opsaného kruhu či kružnici. Tyto hodnoty se ze souřadnic středu vypočtou odečtením poloměru. Zaokrouhlení z vypočtených desetinných hodnot na celé pixely se nejlépe provede voláním metody Convert.ToInt32.

ŘEŠENÍ Uvádím zdrojový kód Form1.cs: using System; using System.Drawing; using System.Windows.Forms; namespace Kruhový_pohyb public partial class oknoprogramu : Form // Parametry kružnice int xstředukružnice = 100; int ystředukružnice = 100; int poloměrkružnice = 80; // Parametry kuličky double úhel = 0; // Úhel průvodiče ve stupních double omega = 60; // Úhlová rychlost ve stupních za sekundu int poloměrkuličky = 5; public oknoprogramu() InitializeComponent(); private void oknoprogramu_paint(object sender, PaintEventArgs e) Graphics kp = e.graphics; // Výpočet pomocných hodnot pro kružnici int xlh = xstředukružnice - poloměrkružnice; int ylh = ystředukružnice - poloměrkružnice; int šířka = 2 * poloměrkružnice; int výška = šířka; // Kreslíme kružnici kp.drawellipse(pens.cornflowerblue, xlh, ylh, šířka, výška); // Výpočet středu kuličky (NEJDŮLEŽITĚJŠÍ!) double úhelrad = úhel * Math.PI / 180; double rozdílx = poloměrkružnice * Math.Cos(úhelRad); double rozdíly = poloměrkružnice * Math.Sin(úhelRad); double xstředukuličky = xstředukružnice + rozdílx; double ystředukuličky = ystředukružnice + rozdíly; // Výpočet pomocných hodnot pro kuličku // ("recyklujeme" jednou použité pomocné proměnné) xlh = Convert.ToInt32(xStředuKuličky - poloměrkuličky); ylh = Convert.ToInt32(yStředuKuličky - poloměrkuličky); šířka = 2 * poloměrkuličky; výška = šířka; // Kreslíme kuličku kp.fillellipse(brushes.cornflowerblue, xlh, ylh, šířka, výška); private void časovač_tick(object sender, EventArgs e) double čas = 0.001 * časovač.interval; úhel += omega * čas; Refresh();

V odkazu najdete také kompletní projekt pro Visual C#. Spustitelný.EXE soubor z podsložky bin/debug využijete i v případě, že toto vývojové prostředí na svém počítači nemáte. K běhu zmíněného.exe souboru je na cílovém počítači zapotřebí přítomnost.net Framework 3.5 (pokud není u vás nainstalován, stáhněte si jej zdarma ze stránek společnosti Microsoft). KAM DÁL V MATEMATICE Úloha se dá snadno rozšířit na pohyb po elipse nebo po spirále. V případě elipsy se poloměr r v transformačních vztazích nahradí poloosami a, b elipsy: x = a cos θ, y = b sin θ. V případě spirály je zase hodnota r funkcí času, např. přímá úměra s konstantou v r (odpovídá radiální rychlosti): kde KAM DÁL V.NET/C# x = r(t) cos θ, y = r(t) sin θ, r(t) = v r t Další informace k animacím v programech Windows Forms najdete v první kapitole knihy Moderní programování učebnice pro středně pokročilé. PROGRAMOVÁNÍ NÁZORNĚ A SROZUMITELNĚ Chcete se naučit programovat nebo se v programování zdokonalit? Akreditované počítačové kurzy společnosti moderníprogramování mohou být vaší správnou volbou. Na kurzech se učíte prakticky, lektor vám pomáhá překonat problémová místa, na cokoli se můžete zeptat. Prozkoumejte nabídku kurzů na http://www.moderniprogramovani.cz/kurzy/ Základní řada programovacích kurzů: Programování pro začátečníky Programování v.net/c# pro středně pokročilé Programování v.net/c# pro pokročilé Programujeme na nové platformě, v novém jazyce: Přecházíme na Javu Přecházíme na.net/c#

Databáze Databáze a SQL pro začátečníky (neprogramátorský kurz) Databázové aplikace na platformě.net/c# Web Tvorba webu, HTML a CSS pro začátečníky (neprogramátorský kurz) Základy webových aplikací ASP.NET Pokročilé webové aplikace ASP.NET