Tak, konečně si jednou nejdu pro radu a posnažím se být taky trochu užiteřný:). Takže jsem ti tady připravil co možná nejjednodušší prográmek řešící tvůj problém. Před jeho spuštěním nezapomeň nastavit Form1.ScaleMode na pixely, jinak ti z toho vyleze dva centimetry velká chudinka :). Já jsem si na formulář umístil tlačítko, které vykresluje sinusovku. Je to užitečné, protože pak můžeš změnit velikost okna, znovu nechat vykreslit funkci a tak je krásně vidět, jak se sinusovka chová v závislosti na velikosti formuláře (okna). Takže tady je kód: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Private Sub Command1_Click()
Const Pi = 3.14159265359
Dim X As Double , Y As Double
amp = 200
Period = 5
ver = Form1.ScaleHeight / 2
hor = 0
krok = 3
sirka = Form1.ScaleWidth
For b = 0 To 10000 Step krok
X = sirka / 10000 * b + hor
Y = Sin(b / 10000 * Period * 2 * Pi) * amp + ver
Y = ScaleHeight - Y
Form1.PSet (X, Y), vbBlue
Next b
End Sub
|
* Y = ScaleHeight - Y slouží k otočení sinusovky podle osy X. My na papír totiž kreslíme kladné hodnoty směrem nahoru, VB má ale počátek nahoře, a proto vykresluje opačně (tj. sinusovka začíná klesáním, ve skutečnosti ale nejdříve stoupá). Tento řádek je tedy nepovinný, rozdíl si můžeš vyzkoušet sám. Vynechal jsem deklaraci proměnných, pro jednoduchost. X a Y se deklarovat taky nemusí, program pochopí, že to budou desetinná čísla. Zapsal jsem to tam, aby sis to uvědomil hlavně taky ty;), ostatní proměnné by v tomto případě mohly být deklarovány jako Integer. Jinak program počítá v radiánech, ale myslim, že to je úplně jedno; proč převádět zbytečně na stupně, když my s těma hodnotama stejně počítat nemusíme :) Snad jsem pomohl, v případě nejasností se klidně zeptej. Mimochodem, funkci sinus můžeš vyměnit i za jinou. Akorát u Tangens (Tan) pozor, tahle funkce frčí od nekonečna do nekonečna (narozdíl od našeho formuláře, že:), takže tam by se musely honoty hlídat. Tak hodně štěstí u matury ;)
|