الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في رسم تابع رياضي

مغلق
بدأه المهندس الشاب في 29 مارس 2007 · 6 رد · 2,412 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته:

لدي مشكلة في رسم تابع رياضي باستخدام #C و التابع هو exp(x) =y فكيف يمكنني أن أرسم هذا التابع

على المجال [5,-5 ] مع رسم المحاور الاحداثية

أرجو ممن يعرف كود الرسم أن يساعدني وأكون شاكرا له كثيرا

ملاحظة :يوجد صورة للتابع الذي أريد أن أرسمه في المرفقات

post-82343-1175180967_thumb.jpg

#2

السلام عليكم ورحمة الله وبركاته

قمت بعمل برنامج لرسم الدوال الرياضيه

لك كود الرسم والبرنامج ايضاً

		private double function(Single x)
		{
			//Math.Pow(x,2) + x
			// -3 + (Math.Sqrt(Math.Abs(4 - Math.Pow(x + 1, 2))));
			//Math.Sin(x) / x;
			//x * Math.Cos(x)
			//Math.Pow(x,3) * (1 / Math.Sinh(x))
			//Math.Tan(Math.Sinh(x));
			// Math.Pow(Math.E, Math.Cos(x))
			//(x * Math.Tan(x)) / Math.Pow(x, 2) + 3
			//Math.Sin(2 * x);Math.Cos(x / 2);Math.Pow(Math.E, x);Math.Pow(0.5, x / 2);
			// 2 * Math.Tan(x + (Math.PI / 2));3 * (Math.Pow(Math.Cos(x), 2));
			//Math.Pow(Math.E, -x) * Math.Sin(x);
			//1 / Math.Cosh(Math.Tan(Math.PI * x));
			double f = Math.Tan(Math.PI * (1 / Math.Cosh(x)));
			return  f;
		}

		private void btnDraw_Click(object sender, EventArgs e)
		{
			g = pctrBx1.CreateGraphics();
			g.Clear(SystemColors.Control);
			g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
			xCenter = pctrBx1.Width / 2;
			yCenter = pctrBx1.Height / 2;
			DrawXYAxs();
			int size = 0;
			for (Single x = -13; x <= 13; x += 0.1f)
			{
				if (x == 0) { continue; }
				Single stp = x * 20;
				Single y = 40 * (Single)(function(x));
				if (y != Single.PositiveInfinity)
				{
						//if( x <= 0)
						//{
							Array.Resize(ref nCurvePoint, size + 1);
							nCurvePoint[size] = new PointF(xCenter + stp, yCenter - y);
						//}
						//if (x >= 0)
						//{
						//	if ((x - size) != 1) { size = 0; }
						//	Array.Resize(ref CurvePoint, size + 1);
						//	CurvePoint[size] = new PointF(xCenter + stp, yCenter - y);
						//}
					size++;
				}
			}
			g.DrawCurve(new Pen(Color.Blue, 2), nCurvePoint);
			//g.DrawCurve(new Pen(Color.Blue, 2), CurvePoint);
		}

		void DrawXYAxs()
		{
			g.DrawLine(new Pen(Color.Black, 1), xCenter, 0, xCenter, pctrBx1.Height);
			g.DrawLine(new Pen(Color.Black, 1), 0, yCenter, pctrBx1.Width, yCenter);
		}

Imager.rar

#3

اخ حمد

هل هذا البرنامج يرسم الدوال عموما

وهل تدخل عبارة الدالة بعد التنفيذ

وشكرا

#4
bachirk كتب:
اخ حمد

هل هذا البرنامج يرسم الدوال عموما

وهل تدخل عبارة الدالة بعد التنفيذ

وشكرا

هذا البرنامج لم يكتمل بعد كي يكون فعالاً لغير المبرمجين

فمازال يحتاج تعديل وتغيير الدالة عن طريق الكود ولكنة يرسمها بجدارة (h)

إن كنت مبرمج C# فبإمكانك التعديل عليه

او إن كنت تريد ان اعدل عليه أنا فلا مانع

آمر بس

هل تريد ادخال الدالة اثناء التنفيذ فقط ؟

وماهي الرموز التي تحتاجها

#5

شكرا لك على المساعدة لكن أود أنا أن أرسم التابع الاسي مع محاور الاحداثيات و ترقيمها كما في الصورة

أريد أن أعرف كيف يتم كتابة التابع الاسي عن طريق الكود

أرجو أن توضح لي البرنامج (brows,Xor) لماذا نقوم بفتح صورة مع انني أريد رسم تابع رياضي

شكرا لك مرة ثانية

أرجو أن تعذرني على أسئلتي الكثيرة فأنا مازلت مبتدأ في هذا المجال

#6

االسلام عليكم

اهلين بالستاذ المهندس الشاب

بالنسبة للزرين براوز إكسور مالها دخل بالبرنامج وأعذرني عليهم

  void DrawXYAxs()
		{
			g.DrawLine(new Pen(Color.Black, 1), xCenter, 0, xCenter, pctrBx1.Height);
			g.DrawLine(new Pen(Color.Black, 1), 0, yCenter, pctrBx1.Width, yCenter);
		}

هذا الكود يقوم برسم محور السينات والصادات ( الإكسات و الوايات )

  private void btnDraw_Click(object sender, EventArgs e)
		{
			g = pctrBx1.CreateGraphics();
			g.Clear(SystemColors.Control);
			g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
			xCenter = pctrBx1.Width / 2;
			yCenter = pctrBx1.Height / 2;
			DrawXYAxs();
			int size = 0;
			for (Single x = -13; x <= 13; x += 0.1f)
			{
				if (x == 0) { continue; }
				Single stp = x * 20;
				Single y = 40 * (Single)(function(x));
				if (y != Single.PositiveInfinity)
				{
							Array.Resize(ref nCurvePoint, size + 1);
							nCurvePoint[size] = new PointF(xCenter + stp, yCenter - y);
					size++;
				}
			}
			g.DrawCurve(new Pen(Color.Blue, 2), nCurvePoint);
		 }

عملية تكرار لقيم X من -13 الى 13

بإمكانك التعديل عليها

بعدين نعرف ال Y تساوي function(x)

والفنكشن دالة في كود مستقل تقدر تغير فيها وتعدل وترجع منها قيمة Y

private double function(Single x)
		{
			double f = Math.Pow(x,2))));
			return  f;
		}

االدالة هنا اكس تربيع

بعد هذا نضيف الاكس و الواي للمصفوفه

في النهاية نرسمها

اي استفسار انا جاهز

اطيب تحيه لكم

#7

شكرا لك على المساعدة مرة أخرى ولكن لدي سؤال بسيط:

أنا أرسم التابع الاسي عن طريق حلقة for قيم x من -5,5 فهل يمكنني رسمه عن طريق الحلقة أم هناك طريقة أسهل وأسرع

تحياتي لكم يا أعضاء منتدى الفريق العربي

هذا الموضوع مغلق.

مواضيع مشابهة