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

رسم منحنى باستخدام sin & cos

مغلق
بدأه Abdullah.Alshammeri في 29 يونيو 2005 · 12 رد · 5,228 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اقصد احتاج refreshment وليس refresh ما اعرف انقليزي :blink:

لسلام عليكم .. وهذا سؤال ثاني ..

اذكر اخذنا بالرياضيات رسم خط باستخدام دالة SIN او COS .. واعتقد انها كانت معادلة ...

حاولت اطبقه لكن ما اعرف

9f2e2ec2bc.jpg

اظن الصورة توضح المطلوب...

لرسم خط ب GL

glVetex3f(x,y,z);

حاولت اطبق اللي موجود بالصورة .. يعني اريد اعمل خط منحني باستخدام SIN او COS لكن ما نجحت ..

اذكر كنت شفت الفكرة في VB لكن ما ادري وين راح الملف ..

--

ما احتاجه فقط تلميحة لانعاش الذاكرة ....

او اي كود مكتوب ب

API

GL

VB

DX

----------------

واسف على السؤال البدائي

<_<

تم تعديل هذه المشاركة بواسطة الشـمري في 29 يونيو 2005 في 03:18

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

ارسم خط افقي

ارسم خط راسي

لا تحتاج دوال sin - cos لرسم المنحني

المنحني عبارة عن قطع مكافىء parabola هممم ..

دالة تربيعية و خلاص :)

معادلته

Y^2= X + - Offset مقدار الازاحة علي السين

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

يمكنك ذلك باستخدام

spline

وهي احد الخوارزم التي تستخدم لعمل منحنى لعدد من النقاط

عملت مثل قبل ساعه لاوضح لك كيف عمل هذه العمليه

حملها من المرفقات :)

توجد ثلاث ملفات في المشروع

BaseApp.cpp هذا اقل المطلوب لعمل اوبن جي ال ، وهو في الاصل جزء من الدرس الاول من دروس NeHe

فلا تشغل بالك به

اما الملفان الاخرين :

spline.h فهو يحتوي الدوال لهذ العمليه

DrawSpline.h -به مثال بسيط لكيفيه استخدام الاسبلين لرسم عدد من النقاط على الابن جل

Spline.zip

تم تعديل هذه المشاركة بواسطة da-crystal في 30 يونيو 2005 في 13:52

لا مستحيل غير الوقت

#4

قاعد ... احاول افهم ..

ارد رد مفصل في وقت لاحق ..

ومشكورين على تعاونكم ..

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#5
الشـمري كتب:
قاعد ... احاول افهم ..

??? :blink:

تفهم ماذا ؟؟ لكي نساعدك

لا مستحيل غير الوقت

#6

السلام عليكم

Sin x = x - x^3/3! + x^5/5! - x^7/7!+........................ infinity

3! = 3*2*1

5! = 5*4*3*2*1

المعروفة باسم مفكوك مكلورين للدوال

إذا ساعدك هذا فسأبحث لك عن مفكوك Cos x

اتمنى ان اكون ساعدتك

لو كانت الرجولة بالشوارب لكان الصرصار أكثرنا رجولة.

#7

اشوف الامر تعقد اكثر .. كل شوي قانون وخوارزمية :)

---

احمد : حاولت اطبق اللي تقول لكن ما ادري .كيف .

Y^2= X + - Offset

ماهو Offset

اتمنى توضح اكثر .. لاني ما افهم بالهين ..

----

da-crystal

حاولت افهم الكود المكتوب ... لكن مافيه فايدة ..

الكود منظم ..

لكن ياليت تعطيني تعليق بسيط على معنى هذه الخوارزمية .. وكيفية عملها ... لااريد شرح كامل .. فقط تصور عام ... الله لايهينك .

===========

hanymedhat2005

(هاني )

مشكور على مساعدتك .. وماشاءالله .. من اول مشاركة مساعدة ... الله يبارك فيك ..

ايضا قانون جديد

..

ورح احاول ان افهمه ..

الظاهر الليلة .. رح انام بين الخورازميات والقوانين .. : (

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#8

مفكوك تيلور و ماكلورين هي متسلسه لتقريب ناتج بعض العمليات و ايجاد تكاملات لا يصعب إيجداها مثل تكامل e^x^2 عند تكامل محدد من النقط .

لن تفيده في رسم المنحني ...

مفهوم الازاحة و رسم منحني دالة تربيعية او قطع مكافىء parabola ...

post-40521-1120424005.jpg

post-40521-1120424019.jpg

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#9

هو اصلا كيف ترسمه .. هل تستطيع اعطاء المعادلة لـ OpenGL و هو يرسمها؟ ولا لازم تسوي فد حلقة مثلا على كل النقاط و ترسم الشكل نقطة نقطة؟

//y = x^2
int y = 0;
for( int x = 0; x < 10; x++ )
{
    y = x * x;
    drawPoint(x,y);
}

او شي من هالقبيل يعني؟ << ما يفهم شي في الـ OpenGL

#10

نعم يمكن تطبيق ما قلته حسن

المنحني هو عبارة عن عدة نقطة ..

سوف يرسمها OpenGL ، انا متوقع ان ما ينقصه الشمري هو الجزء الرياضي فقط

بخصوص الجزء البرمجي تستطيع اتباع مثال المنحنيات Spline الذي وضعه الاخ - للتطبيق .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#11
الشـمري كتب:
لكن ياليت تعطيني تعليق بسيط على معنى هذه الخوارزمية .. وكيفية عملها ... لااريد شرح كامل .. فقط تصور عام ... الله لايهينك .

لقد اعدت تعديل الكود للتبسيط

حيث اضفت دلتين في للspline وهي فقط للتبسيط

void SpCurve(Vertex3 *inp,int inCount,Vertex3 *outp,int outCount,int t)
void SpCurve(Vertex3 *inp,int inCount,Vertex3 *outp,int outCount)

وهنالك تعليقات في الكود توضح كيفيه الاستخدام،

ورسم الرسوم التوضحيه بالوان مختلفه لتسهيل فهمها

انظر الى الصوره في الاسفل

اما عن الspline شرحه ليس بالسهل لان راح ندخل في موضيع توجع الراس مثل

Bézier Curve

و

CubicCurve

والاشتقاق من الدرجه الاول والثانيه

:s شي يوجع الراس

وكلها مواضيع رياضيه ونظريه ما تهم طالما التطبيق موجود :(

اذا اردت معلومات رياضيه عنه ادخل على موقع عالم الرياضيات

MathWorld:B-Spline

ولقد ارفقت المشروع بعد التعديل تجده في اسفل الرد مع المرفقات

#define N 3 // عدد النقاط الاصليه  
#define SMOOTH 50 // دقه الرسم  ، اي بمعنى اخر نعومه المنحنى

	//اولا نحدد النقاط التي نريد رسمها كمنحنى 
	//  وهي المعطى الداخل الاساسي للداله
	Vertex3 vertices[N+1] = {0.0,0.0,0.0,   1.0,1.0,1.0,   2.0,1.0,1.0,   2.0,0.0,2.0}; // نقاط المنحنى 

	// ثانيا نعرف المعطى الخارج من الداله 
	Vertex3 outp[SMOOTH]; // النقاط المطلوبه للرسم 

	//  هذه هي الداله التي تقوم بمعلجه النقاط الاصليه ووضع النتائج في النقاط الخارجه
	// للداله 4 معطيات 

	SpCurve(vertices	// الاول تحمل النقاط الاصليه 
 	 ,N 	 // الثاني عدد النقاط ناقص 1
 	 ,outp  // الثالث النقاط الخارجه
 	 ,SMOOTH  //  الرابع عدد النقاط الخارجه
 	 );

	// وهنالك صيغه اخرى للداله ولها 5 معطيات
	SpCurve(vertices	
 	 ,N 	 
 	 ,outp  
 	 ,SMOOTH
 	 ,4 	 //   درجه المنحنى 
 	 );

Spline2.zip

post-49616-1120444994.png

تم تعديل هذه المشاركة بواسطة da-crystal في 4 يوليو 2005 في 05:49

لا مستحيل غير الوقت

#12

السلام عليكم

يا أخ شمرى

هل تريد رسم دالة Sin على مجال محدد أم إلا ما لا نهاية؟؟؟

إذا كنت تريد رسمها فى مجال صغير كما هو موضع بالصورة فى المشاركة رقم 1 فأنا أرى أن مفكوك مكلورين جيد لهذه العملية ولا عيب به.

استخدمت مرة هذا المفكوك فى رسم دالة ال Sin على برامج الرسم البيانى وكان مطابقاً للدالة الأصلية. ولكن إذا زاد المجال فسوف يختلف الشكل اختلافاً كبيرا جداً

الخلاصة: من الممكن استخدام المفكوك إذا اردت ان ترسم الدال لفترة قصيرة مثلا من 180 إلى -180 درجة.

اتمنى ان اكون ساعدتك.

لو كانت الرجولة بالشوارب لكان الصرصار أكثرنا رجولة.

#13

يا اخ هاني

هو يريد ان يرسم منحنيات من الدرجة الرابعة و منحنيات ملتويه مثل الNurbs-Splines,,etc... غير sin - cos و مفكوك تيلور و ماكلورين ...

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

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

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