PDA

View Full Version : رسم نمودار سینوس در سی شارپ؟



**sara**
جمعه 06 بهمن 1385, 15:13 عصر
سلام
مشکل من اینه که نمی دونم از چه متدی برای رسم نمودار سینوس استفاده کنم.
مقدارش رو که از تابع سینوس( از نوع دابل) بدست میاریم.
(برای رسم نمودار باید از زاویه صفر تا 180 درجه رو تیکه تیکه با تابع سینوس حساب کنیم.)
اگر از متد DrawLine استفاده کنم باید متغیر هام از نوع float باشن.واسه همین ارور میده.
لطفا منو راهنمایی کنید.

someCoder
جمعه 06 بهمن 1385, 16:06 عصر
اگر مشکل در تبدیل float به int هست که از Convert.ToInt32() استفاده کن

**sara**
جمعه 06 بهمن 1385, 16:28 عصر
نه توی تبدیل double به float مشکل دارم. فکر نمی کنم اصلا بشه تبدیلش کرد!
آخه می خوام از مقداری که تابع سینوس برمیگردونه استفاده کنم که اونم از نوع double هست.

someCoder
دوشنبه 09 بهمن 1385, 00:10 صبح
نه توی تبدیل double به float مشکل دارم. فکر نمی کنم اصلا بشه تبدیلش کرد!
آخه می خوام از مقداری که تابع سینوس برمیگردونه استفاده کنم که اونم از نوع double هست.

تو NET. اسم float میشه Single. پس از Convert.ToSingle استفاده کن

**sara**
دوشنبه 09 بهمن 1385, 19:48 عصر
ممنون برای راهنماییتون.

راستش من از تابع DrawArc که استفاده کردم یه جورایی نمودار سینوس رو طراحی می کنه ولی فکر می کنم کد ها اشتباهه ! می شه شما یه نگاهی به کد هام بندازین، بگین مشکل داره یا نه؟(ولی شکل سینوس رو نشون می ده !امتحان کنید! )بعدشم اگه ایده ای داشتین ممنون می شم به من هم بگین.) راستی یه panel و یه button واسه فرمتون بگذارید.
privatevoid button1_Click(object sender, System.EventArgs e)
{
Graphics Graph1=panel1.CreateGraphics();
Pen pen1=new Pen(Color.Blue,1);
Graph1.DrawLine(pen1,108,80,108,220);
Graph1.DrawLine(pen1,20,150,195,150);
int fx,x,x1,y1;
double y;
x1=15;
y1=75;
for (x=0;x<=180;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x1,y1,100,100,x,fx);
}
int x2=101;
int y2=125;
for (x=180;x<=360;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x2,y2,100,100,x,fx);
}
}
privatevoid button2_Click(object sender, System.EventArgs e)
{
Graphics Graph1=panel1.CreateGraphics();
Pen pen1=new Pen(Color.Blue,1);
Graph1.DrawLine(pen1,108,80,108,220);
Graph1.DrawLine(pen1,20,150,195,150);
int fx,x,x1,y1;
double y;
x1=58;
y1=125;
for (x=180;x<=360;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x1,y1,100,100,x,fx);
}
int x2=145;
int y2=75;
for (x=90;x<=180;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x2,y2,100,100,x,fx);
}
int x3=20;
int y3=75;
for (x=0;x<=90;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x3,y3,100,100,x,fx);
}
}

**sara**
دوشنبه 09 بهمن 1385, 19:54 عصر
اوه ببخشید کد های button2 به بعدش نیستن یعنی واسه کسینوس هستن ولی جدی نگیرین اون که خیلی مشکل داره(کسینوس رو می گم).سینوس اینه:
private void button1_Click(object sender, System.EventArgs e)
{
Graphics Graph1=panel1.CreateGraphics();
Pen pen1=new Pen(Color.Blue,1);
Graph1.DrawLine(pen1,108,80,108,220);
Graph1.DrawLine(pen1,20,150,195,150);

int fx,x,x1,y1;
double y;
x1=15;
y1=75;
for (x=0;x<=180;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x1,y1,100,100,x,fx);
}
int x2=101;
int y2=125;
for (x=180;x<=360;x++)
{
y= Math.Sin(x*3.1415926535897932384626433832795/180);
fx=Convert.ToInt32(y);
Graph1.DrawArc(pen1,x2,y2,100,100,x,fx);
}
}

someCoder
دوشنبه 09 بهمن 1385, 20:47 عصر
دوست عزیز، متاسفانه من از لینوکس استفاده میکنم و VisualStudio ندارم و نمیتونم کدهاتون رو تست کنم. به هر حال موفق باشید.

Amir Oveisi
دوشنبه 09 بهمن 1385, 21:34 عصر
چرا کدهارو تو tag نمیذارین؟ من اینجوری اصلا نفهمیدم چی نوشتین!!!

اَرژنگ
دوشنبه 09 بهمن 1385, 21:43 عصر
به جایه خط کشیدن از نقطه گذاشتن استفاده کنید.

**sara**
سه شنبه 10 بهمن 1385, 05:03 صبح
6693
جناب bermooda با عرض معذرت من تازه وارد هستم! منظورتون همون ضمیمه ست؟ این فایلشه که ضمیمه کردم می تونی ببینی.

**sara**
سه شنبه 10 بهمن 1385, 05:09 صبح
به جایه خط کشیدن از نقطه گذاشتن استفاده کنید.

می شه بیشتر توضیح بدید؟ یعنی از چه تابعی استفاده کنم؟

اَرژنگ
سه شنبه 10 بهمن 1385, 06:30 صبح
می شه بیشتر توضیح بدید؟ یعنی از چه تابعی استفاده کنم؟
http://www.c-sharpcorner.com/UploadFile/mgold/XYPlotControl09222005015109AM/XYPlotControl.aspx

**sara**
سه شنبه 10 بهمن 1385, 12:41 عصر
آرژنگ این سایته که می گی کد هاش خیلی سختن. می شه یه کم ساده تر شو بگی ؟ لازم نیست رسم نمودارش خیلی دقیق باشه. یا کلا اگه می شه یکم توضیح بده در موردش.
ممنون.