Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace AnimacjaPoSINorazCOS
- {
- public partial class SIN_COS : Form
- {
- const int Margines = 20;
- const int PromieńKulki = 10;
- Graphics Rysownica;
- Pen PióroXY, PióroSIN, PióroCOS;
- int Xmax, Ymax, Xs, Ys;
- float WspółczynnikSkaliDlaOsiY;
- int PunktyWjednostkachMiaryOsiY,
- PunktyWjednostkachMiaryOsiX;
- Timer timer1;
- int IndexPołożeniaKulek;
- Point[] PunktyNaTorzeLiniiSIN;
- Point[] PunktyNaTorzeLiniiCOS;
- public SIN_COS()
- {
- InitializeComponent();
- this.Location = new Point(10, 10);
- this.Width = (int)(Screen.PrimaryScreen.Bounds.Width * 0.7F);
- this.Height = (int)(Screen.PrimaryScreen.Bounds.Height * 0.75);
- this.StartPosition = FormStartPosition.Manual;
- Rysownica = this.CreateGraphics();
- PióroSIN = new Pen(Color.Red, 1F);
- PióroSIN.DashStyle = DashStyle.Solid;
- PióroCOS = new Pen(Color.Blue, 1F);
- PióroCOS.DashStyle = DashStyle.Solid;
- Xmax = this.Size.Width - 2 * Margines;
- Ymax = this.Size.Height - 2 * Margines;
- Xs = Xmax / 2;
- Ys = Ymax / 2;
- WspółczynnikSkaliDlaOsiY = Ymax / 8;
- PunktyWjednostkachMiaryOsiY = (int)(WspółczynnikSkaliDlaOsiY * Math.PI);
- PunktyWjednostkachMiaryOsiX = 4 * PunktyWjednostkachMiaryOsiY;
- PunktyNaTorzeLiniiSIN = new Point[PunktyWjednostkachMiaryOsiX + 1];
- PunktyNaTorzeLiniiCOS = new Point[PunktyWjednostkachMiaryOsiX + 1];
- IndexPołożeniaKulek = 0;
- int Dx = (Xmax - 2 * Margines) / PunktyWjednostkachMiaryOsiX;
- int Fi;
- float Fi_w_Radianach;
- int IndexPunktówOsiX;
- for (Fi = Xs - PunktyWjednostkachMiaryOsiX / 2 + Margines, IndexPunktówOsiX = 0;
- IndexPunktówOsiX <= PunktyWjednostkachMiaryOsiX; Fi += Dx)
- {
- Fi_w_Radianach = (float)((Fi * Math.PI) / 180);
- PunktyNaTorzeLiniiSIN[IndexPunktówOsiX] = new Point(Fi,
- Ys - (int)(WspółczynnikSkaliDlaOsiY * Math.Sin(Fi_w_Radianach)));
- PunktyNaTorzeLiniiCOS[IndexPunktówOsiX] = new Point(Fi,
- Ys - (int)(WspółczynnikSkaliDlaOsiY * Math.Cos(Fi_w_Radianach)));
- IndexPunktówOsiX++;
- }
- this.DoubleBuffered = true;
- timer1.Interval = 200;
- timer1.Enabled = true;
- }
- private void InitializeComponent()
- {
- throw new NotImplementedException();
- }
- private void SIN_COS_Paint(object sender, PaintEventArgs e)
- {
- PióroXY.StartCap = LineCap.Flat;
- PióroXY.EndCap = LineCap.ArrowAnchor;
- e.Graphics.DrawLine(PióroXY,
- Xs - PunktyWjednostkachMiaryOsiX / 2 + Margines, Ymax / 2,
- Xs + PunktyWjednostkachMiaryOsiX / 2 + Margines, Ymax / 2);
- e.Graphics.DrawLine(PióroXY, Xs + Margines, Ymax - Margines,
- Xs + Margines, Margines);
- e.Graphics.DrawCurve(PióroSIN, PunktyNaTorzeLiniiSIN);
- e.Graphics.DrawCurve(PióroCOS, PunktyNaTorzeLiniiCOS);
- e.Graphics.FillEllipse(Brushes.Yellow,
- PunktyNaTorzeLiniiSIN[IndexPołożeniaKulek].X - PromieńKulki,
- PunktyNaTorzeLiniiSIN[IndexPołożeniaKulek].Y - PromieńKulki,
- PromieńKulki + PromieńKulki, PromieńKulki + PromieńKulki);
- e.Graphics.FillEllipse(Brushes.Green,
- PunktyNaTorzeLiniiCOS[IndexPołożeniaKulek].X - PromieńKulki,
- PunktyNaTorzeLiniiCOS[IndexPołożeniaKulek].Y - PromieńKulki,
- PromieńKulki + PromieńKulki, PromieńKulki + PromieńKulki);
- }
- private void timer1_Tick(object sender, EventArgs e)
- {
- if (IndexPołożeniaKulek < PunktyWjednostkachMiaryOsiX)
- IndexPołożeniaKulek++;
- else
- IndexPołożeniaKulek = 0;
- this.Refresh();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement