با سلام
کد زیر واضح می باشد یک مقدار اعشاری گرفته و درجه را به رادیان تبدیل می کند و مقدار آن را برمی گرداند.
int.Parse(textBox3.Text) که مقدار رشته را به عدد تبدیل میکند.
private double DegreeToRadian(double angle) {
return Math.PI * angle / int.Parse(textBox3.Text);
}
کد زیر برای رسم گرافیکی موج سینوسی هست.
private void Draw(double N) {
نقطه وسط کنترلی که قرار است رسم نمودار از آنجا شروع شود بدست می آید.
int Yoffset = panel1.Height / 2;
برای اینکه نمودار در کنترل panel1 رسم شود.(یعنی مختصات که می دهیم به کنترل panel1 می رود)
Graphics G = panel1.CreateGraphics();
برای این که بتوانیم چیزی بنویسیم یا رسم کنیم باید یک قلم تعریف کنیم که اینجا رنگ و ضخامت آن تعریف شده.
Pen P = new Pen(Color.Yellow, 1.5f);
دو تا متغیر اعشاری برای نگهداری مختصات
float x1, y1;
یه حلقه
for (double X = 0; X <= 360; X++) {
مقدار x را از نوع doube به نوع float تبدیل کرده و در متغیر x1 می ریزد
x1 = (float)X;
همون فرمول اصلی هست که باعث می شه y در موج سینوسی بالا پایین بشه
y1 = Yoffset + ((float)Math.Sin(DegreeToRadian(X * N)) * int.Parse(textBox2.Text));
میگه یک مستطیل در مختصات(x1,y1) با عرض و طول (.5f, .5f) با قلم p که قبلا تعریف کردی و درون panel1 رسم می شود.
G.DrawRectangle(P, x1, y1, .5f, .5f);
حافظه ای که به p اختصاص یافته را آزاد می کند.
} P.Dispose();
}
با تشکر