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

سؤالان فى الرسم

مغلق
بدأه islambase@yahoo.com في 14 فبراير 2008 · 7 رد · 1,017 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخوانى الأعزاء

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

لى سؤالان فى الرسم وأتمنى أن أجدالاجابة عند أحدكم

السؤال الأول

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

فكيف نرسم خط بدلالة نقطة واحدة ومعها طوله وميله

أو معها طوله والزاوية بينه وبين خط آخر مرسوم فعلآ

فمثلآ لو أردت رسم خط مستقيم بين النقطتين (5,9),(8,3)

لكتبت أحد الكودين

Line (5,9)-(8,3)

Line1.X1 = 5: Line1.Y1 = 9

Line1.X2 = 8: Line1.Y2 = 3

فماذا لو أردت رسم خط مستقيم من النقطة (8,3) طوله 7سم وميله=0.4 ؟

أو ماذا لو أردت رسم خط مستقيم من النقطة (8,3) طوله 7سم ويصنع مع المستقيم المرسوم سابقآ زاوية

قياسها 30 درجة ؟

السؤال الثانى

أنا أعلم كيفية تظليل دائرة

فكيف لى أن أظلل مضلعآ مغلقآ مكون من خمسة خطوط مثلآ

Line1,Line2,Line3,Line4,Line5

فمثلآ لو أردت تظليل دائرة بخطوط متقاطعة مثلآ

لكتبت الكود الآتى بعد كود رسم الدائرة

Form1.FillStyle = 6

فماذا لو رسمت مضلعآ مغلقآ مكون من خمسة خطوط مثلآ

وأردت تظليله ؟

ولكم ألف شكر

بســم الله الـرحمــن الرحيــم

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

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#2

الأخ الفاضل ...

Lines.zip

أرجوا ان يفيدك هذا المثال فى ما تريد إنجازه، بإستخدام MS-VB 6.0

حيث يعتمد على علاقات حساب المثلثات المعروفة، لحساب احداثيات النقطة بدلالة زاوية الميل:

  • س = ل × جتا هـ
    mimetex.cgi?X%20=%20L%20x%20Cos(a)
  • ص = ل × جا هـ
    mimetex.cgi?Y%20=%20L%20x%20Sin(a)

Private PI As Double


Private Sub Form_Load()

    PI = Atn(1) * 4

End Sub


Private Sub EchoValues()

    Dim LineLen As Long


    LineLen = lineFloat.Y1 - scrLength.Value


    lineFloat.X2 = lineFloat.X1 + LineLen * Cos(scrAngle.Value * PI / 180)

    lineFloat.Y2 = lineFloat.Y1 - LineLen * Sin(scrAngle.Value * PI / 180)


End Sub

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#3
اقتباس
فماذا لو أردت رسم خط مستقيم من النقطة (8,3) طوله 7سم وميله=0.4 ؟

رياضيات,

mimetex.cgi?x_1=x_0+R_x

mimetex.cgi?y_1=y_0+R_y

mimetex.cgi?R_x=7 \cdot \cos{(\tan^{-1}(

mimetex.cgi?R_y=0.4 \cdot x

الوظيفة التالية تقوم بإعطائك atan بشكل دقيق تبعاً للربع الموجودة فيه, مشكلتك فيها هي أنها تحتاج إلى قيمة x, y بحيث يتم اعتبار المبدأ (x_0,y_0)=(0,0) (بتصوري) وعلى أساس احداثيات النقطة x,y يتم تحديد الربع كي يتم تصحيح الزاوية لكن لا تملك احداثيات اذا يجب ان تعتمد على قيمة الميل لتحدد الربع وتصحح الزاوية على اساسه (وظيفة atan الموجودة في مكتبة الفيجوال محددة في المجال [Pi,-Pi])

اقتباس
ماذا لو أردت رسم خط مستقيم من النقطة (8,3) طوله 7سم ويصنع مع المستقيم المرسوم سابقآ زاوية

قياسها 30 درجة

تحتاج الى الزاوية الاصلية للمستقيم المرسوم لتضيف اليها الزاوية الجديدة للمستقيم الثاني.

اعتبر مبدأ الاحداثيات لديك النقطة ذات الـ X الاصغر كي يبقى الميل لديك بين Pi و Pi-

وفقاً لقيمة Y يمكنك تحديد الربع الذي تقع فيه النقطة الثانية, ان كانت y_2 اكبر من y_1 (بفرض 1 و 2 تمثلان النقطتين) فاذا انت في الربع الاول (طبعا بفرض X موجبة دوماً)

تقوم الان بحساب الميل بين النقطتين.

تعود من الميل لحساب الزاوية والتي يجب ان تنتبه انها من احدى النقطتين الى النقطة الثانية.

يجب ان تكون هذه الزاوية الان انطلاقا من النقطة (8,3) فاما ان تكون هي نفسها في حال كانت هذه هي النقطة ذات السينات الاقل او ان تكون الاخرى فتقوم باكمال الزاوية.

ثم تحتاج الى اضافة الزاوية الجديدة قبل الرسم.

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

اقتباس
فكيف لى أن أظلل مضلعآ مغلقآ مكون من خمسة خطوط مثلا

اعتمد نقطة اولى p1 اساساً, تحتاج الى نقطة علام تسير على جميع الاضلاع بمسافات صغيرة تكون هي النقطة الثانية والتي سيتم رسم مستقيمن من النقطة p1 باتجاهها, وهكذا حتى تنطبق الاحداثيات للنقطتين (طبعا الضلعين التي تنتمي النقطة لهما يمكنك تخطيهما).

ثم تنتقل الى النقطة الثانية من المضلع p2 وتقوم بنفس الامر وهكذا.. بهذا تقوم بملئ كامل الفراغ في المضلع.

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

/index.php?showforum=170

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

عذرا على الاطالة والتعقيد, السلام عليكم

تم تعديل هذه المشاركة بواسطة Junkie في 15 فبراير 2008 في 17:36

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

أخوانى الأعزاء

أولآ:لكم ألف شكرجميعآ

وأريد أن أوضح نقطتين

بالنسبة للسؤال الأول

ألا يوجد أمر فى لغة البيزيك أستطيع به رسم خط مستقيم من النقطة (8,3) طوله 7سم ويصنع

مع مستقيم مرسوم سابقآ زاوية قياسها 30 درجة ؟

أو بمعنى آخر

ألا يوجد أمر فى لغة البيزيك أستطيع به رسم أى زاوية معلوم قياسها ؟

أراكم تفهمونى مشكورين الرياضيات والهندسة التحليلية ولكنى أريد أن أفهم أوامر الرسم بلغة البيزيك

بالنسبة للسؤال الثانى

أنا ليس لدي Object كالدائرة أو المستطيل أو أى مضلع منتظم

ولكن لدى عدة خطوط متصلة ببعضها كل خط منهم له طول غير الآخر كونت شكل ملخبط

ولكم ألف شكر

بســم الله الـرحمــن الرحيــم

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

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#5

1. لا يوجد

2. ردي على السؤال الثاني يكفي (ان شاء الله) لاي شكل منتظم او غير منتظم

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

الأخ الفاضل/ENG.USAMA

جزاك الله كل خير ياأخى

لما حملت برنامجك المرفق وجدت فيه ما أريد

ويا ليتنى أجد عندك إجابة السؤال الثانى لأنى بصراحة لم أستطع أن أفهم رد الأستاذJUNKIE

مع مراعاة أنى ليس لدي Object كالدائرة أو المستطيل أو أى مضلع منتظم

ولكن لدى عدة خطوط متصلة ببعضها سأرسمها واحدآ تلو الآخر

بنفس طريقة رسمك للمستقيمlineFloat

كل خط منهم له طول غير الآخر فكونت هذه الخطوط شكل ملخبط

وأريد تظليل هذا الشكل

ولك ألف شكر

بســم الله الـرحمــن الرحيــم

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

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#7

الأخ الفاضل ...

Polygon.zip

أرجوا ان يفيدك هذا البرنامج فيما تريد إنجازه، بإستخدام MS-VB 6.0

post-98027-1203113056_thumb.jpg

وهو بعتمد على استخدام أحدى دوال API المستخدمة فى الرسم GDI، وهى الدالة Polygon، وتستخدم لرسم أى شكل وليس الخماسى فقط، فيمكنك رسم اشكال سداسية ونجوم، او حتى اشكال عشوائية، وتحديد النقط عن طريق احداثيات Y - X ومهمة الدالة توصيل هذه النقط ببعضها واقفال الشكل.

Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Private Type POINTAPI
	x As Long
	y As Long
End Type

Private Sub Form_Resize()
	Dim Pentagon(5) As POINTAPI

	Pentagon(1).x = 50: Pentagon(1).y = 50
	Pentagon(2).x = 50: Pentagon(2).y = 150
	Pentagon(3).x = 150: Pentagon(3).y = 250
	Pentagon(4).x = 250: Pentagon(4).y = 150
	Pentagon(5).x = 250: Pentagon(5).y = 50

	Me.FillStyle = vbFSSolid
	Me.FillColor = vbRed
	Me.ForeColor = vbYellow
	Me.DrawWidth = 2

	Call Polygon(Me.hdc, Pentagon(1), 5)
End Sub

شكراً

تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 16 فبراير 2008 في 01:04

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#8

الأخ الفاضل/ENG.USAMA

جزاك الله كل خير

ولك ألف مليوووووووووون شكر

بســم الله الـرحمــن الرحيــم

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

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

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

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