PDA

View Full Version : رادیان یا درجه



saed2006
سه شنبه 18 اسفند 1388, 12:35 عصر
من میخوام شیب یک خط رو بدست بیارم
این فرمول


double ta = (y2 - y1) / (x2 - x1);
a = Math.Abs(Math.Atan(ta));

رو نوشتم
سوال:
نتیجه این محاسبات بر حسب درجه خواهد بود یا بر حسب رادیان؟

behzad1986
سه شنبه 18 اسفند 1388, 12:49 عصر
سلام بر حسب راديانه ، تمام توابع مثلثاتي بر حسب راديان هستند

saed2006
سه شنبه 18 اسفند 1388, 12:51 عصر
double ta = (y2 - y1) / (x2 - x1);
شیبی که با فرمول بالا بدست میاید هم بر حسب رادیان هست؟

behzad1986
سه شنبه 18 اسفند 1388, 12:53 عصر
نه !!! !

ASKaffash
سه شنبه 18 اسفند 1388, 12:53 عصر
سلام
این مقدار تانژانت است نه زاویه باید ArcTan گرفته شود

behzad1986
سه شنبه 18 اسفند 1388, 12:59 عصر
y=mx+b اينجا m يك عدد (ضريبه)نه درجه يا راديان!

saed2006
سه شنبه 18 اسفند 1388, 13:02 عصر
یعنی این عدد رو به رادیان کنم و بعد ارک بگیرم؟

behzad1986
سه شنبه 18 اسفند 1388, 13:06 عصر
شيب اين خط همون مقداريه كه درون متغيير ta است نيازي نيست كاري ديگه باهاش بكني!

behzad1986
سه شنبه 18 اسفند 1388, 13:07 عصر
مي خواين چكار بكنين ميشه بيشتر توضيح بدين؟

saed2006
سه شنبه 18 اسفند 1388, 13:14 عصر
یک نقطه دارم باایکس و وای
میخوام زاویه بر حسب درجه این نقطه نسبت به افق رو بدست بیارم
با این شرط که ممکنه نقطه توی یکی از چهار ناحیه صفحه مختصات باشه

ASKaffash
سه شنبه 18 اسفند 1388, 13:14 عصر
یعنی این عدد رو به رادیان کنم و بعد ارک بگیرم؟
سلام
برعکس اول آرک بگیر بعد تبدیل به درجه شود

SAASTN
سه شنبه 18 اسفند 1388, 21:29 عصر
سلام
من دلفی کار می کنم و با فرض شباهت دلفی با C#‎‎‎‎ جواب می دم
در صورتی که تابع ArcTan تنها یک پارامتر بگیرد جوابی که می دهد تنها در ربع اول و چهارم خواهد بود. در صورتی که دو پارامتر بگیرد می تواند جواب درستی بدهد اما باید چک کرد.
برای اصلاح جواب در حالت اول باید بررسی کرد که آیا مقدار X نقطه ای که زاویه اش رو می خواید بزرگتر از صفر است یا کوچکتر. در صورتی منفی بود X جواب تابع arctan باید به علاوه عدد Pi شود تا جواب درست باشد

Result:=Result+Pi;
نکته مهم دیگه در این رابطه خطای تقسیم بر صفره. قبل از فراخوانی arctan باید بررسی کنیم که آیا X نقطه صفر هست یا نه. اگر صفر بود در صورت مثبت بودن Y جواب برابر pi/2 و در صورت منفی بودن آن جواب برابر 3pi/2 هست.

if X=0.0 then
begin
if Y>0.0 then
Result:=Pi/2.0
else
Result:=1.5*Pi;
end
else
Result:=ArcTan(Y/X);

موفق باشید

Salar Ashgi
سه شنبه 18 اسفند 1388, 22:16 عصر
دوست عزیز ، از کد زیر استفاده کن :



private void button1_Click(object sender, EventArgs e)
{
//if zaviye is radian
double res = Math.Tan(Convert.ToDouble(textBox1.Text));
//================
//if zaviye is daraje
double res2 = Math.Tan(Convert.ToDouble(textBox1.Text) * (Math.PI/180));
MessageBox.Show("Radian : " + res.ToString() + "\n" + "Degree : " + res2.ToString());
}


موفق باشید .