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

كيف أرسم دائرة

بدأه نايس.net في 17 أبريل 2009 · 12 رد · 1,564 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

زي ماهي في برنامج الرسام يعني بالماوس

وعند تحريك الماوس أثناء رسم الدائرة يظهر لي حدود افتراضية تماما مثل برنامج الرسام

إلى أن يتم عمل mouse up

ويتم رسم الدائرة في الفورم

؟؟؟؟؟؟ :wub:

#2

مرحباً,

رجاءً قم بإنشاء مشروع جديد أو قم بلصق الـ( Code ) التالي في ( Code ) تابع لـ( Control أو Form ).

 

    [color= #000000; font-weight: bold;]Private MySTPoint [color= #b1b100;]As Point

    [color= #000000; font-weight: bold;]Private Ellipses [color= #b1b100;]As [color= #000000; font-weight: bold;]New [color= #990000;]List[color= #009900;](Of Rectangle[color= #009900;])

 

    [color= #000000; font-weight: bold;]Private Sub Obj_MouseDown[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MouseEventArgs[color= #009900;]) Handles Me[color= #339933;].MouseDown

        MySTPoint [color= #339933;]= E[color= #339933;].Location

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_MouseMove[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MouseEventArgs[color= #009900;]) Handles Me[color= #339933;].MouseMove

        [color= #b1b100;]If E[color= #339933;].Button [color= #339933;]= Windows[color= #339933;].Forms[color= #339933;].MouseButtons[color= #339933;].Left Then

            Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromHwnd[color= #009900;](Handle[color= #009900;])

                G[color= #339933;].SmoothingMode [color= #339933;]= Drawing2D[color= #339933;].SmoothingMode[color= #339933;].AntiAlias

                DrawEllipses[color= #009900;]([color= #009900;])

                Dim RSize [color= #b1b100;]As [color= #000000; font-weight: bold;]New Size[color= #009900;](E[color= #339933;].X [color= #339933;]- MySTPoint[color= #339933;].X[color= #339933;], E[color= #339933;].Y [color= #339933;]- MySTPoint[color= #339933;].Y[color= #009900;])

                G[color= #339933;].DrawEllipse[color= #009900;](Pens[color= #339933;].Black[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;](MySTPoint[color= #339933;], RSize[color= #009900;])[color= #009900;])

            [color= #990000;]End Using

        [color= #990000;]End [color= #b1b100;]If

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_MouseUp[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MouseEventArgs[color= #009900;]) Handles Me[color= #339933;].MouseUp

        [color= #b1b100;]If E[color= #339933;].Button [color= #339933;]= Windows[color= #339933;].Forms[color= #339933;].MouseButtons[color= #339933;].Left Then

            Dim RSize [color= #b1b100;]As [color= #000000; font-weight: bold;]New Size[color= #009900;](E[color= #339933;].X [color= #339933;]- MySTPoint[color= #339933;].X[color= #339933;], E[color= #339933;].Y [color= #339933;]- MySTPoint[color= #339933;].Y[color= #009900;])

            Ellipses[color= #339933;].Add[color= #009900;]([color= #000000; font-weight: bold;]New Rectangle[color= #009900;](MySTPoint[color= #339933;], RSize[color= #009900;])[color= #009900;])

        [color= #990000;]End [color= #b1b100;]If

        DrawEllipses[color= #009900;]([color= #009900;])

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_Paint[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].PaintEventArgs[color= #009900;]) Handles Me[color= #339933;].Paint

        DrawEllipses[color= #009900;]([color= #009900;])

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_Resize[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles Me[color= #339933;].Resize

        DrawEllipses[color= #009900;]([color= #009900;])

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub DrawEllipses[color= #009900;]([color= #009900;])

        Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromHwnd[color= #009900;](Handle[color= #009900;])

            G[color= #339933;].SmoothingMode [color= #339933;]= Drawing2D[color= #339933;].SmoothingMode[color= #339933;].AntiAlias

            G[color= #339933;].Clear[color= #009900;](BackColor[color= #009900;])

            [color= #b1b100;]For [color= #990000;]Each Elp [color= #b1b100;]As Rectangle In Ellipses

                G[color= #339933;].FillEllipse[color= #009900;](Brushes[color= #339933;].Coral[color= #339933;], Elp[color= #009900;])

            [color= #990000;]Next

        [color= #990000;]End Using

    [color= #990000;]End Sub

بالتوفيق

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 19 أبريل 2009 في 15:55

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#3

الله يعطيك ألف عافية

باجرب الكود وبرد عليك

#4

شكرا لك أخي

بس أنا حاطة في الفورم امكانية تغيير اللون

فكل مرة بغير لون دائرة قبل ما أرسمها

تتغير لي كل الألوان إلي رسمتها من قبل

ونفس الشي مع

dashstyle & brush & width

وبالنسبة للتعبئة

كيف رح يعرف إني أبغى أعبي هذه الدائرة مو دائرة غير

ولو صار أشكال فوق بعض كيف رح يفرق في التعبئة

لأني حاطة كل هالأشياء في الفورم يعني الألوان مو شي ثابت في الكود

شاكرة لك مساعدتك لك

تم تعديل هذه المشاركة بواسطة نايس.net في 20 أبريل 2009 في 02:35

#5

مرحباً,

هل لك برفع مشروعك لأقوم بتعديل عليه, كي يناسب احتياجتك ؟

إذا كنت غير قادر على رفع المشروع, فيمكنني إخبارك أنه عليك تصريح Structure جديد يحوي على سبيل المثال متغيران ( الأول مستطيل, والثاني لون ) :

 

[color= #000000; font-weight: bold;]Private Structure Ellipse

[color= #000000; font-weight: bold;]Public Bounds [color= #b1b100;]As Rectangle

[color= #000000; font-weight: bold;]Public Co [color= #b1b100;]As Color

[color= #990000;]End Structure

ومن ثم استخدام شيء من هذا القبيل :

الـ( Code ) التالي يحتاج تواجد Button يدعى ( Button1 ) في الـ( Form ) أو الـ( Control ) الحاوي لهذا الـ( Code ) :

 

 [color= #000000; font-weight: bold;]Private Structure Ellipse

        [color= #000000; font-weight: bold;]Public Bounds [color= #b1b100;]As Rectangle

        [color= #000000; font-weight: bold;]Public Co [color= #b1b100;]As Color

    [color= #990000;]End Structure

 

    [color= #000000; font-weight: bold;]Private MySTPoint [color= #b1b100;]As Point

    [color= #000000; font-weight: bold;]Private CurrentColor [color= #b1b100;]As Color [color= #339933;]= Color[color= #339933;].Coral

    [color= #000000; font-weight: bold;]Private Ellipses [color= #b1b100;]As [color= #000000; font-weight: bold;]New [color= #990000;]List[color= #009900;](Of Ellipse[color= #009900;])

 

    [color= #000000; font-weight: bold;]Private Sub Obj_MouseDown[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MouseEventArgs[color= #009900;]) Handles Me[color= #339933;].MouseDown

        MySTPoint [color= #339933;]= E[color= #339933;].Location

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_MouseMove[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MouseEventArgs[color= #009900;]) Handles Me[color= #339933;].MouseMove

        [color= #b1b100;]If E[color= #339933;].Button [color= #339933;]= Windows[color= #339933;].Forms[color= #339933;].MouseButtons[color= #339933;].Left Then

            Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromHwnd[color= #009900;](Handle[color= #009900;])

                G[color= #339933;].SmoothingMode [color= #339933;]= Drawing2D[color= #339933;].SmoothingMode[color= #339933;].AntiAlias

                DrawEllipses[color= #009900;]([color= #009900;])

                Dim RSize [color= #b1b100;]As [color= #000000; font-weight: bold;]New Size[color= #009900;](E[color= #339933;].X [color= #339933;]- MySTPoint[color= #339933;].X[color= #339933;], E[color= #339933;].Y [color= #339933;]- MySTPoint[color= #339933;].Y[color= #009900;])

                G[color= #339933;].DrawEllipse[color= #009900;](Pens[color= #339933;].Black[color= #339933;], [color= #000000; font-weight: bold;]New Rectangle[color= #009900;](MySTPoint[color= #339933;], RSize[color= #009900;])[color= #009900;])

            [color= #990000;]End Using

        [color= #990000;]End [color= #b1b100;]If

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_MouseUp[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].MouseEventArgs[color= #009900;]) Handles Me[color= #339933;].MouseUp

        [color= #b1b100;]If E[color= #339933;].Button [color= #339933;]= Windows[color= #339933;].Forms[color= #339933;].MouseButtons[color= #339933;].Left Then

            Dim RSize [color= #b1b100;]As [color= #000000; font-weight: bold;]New Size[color= #009900;](E[color= #339933;].X [color= #339933;]- MySTPoint[color= #339933;].X[color= #339933;], E[color= #339933;].Y [color= #339933;]- MySTPoint[color= #339933;].Y[color= #009900;])

            Dim AnEllipse [color= #b1b100;]As [color= #000000; font-weight: bold;]New Ellipse

            AnEllipse[color= #339933;].Bounds [color= #339933;]= [color= #000000; font-weight: bold;]New Rectangle[color= #009900;](MySTPoint[color= #339933;], RSize[color= #009900;])

            AnEllipse[color= #339933;].Co [color= #339933;]= CurrentColor

            Ellipses[color= #339933;].Add[color= #009900;](AnEllipse[color= #009900;])

        [color= #990000;]End [color= #b1b100;]If

        DrawEllipses[color= #009900;]([color= #009900;])

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_Paint[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].Windows[color= #339933;].Forms[color= #339933;].PaintEventArgs[color= #009900;]) Handles Me[color= #339933;].Paint

        DrawEllipses[color= #009900;]([color= #009900;])

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Obj_Resize[color= #009900;](ByVal Sender [color= #b1b100;]As Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles Me[color= #339933;].Resize

        DrawEllipses[color= #009900;]([color= #009900;])

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub DrawEllipses[color= #009900;]([color= #009900;])

        Using G [color= #b1b100;]As Graphics [color= #339933;]= Graphics[color= #339933;].FromHwnd[color= #009900;](Handle[color= #009900;])

            G[color= #339933;].SmoothingMode [color= #339933;]= Drawing2D[color= #339933;].SmoothingMode[color= #339933;].AntiAlias

            G[color= #339933;].Clear[color= #009900;](BackColor[color= #009900;])

            Dim MySBrush [color= #b1b100;]As [color= #000000; font-weight: bold;]New SolidBrush[color= #009900;](CurrentColor[color= #009900;])

            [color= #b1b100;]For [color= #990000;]Each Elp [color= #b1b100;]As Ellipse In Ellipses

                MySBrush[color= #339933;].Color [color= #339933;]= Elp[color= #339933;].Co

                G[color= #339933;].FillEllipse[color= #009900;](MySBrush[color= #339933;], Elp[color= #339933;].Bounds[color= #009900;])

            [color= #990000;]Next

            MySBrush[color= #339933;].Dispose[color= #009900;]([color= #009900;])

        [color= #990000;]End Using

    [color= #990000;]End Sub

 

    [color= #000000; font-weight: bold;]Private Sub Button1_Click[color= #009900;](ByVal Sender [color= #b1b100;]As [color= #990000;]System[color= #339933;].Object[color= #339933;], [color= #990000;]_

    ByVal E [color= #b1b100;]As [color= #990000;]System[color= #339933;].EventArgs[color= #009900;]) Handles Button1[color= #339933;].Click

        Dim CD [color= #b1b100;]As [color= #000000; font-weight: bold;]New ColorDialog

        With CD

            CD[color= #339933;].Color [color= #339933;]= CurrentColor

            [color= #b1b100;]If CD[color= #339933;].ShowDialog [color= #339933;]= [color= #cc66cc;]1 Then CurrentColor [color= #339933;]= CD[color= #339933;].Color

        [color= #990000;]End With

    [color= #990000;]End Sub

بالتوفيق

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 20 أبريل 2009 في 15:36

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#6

رسلت عالخاص

وصلك وإلا؟؟؟؟

#7

عذراً أخي الكريم, عليك إيجاد خوارزمية منطقية تساعدك في إعداد كل من طريقة الرسم وطريقة الإعداد

جرب المثال من المرفقات, أمل أن يفيدك, ثم أسأل ماتشاء

بالتوفيق

Paint.rar

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 22 أبريل 2009 في 21:29

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#8

انا متبددئة لسه فىالبرمجه وعاوزة اعرف هوا ينفع نعمل معالادت وندخلها قيم وهيا نقوم برسم شىء معين عن طريق الفيجوال دوت نت وهل فعلا دى يندرج تحت جزء اسمه gdi

#9
همس الورود كتب:
انا متبددئة لسه فىالبرمجه وعاوزة اعرف هوا ينفع نعمل معالادت وندخلها قيم وهيا نقوم برسم شىء معين عن طريق الفيجوال دوت نت وهل فعلا دى يندرج تحت جزء اسمه gdi

تقدري تستخمي طريقة بترسم الدائرة على طول مجرد الضغط على bottun

مثلا

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

وهدا كمان مثال يوضح طبعا رح تغيري القيم زي ما تبي

Imports System.Drawing

Public Class Form1

Dim graph_fun As System.Drawing.Graphics

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

graph_fun = Me.CreateGraphics

Dim pcolor As New System.Drawing.Pen(System.Drawing.Color.red)

graph_fun.DrawEllipse(pcolor, 40, 50, 80, 30)

End Sub

End Class

تم تعديل هذه المشاركة بواسطة نايس.net في 25 أبريل 2009 في 22:55

#10

جزاك الله خيرا على رد حضرتك

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

#11
همس الورود كتب:
جزاك الله خيرا على رد حضرتك

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

طبعا ممكن

بعد ما هادي المعادلات تطلع لك الأبعاد

ضعيهم في متغيرات

وبعدين خلي الرسم يكون باستخدام هادي المتغيرات

وضحت وإلا ؟؟؟؟؟

#12

الف شكر هيا طبعا وضحت نظرى هجرب الكود وان شاء الله تطبق جزااااااااااااااااااك الله خيرا

#13
همس الورود كتب:
الف شكر هيا طبعا وضحت نظرى هجرب الكود وان شاء الله تطبق جزااااااااااااااااااك الله خيرا

أنا في الخدمة وان شالله أقدر أفيدك بشي

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