PDA

View Full Version : طراحی مداد Paint



mohamad2007
جمعه 23 آذر 1386, 08:07 صبح
سلام دوستان
چگونه می توان با نگه داشتن کلید موس و حرکت آن روی یک Picturebox پیکسل های پشت سر هم ایجاد نمود؟
واضح تر بگم : میخوام مداد Paint رو طراحی کنم...

amirsajjadi
جمعه 23 آذر 1386, 10:13 صبح
با سلام
این برنامه رو ببین بدردت کارت میخوره

mehrzad007
جمعه 23 آذر 1386, 13:00 عصر
من وقت نکردم برنامه رو دقیق ببینم اما به نظرم از نقطه گذاری استفاده می کنه درسته؟ سعی کنید از لاین استفاده کنید .
یعنی داره هر جا ماوس حرکت می کنه یه نقطه می زاره . که باعث میشه هیچ وقت خط شما کامل نباشه اما اگه از لاین استفاده کنی مشکل حل میشه

mohamad2007
جمعه 23 آذر 1386, 14:34 عصر
من وقت نکردم برنامه رو دقیق ببینم اما به نظرم از نقطه گذاری استفاده می کنه درسته؟ سعی کنید از لاین استفاده کنید .
یعنی داره هر جا ماوس حرکت می کنه یه نقطه می زاره . که باعث میشه هیچ وقت خط شما کامل نباشه اما اگه از لاین استفاده کنی مشکل حل میشه

سلام دوست عزیز
بله... دقیقا مشکل اینه که هیچ وقت خط به طور کامل رسم نمی شه.
اگه امکان داره کمی بیشتر توضیح بدین.
ممنون.

amirsajjadi
جمعه 23 آذر 1386, 21:01 عصر
سلام دوست عزیز
بله... دقیقا مشکل اینه که هیچ وقت خط به طور کامل رسم نمی شه.
اگه امکان داره کمی بیشتر توضیح بدین.
ممنون.
این برنامه خط رسم میکنه

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


Dim x As Integer = -1, y As Integer = -1


این کد رو توی رویداد MouseClick بنویسید

Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
If e.Button = Windows.Forms.MouseButtons.Left Then
If x = -1 AndAlso y = -1 Then
x = e.X
y = e.Y
End If
Me.CreateGraphics.DrawLine(Pens.Blue, e.X, e.Y, x, y)
x = e.X
y = e.Y
End If
End Sub

Ner'zhul Arthas
جمعه 23 آذر 1386, 22:16 عصر
فکر میکنم اینطوری بهتر باشه:

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


Dim x , y As Integer


این کد رو توی رویداد MouseMove بنویسید:


If e.Button = Windows.Forms.MouseButtons.Left Then
Me.CreateGraphics.DrawLine(Pens.Blue, e.X, e.Y, x, y)
End If
x = e.X
y = e.Y

amirsajjadi
شنبه 24 آذر 1386, 05:35 صبح
دوست من کد شما یک ایراد خیلی کوچیک داره اونم اینه که وقتی روی فرم کلیک میکنی اولین نقطه ای که خط رسم میشه در نقطه ی 0 و 0 است !

Ner'zhul Arthas
شنبه 24 آذر 1386, 09:03 صبح
نه. در هر حرکت موس نقاط x,y با مکان موس تنظیم میشه. چون خارج از if هست.
برنامه که شما گذاشتید در موس کلیک بود. این در موس مووه.
که البته اون if هم کلیک شدن موس رو حساب میکنه.

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

amirsajjadi
شنبه 24 آذر 1386, 09:10 صبح
درسته معذرت میخوام
کد شما رو دقیق نگاه نکردم