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:
Private Sub Command1_Click()
Const Pi = 3.14159265359
Dim X As Double, Y As Double
amp = 200 'amplituda (tj. velikost půlvlny)
Period = 5 'počet period (opakování)
ver = Form1.ScaleHeight / 2 'svislé posunutí dolů (= počátek)
hor = 0 'vodorovné posunutí doprava (dobrovolné :)
krok = 3 'čím vyšší, tím méně bodů se vykreslí
sirka = Form1.ScaleWidth 'šířka sinusovky
For b = 0 To 10000 Step krok
X = sirka / 10000 * b + hor
Y = Sin(b / 10000 * Period * 2 * Pi) * amp + ver
'X, Y 'x-ová a y-ová souřadnice bodu
Y = ScaleHeight - Y ' *viz poznámka níže
Form1.PSet (X, Y), vbBlue 'vykreslí bod ;)
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 ;)
|