نمایش نتایج 1 تا 11 از 11

نام تاپیک: رسم یک دایره با استفاده از ماوس

  1. #1

    رسم یک دایره با استفاده از ماوس

    چطور میشه با کلیک کردن و حرکت دادن ماوس روی فرم تو همون ناحیه یه دایره رسم کرد ؟؟

  2. #2
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    38
    پست
    387

    نقل قول: رسم یک دایره با استفاده از ماوس

    برای رسم دایره به دو پارامتر نیاز دارید . اول مرکز و دوم شعاع . اولی رو که مطمئنا بلدی . در مورد دومی هم روش مناسب اینه که فرمولهای معادله خط استفاده کنی و فاصله مرکز دایره تا نقطه دوم رو حساب کنی که میشه شعاع دایره . اگر حوصله ریراصی و اینارو نداری میتونی فاصله رو به پیکسل حساب کنی . که با یک جمع و تفریق ساده بدست میاد .

  3. #3

    نقل قول: رسم یک دایره با استفاده از ماوس

    اینطوری چیزی متوجه نشدم ... میشه یه نمونه کد بدین ؟؟؟

    فکر کنم دایره یه خورده فرمول داشته باشه ... اگه با مستطیل هم مثال بزنین ممنون می شم .

    در ضمن من می خوام از نیم اسپیس system . Drawing استفاده کنم .

  4. #4

    نقل قول: رسم یک دایره با استفاده از ماوس

    سلام
    یه نمونه برای رسم البته با موس نیست ولی امیدوارم مفید واقع بشه.
    فایل های ضمیمه فایل های ضمیمه

  5. #5

    نقل قول: رسم یک دایره با استفاده از ماوس

    نقل قول نوشته شده توسط morteza_261 مشاهده تاپیک
    سلام
    یه نمونه برای رسم البته با موس نیست ولی امیدوارم مفید واقع بشه.

    ممنون دوست عزیز ..

    تو رسمش مشکل نیست .. می خوام با موس اینکارو کنم .

    می خوام paint بسازم ... شما ها سورس نرم افزار paint البته به VB.net یا C#‎ ندارین ؟؟

  6. #6
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    تهران
    پست
    424

    نقل قول: رسم یک دایره با استفاده از ماوس

    این کد پایه هست و یه دایره ترسیم می کنه. نقطه 100و100 گوشه بالا-چپ تصویر را مشخص می کنه.
        Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
    Dim obj As Graphics = Me.CreateGraphics()
    obj.Clear(Me.BackColor)
    obj.DrawArc(Pens.Black, 100, 100, e.X, e.Y, 0, 360)
    End Sub

  7. #7

    نقل قول: رسم یک دایره با استفاده از ماوس

    نقل قول نوشته شده توسط naeeme مشاهده تاپیک
    این کد پایه هست و یه دایره ترسیم می کنه. نقطه 100و100 گوشه بالا-چپ تصویر را مشخص می کنه.
        Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
    Dim obj As Graphics = Me.CreateGraphics()
    obj.Clear(Me.BackColor)
    obj.DrawArc(Pens.Black, 100, 100, e.X, e.Y, 0, 360)
    End Sub

    ممنون دوست من .

    حالا باید با یه حورده تغییر کاری کنم که از نقطه ای که موس کلیک میشه تا جایی که رها میشه یه دایره رسم کنه .

    بازم ممنون ، هرجا مشکل داشتم مزاهمتون میشم .

  8. #8
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: رسم یک دایره با استفاده از ماوس

    سلام دوست من
    با استفاده از اين كلاس كه براتون نوشتم به راحتي ميتونيد به وسيله موس دايره رسم كنيد :
    Public Class DrawEllibseWithMouse
    Private _ctrl As Control
    Sub New(ByVal ctrl As Control)
    _ctrl = ctrl
    End Sub
    Private X1, Y1 As Integer
    Private _CanDraw As Boolean = False
    Private Sub MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
    If e.Button = Windows.Forms.MouseButtons.Left Then
    X1 = _ctrl.PointToClient(Cursor.Position).X
    Y1 = _ctrl.PointToClient(Cursor.Position).Y
    End If
    End Sub
    Private Sub MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
    Dim X2, Y2 As Integer
    If e.Button = Windows.Forms.MouseButtons.Left Then
    X2 = (_ctrl.PointToClient(Cursor.Position).X) - X1
    Y2 = (_ctrl.PointToClient(Cursor.Position).Y) - Y1
    _ctrl.CreateGraphics.Clear(_ctrl.BackColor)
    _ctrl.CreateGraphics.DrawEllipse(Pens.Black, X1, Y1, X2, Y2)
    End If
    End Sub
    Public Property CanDraw() As Boolean
    Get
    Return _CanDraw
    End Get
    Set(ByVal value As Boolean)
    If value Then
    AddHandler _ctrl.MouseDown, AddressOf MouseDown
    AddHandler _ctrl.MouseMove, AddressOf MouseMove
    Else
    RemoveHandler _ctrl.MouseDown, AddressOf MouseDown
    RemoveHandler _ctrl.MouseMove, AddressOf MouseMove
    End If
    _CanDraw = value
    End Set
    End Property
    End Class

    براي استفاده ازش هم كافيه يه نمونه از كلاس بگيريد و فرمتون رو بهش معرفي كنيد و خاصيت CanDraw رو True كنيد :
            Dim DrwEllibse As New DrawEllibseWithMouse(Me)
    DrwEllibse.CanDraw = True

    يا علي

  9. #9

    نقل قول: رسم یک دایره با استفاده از ماوس

    سلام دوستان ..

    یه مشکلی اینجا هست ...

    من میخوام وقتی یه شکل رسم شد روی فرم ، وقتی که می خوام شکل بعدیو رسم کنم . اون قبلیه حذف نشه .

    اگرم از کد زیر استفاده نکنم رد پای شکل هایی که تو رویداد mouse move ساخته میشن رو فرم میمونه .

    میشه راهنماییم کنین ؟؟

    obj.Clear(me.backcolor)

  10. #10
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: رسم یک دایره با استفاده از ماوس

    سلام دوست من
    من میخوام وقتی یه شکل رسم شد روی فرم ، وقتی که می خوام شکل بعدیو رسم کنم . اون قبلیه حذف نشه .
    اين همون كلاسه كه اصلاحش كردم ، الان هر چندتا كه دايره بخواي باهاش ميتوني رسم كني!!
    Public Class DrawEllibseWithMouse
    Private Structure ORD
    Public X1, X2, Y1, Y2 As Integer
    End Structure
    Private _ctrl As Control
    Sub New(ByVal ctrl As Control)
    _ctrl = ctrl
    End Sub
    Private lstOrd As New List(Of ORD)
    Private X1, X2, Y1, Y2 As Integer
    Private _CanDraw As Boolean = False
    Private Sub MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
    If e.Button = Windows.Forms.MouseButtons.Left Then
    X1 = _ctrl.PointToClient(Cursor.Position).X
    Y1 = _ctrl.PointToClient(Cursor.Position).Y
    End If
    End Sub
    Private Sub MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
    If e.Button = Windows.Forms.MouseButtons.Left Then
    X2 = (_ctrl.PointToClient(Cursor.Position).X) - X1
    Y2 = (_ctrl.PointToClient(Cursor.Position).Y) - Y1
    _ctrl.Refresh()
    For Each O As ORD In lstOrd
    _ctrl.CreateGraphics.DrawEllipse(Pens.Black, O.X1, O.Y1, O.X2, O.Y2)
    Next
    _ctrl.CreateGraphics.DrawEllipse(Pens.Black, X1, Y1, X2, Y2)
    End If
    End Sub
    Private Sub MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
    If e.Button = MouseButtons.Left Then
    Dim Temp As ORD
    Temp.X1 = X1
    Temp.X2 = X2
    Temp.Y1 = Y1
    Temp.Y2 = Y2
    lstOrd.Add(Temp)
    End If
    End Sub
    Public Property CanDraw() As Boolean
    Get
    Return _CanDraw
    End Get
    Set(ByVal value As Boolean)
    If value Then
    AddHandler _ctrl.MouseDown, AddressOf MouseDown
    AddHandler _ctrl.MouseMove, AddressOf MouseMove
    AddHandler _ctrl.MouseUp, AddressOf MouseUp
    Else
    RemoveHandler _ctrl.MouseDown, AddressOf MouseDown
    RemoveHandler _ctrl.MouseMove, AddressOf MouseMove
    RemoveHandler _ctrl.MouseUp, AddressOf MouseUp
    End If
    _CanDraw = value
    End Set
    End Property
    End Class

    يا علي

  11. #11

    نقل قول: رسم یک دایره با استفاده از ماوس

    ممنون مصطفی .

    اگه از کلاست سر در اوردم که هیچی :D اگه نه باز مزاحمت می شم .

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •