رسم اشکال با ویژوال بیسیک دات نت

m_mx2009

Member
با سلام خدمت همه دوستان زحمتکش و خوبم.
اگه میشه در مورد رسم نقطه و خط و مقیاس بندی فرم کمی توضیح بفرمایید.
چون بارسم نقطه میشه توابع رو هم رسم کرد.آیا در دات نت هم مثل vb6 برای رسم نقطه از دستور pset استفاده میشه؟ اگه نه ، لطفا راهنمایی کنید.
با تشکر:rose:
 

the_king

مدیرکل انجمن
با سلام خدمت همه دوستان زحمتکش و خوبم.
اگه میشه در مورد رسم نقطه و خط و مقیاس بندی فرم کمی توضیح بفرمایید.
چون بارسم نقطه میشه توابع رو هم رسم کرد.آیا در دات نت هم مثل vb6 برای رسم نقطه از دستور pset استفاده میشه؟ اگه نه ، لطفا راهنمایی کنید.
با تشکر:rose:

نه، کلا شیوه ترسیم در Net. با شیوه Visual Basic 6 کاملا متفاوته، دیگه چیزی به اسم PSet وجود نداره، کمی
دشواره تره، البته امکانات برای ترسیم خیلی کاملتره از Visual Basic 6 است. جالب اینکه برای ترسیم کردن نقطه
فرمان خاصی تعریف نشده. برای ترسیم کردن نقطه یک تصویر 1 در 1 پیکسلی را رسم می کنیم.

کد زیر در خود فرم یک منحنی سینوسی را رسم می کند :
کد:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Me.Paint, AddressOf Draw
    End Sub

    Private Sub Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim x As Long, y As Long
        Dim b As New Bitmap(1, 1)
        e.Graphics.Clear(Color.White)
        b.SetPixel(0, 0, Color.Black)
        For x = 0 To Width - 1
            y = Math.Sin(2 * Math.PI * x / Width) * (e.ClipRectangle.Height / 2 - 20)
            e.Graphics.DrawImageUnscaled(b, x, y + e.ClipRectangle.Height / 2)
        Next
    End Sub
End Class
 

m_mx2009

Member
نه، کلا شیوه ترسیم در Net. با شیوه Visual Basic 6 کاملا متفاوته، دیگه چیزی به اسم PSet وجود نداره، کمی
دشواره تره، البته امکانات برای ترسیم خیلی کاملتره از Visual Basic 6 است. جالب اینکه برای ترسیم کردن نقطه
فرمان خاصی تعریف نشده. برای ترسیم کردن نقطه یک تصویر 1 در 1 پیکسلی را رسم می کنیم.

کد زیر در خود فرم یک منحنی سینوسی را رسم می کند :
کد:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Me.Paint, AddressOf Draw
    End Sub

    Private Sub Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim x As Long, y As Long
        Dim b As New Bitmap(1, 1)
        e.Graphics.Clear(Color.White)
        b.SetPixel(0, 0, Color.Black)
        For x = 0 To Width - 1
            y = Math.Sin(2 * Math.PI * x / Width) * (e.ClipRectangle.Height / 2 - 20)
            e.Graphics.DrawImageUnscaled(b, x, y + e.ClipRectangle.Height / 2)
        Next
    End Sub
End Class

سلام دوست خوبم.
من کدهاتون رو روی picture box امتحان کردم ولی کیفیتش یه کم اومد پایین .در ضمن منحنی نسبت به محور y قرینه میشد که البته با قراردادن علامت منفی در ابتدای تابع مشکلم حل شد ولی نمیدونم چطوری مقیاس بندی رو انجام بدم.اگه میشه دوباره کمکم کنید.:rose:
 

the_king

مدیرکل انجمن
سلام دوست خوبم.
من کدهاتون رو روی picture box امتحان کردم ولی کیفیتش یه کم اومد پایین .در ضمن منحنی نسبت به محور y قرینه میشد که البته با قراردادن علامت منفی در ابتدای تابع مشکلم حل شد ولی نمیدونم چطوری مقیاس بندی رو انجام بدم.اگه میشه دوباره کمکم کنید.:rose:
ابعاد ترسیم رو باید بر حسب PictureBox قرار بدید، یعنی هر چی Width است روی PictureBox1 قرار دهید،
رخداد هم که باید PictureBox1.Paint باشد :

کد:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler [B][COLOR="Blue"]PictureBox1[/COLOR][/B].Paint, AddressOf Draw
    End Sub

    Private Sub Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim x As Long, y As Long
        Dim b As New Bitmap(1, 1)
        e.Graphics.Clear(Color.White)
        b.SetPixel(0, 0, Color.Black)
        For x = 0 To [B][COLOR="Blue"]PictureBox1[/COLOR][/B].Width - 1
            y = -Math.Sin(2 * Math.PI * x / [B][COLOR="Blue"]PictureBox1[/COLOR][/B].Width) * (e.ClipRectangle.Height / 2 - 20)
            e.Graphics.DrawImageUnscaled(b, x, y + e.ClipRectangle.Height / 2)
        Next
    End Sub
End Class
 

m_mx2009

Member
ابعاد ترسیم رو باید بر حسب PictureBox قرار بدید، یعنی هر چی Width است روی PictureBox1 قرار دهید،
رخداد هم که باید PictureBox1.Paint باشد :

کد:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler [B][COLOR=Blue]PictureBox1[/COLOR][/B].Paint, AddressOf Draw
    End Sub

    Private Sub Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim x As Long, y As Long
        Dim b As New Bitmap(1, 1)
        e.Graphics.Clear(Color.White)
        b.SetPixel(0, 0, Color.Black)
        For x = 0 To [B][COLOR=Blue]PictureBox1[/COLOR][/B].Width - 1
            y = -Math.Sin(2 * Math.PI * x / [B][COLOR=Blue]PictureBox1[/COLOR][/B].Width) * (e.ClipRectangle.Height / 2 - 20)
            e.Graphics.DrawImageUnscaled(b, x, y + e.ClipRectangle.Height / 2)
        Next
    End Sub
End Class

سلام دوست خوبم.
من این کاری که فرمودید رو انجام دادم ولی توابع نمایی رو به شکل یه ضربدر رسم میکنه و هر کار میکنم هم درست نمیشه.
ممنون میشم اگه راهنماییم کنید.در ضمن میخوام اگه بشه مبدا مختصات به وسط picturebox منتقل بشه و محورهای مختصات هم روش کشیده بشه.من از دستور رسم خط در vb6 استفاده کردم ولی جواب نداد.
متشکرم.:green::neutral:
 

the_king

مدیرکل انجمن
سلام دوست خوبم.
من این کاری که فرمودید رو انجام دادم ولی توابع نمایی رو به شکل یه ضربدر رسم میکنه و هر کار میکنم هم درست نمیشه.
ممنون میشم اگه راهنماییم کنید.در ضمن میخوام اگه بشه مبدا مختصات به وسط picturebox منتقل بشه و محورهای مختصات هم روش کشیده بشه.من از دستور رسم خط در vb6 استفاده کردم ولی جواب نداد.
متشکرم.:green::neutral:

کدوم تابع نمایی رو شکل ضربدر رسم می کنه؟ :-?

شما موقع رسم کردن نقطه می توانید هر مقداری رو به x و y اضافه کنید و یا کم کنید تا موقعیت اش جابجا بشه.
مختصات وسط PictureBox هم که مشخصه، نصف طول و نصف عرض. برای رسم کردن خط هم که از دستور
Graphics.DrawLine استفاده خواهید کرد. می توانید فلش سر محور ها رو هم رسم کنید.

کد:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler PictureBox1.Paint, AddressOf Draw
    End Sub

    Private Sub Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim x As Long, i As Double
        Dim p1 As Point, p2 As Point
        Dim o As Point = New Point(e.ClipRectangle.Width / 2, e.ClipRectangle.Height / 2)
        e.Graphics.Clear(Color.White)
        e.Graphics.DrawLine(Pens.Blue, 3, o.Y, PictureBox1.Width - 6, o.Y)
        e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X, PictureBox1.Height - 6)
        e.Graphics.DrawLine(Pens.Blue, PictureBox1.Width - 7, o.Y, PictureBox1.Width - 12, o.Y - 3)
        e.Graphics.DrawLine(Pens.Blue, PictureBox1.Width - 7, o.Y, PictureBox1.Width - 12, o.Y + 3)
        e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X - 3, 9)
        e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X + 3, 9)
        For x = 20 To PictureBox1.Width - 20
            i = ((x - 20) / (PictureBox1.Width - 40) * 4 - 2) * Math.PI
            p2.X = x
            p2.Y = -Math.Sin(i) * (e.ClipRectangle.Height / 2 - 20) + o.Y
            If x > 20 Then
                e.Graphics.DrawLine(Pens.Black, p1, p2)
            End If
            p1 = p2
        Next
    End Sub
End Class
 

m_mx2009

Member
کدوم تابع نمایی رو شکل ضربدر رسم می کنه؟ شما موقع رسم کردن نقطه می توانید هر مقداری رو به x و y اضافه کنید و یا کم کنید تا موقعیت اش جابجا بشه. مختصات وسط PictureBox هم که مشخصه، نصف طول و نصف عرض. برای رسم کردن خط هم که از دستور Graphics.DrawLine استفاده خواهید کرد. می توانید فلش سر محور ها رو هم رسم کنید.
کد:
  Public Class Form1         Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load          AddHandler PictureBox1.Paint, AddressOf Draw      End Sub         Private Sub Draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)          Dim x As Long, i As Double          Dim p1 As Point, p2 As Point          Dim o As Point = New Point(e.ClipRectangle.Width / 2, e.ClipRectangle.Height / 2)          e.Graphics.Clear(Color.White)          e.Graphics.DrawLine(Pens.Blue, 3, o.Y, PictureBox1.Width - 6, o.Y)          e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X, PictureBox1.Height - 6)          e.Graphics.DrawLine(Pens.Blue, PictureBox1.Width - 7, o.Y, PictureBox1.Width - 12, o.Y - 3)          e.Graphics.DrawLine(Pens.Blue, PictureBox1.Width - 7, o.Y, PictureBox1.Width - 12, o.Y + 3)          e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X - 3, 9)          e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X + 3, 9)          For x = 20 To PictureBox1.Width - 20              i = ((x - 20) / (PictureBox1.Width - 40) * 4 - 2) * Math.PI              p2.X = x              p2.Y = -Math.Sin(i) * (e.ClipRectangle.Height / 2 - 20) + o.Y              If x > 20 Then                  e.Graphics.DrawLine(Pens.Black, p1, p2)              End If              p1 = p2          Next      End Sub  End Class
با عرض سلام دوباره. من این کاری رو که فرمودید انجام دادم و مشکلم حل شد.فقط نمیدونم این تابعی که تعریف کرده اید رو چجوری تو رخدادهای یک button فراخوانی کنم.اولش فکر کردم مثل ++C فراخوانی میشه .ولی نشد که نشد. بعضی وقت ها هم توابع نمایی مثل Exp (i) رو رسم نمیکنه و یک ضربدر رو کل picturebox میکشه. اگه میشه لطف کنید و در این مورد هم توضیح بدید.
 
آخرین ویرایش:

the_king

مدیرکل انجمن
با عرض سلام دوباره. من این کاری رو که فرمودید انجام دادم و مشکلم حل شد.فقط نمیدونم این تابعی که تعریف کرده اید رو چجوری تو رخدادهای یک button فراخوانی کنم.اولش فکر کردم مثل ++C فراخوانی میشه .ولی نشد که نشد.

تابع Draw توسط رخداد Paint فراخوانی میشه، یعنی زمانی که PictureBox باید رسم بشه بصورت خودکار Draw
هم فراخوانی میشه. برای اینکه خودتون اینکار رو انجام بدید باید کاری کنید که رخداد Paint اتفاق بیافته، یعنی
PictureBox رو وادار به رسم شدن بکنید :

کد:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[B][COLOR="Blue"]        PictureBox1.Invalidate()[/COLOR][/B]
    End Sub
Invalidate کردن باعث میشه که تصویر مجدد رسم بشه، یعنی رخداد Paint اتفاق بیافته.

بعضی وقت ها هم توابع نمایی مثل Exp (i) رو رسم نمیکنه و یک ضربدر رو کل picturebox میکشه. اگه میشه لطف کنید و در این مورد هم توضیح بدید.
بعضی وقت ها یعنی دقیقا چه وقتی؟ تا یک نمونه کد کامل برنامه که این مشکل بوجود میاد رو ارائه نکنید
نمی تونم تشخیص بدم که مشکل تون از چیه.
 

m_mx2009

Member
تابع Draw توسط رخداد Paint فراخوانی میشه، یعنی زمانی که PictureBox باید رسم بشه بصورت خودکار Draw
هم فراخوانی میشه. برای اینکه خودتون اینکار رو انجام بدید باید کاری کنید که رخداد Paint اتفاق بیافته، یعنی
PictureBox رو وادار به رسم شدن بکنید :

کد:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
[B][COLOR=Blue]        PictureBox1.Invalidate()[/COLOR][/B]
    End Sub
Invalidate کردن باعث میشه که تصویر مجدد رسم بشه، یعنی رخداد Paint اتفاق بیافته.


بعضی وقت ها یعنی دقیقا چه وقتی؟ تا یک نمونه کد کامل برنامه که این مشکل بوجود میاد رو ارائه نکنید
نمی تونم تشخیص بدم که مشکل تون از چیه.
الان من پروژه ای رو که روش کار میکنم رو براتون قرار دادم.که Exp(2*i) رو به شکل ضربدر رسم میکنه.
در ضمن میخوام با لود شدن فرم picyurebox خالی بمونه و فقط با کلیک روی button رخداد رسم اجرا بشه.
میشه از متغیرهایی که داخل رخدادهای button تعریف شدند رو در داخل تابعی که رسم میکنه استفاده کنم؟چون نمودار من بر اساس این متغیرها باید رسم بشه.در قسمت general هم خواستم اونا رو به صورت عمومی تعریف کنم ولی ایراد میگرفت.فکر کنم اینجل هم با Vb6 فرق کرده.
متشکرم:rose:
 

پیوست ها

  • RLC.zip
    74.7 کیلوبایت · بازدیدها: 4
  • Picture1.jpg
    Picture1.jpg
    12 کیلوبایت · بازدیدها: 3

the_king

مدیرکل انجمن
الان من پروژه ای رو که روش کار میکنم رو براتون قرار دادم.که Exp(2*i) رو به شکل ضربدر رسم میکنه.
در ضمن میخوام با لود شدن فرم picyurebox خالی بمونه و فقط با کلیک روی button رخداد رسم اجرا بشه.
میشه از متغیرهایی که داخل رخدادهای button تعریف شدند رو در داخل تابعی که رسم میکنه استفاده کنم؟چون نمودار من بر اساس این متغیرها باید رسم بشه.در قسمت general هم خواستم اونا رو به صورت عمومی تعریف کنم ولی ایراد میگرفت.فکر کنم اینجل هم با Vb6 فرق کرده.
متشکرم:rose:

تابع Exp نمایی زیاد میشه، حواستون باشه که اگه خطا های Overflow رو مدیریت نکنید مشکل درست می کنه.
متغیر های عمومی که مشکلی نداره.

کد:
Public Class Form1

    Dim paintEnabled As Boolean
    Dim s As Double
    Dim r As Single
    Dim a As Single
    Dim b As Single
    Dim m As Single
    Dim n As Single
    Dim y As String
    Dim delta As Single

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler PictureBox1.Paint, AddressOf draw
    End Sub

    Private Sub draw(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim x As Long, i As Double
        Dim p1 As Point, p2 As Point
        Dim o As Point = New Point(e.ClipRectangle.Width / 2, e.ClipRectangle.Height / 2)
        e.Graphics.Clear(Color.White)
        e.Graphics.DrawLine(Pens.Blue, 3, o.Y, PictureBox1.Width - 6, o.Y)
        e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X, PictureBox1.Height - 6)
        e.Graphics.DrawLine(Pens.Blue, PictureBox1.Width - 7, o.Y, PictureBox1.Width - 12, o.Y - 3)
        e.Graphics.DrawLine(Pens.Blue, PictureBox1.Width - 7, o.Y, PictureBox1.Width - 12, o.Y + 3)
        e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X - 3, 9)
        e.Graphics.DrawLine(Pens.Blue, o.X, 3, o.X + 3, 9)
        If paintEnabled = False Then Exit Sub
        For x = 0 To PictureBox1.Width
            Try
                i = 10 * (x - o.X) / o.X
                p2.X = x
                p2.Y = -Math.Truncate(Math.Exp(i)) + o.Y
                If p1.IsEmpty = False Then
                    e.Graphics.DrawLine(Pens.Black, p1, p2)
                End If
                p1 = p2
            Catch ex As Exception
            End Try
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        r = Val(TextBox6.Text)
        Dim ee As Single
        ee = Val(TextBox1.Text)
        Dim l As Single
        l = Val(TextBox8.Text)
        Dim c As Single
        c = Val(TextBox4.Text)
        Dim w As Single
        w = Val(TextBox2.Text)
        s = w * l - 1 / (w * c)
        a = (-ee * s) / (r ^ 2 + s ^ 2)
        b = (ee * r) / (r ^ 2 + s ^ 2)
        delta = r ^ 2 - 4 * l * (1 / c)
        a = Math.Round(a, 4)
        b = Math.Round(b, 4)
        Select Case delta
            Case Is > 0
                m = (-r + Math.Sqrt(delta)) / (2 * l)
                n = (-r - Math.Sqrt(delta)) / (2 * l)
                m = Math.Round(m, 3)
                n = Math.Round(n, 3)
                y = "c1e^" & Str(m) & "t" & "+ C2e^" & Str(n) & "t" & "+ " & Str(a) & "cos(" & Str(w) & "t) + " & Str(b) & "sin(" & Str(w) & "t)"
            Case Is = 0
                m = (-r) / (2 * a)
                m = Math.Round(m, 3)
                y = "c1e^" & Str(m) & "t" & "+ C2te^" & Str(m) & "t" & "+ " & Str(a) & "cos(" & Str(w) & "t) + " & Str(b) & "sin(" & Str(w) & "t)"
            Case Is < 0
                delta = -delta
                m = (-r + Math.Sqrt(delta)) / (2 * l)
                n = (-r - Math.Sqrt(delta)) / (2 * l)
                m = Math.Round(m, 3)
                n = Math.Round(n, 3)
                y = "e^" & Str(-r / 2) & "t" & "( Cos(" & Str(m) & "t) + Sin(" & Str(n) & "t) )" & "+ " & Str(a) & "cos(" & Str(w) & "t) + " & Str(b) & "sin(" & Str(w) & "t)"
        End Select
        paintEnabled = True
        PictureBox1.Invalidate()
    End Sub
End Class
 

m_mx2009

Member
با سلام دوباره خدمت دوست خوبم.ببخشید که دیر اومدم.کدهاتون رو امتحان کردم و مشکلم هم حل شد خیلی ممنونم.
:oops:
 

otana13

New Member
سلام...
اگه امکان داره برنامه رسم "گونیا" تو ویژال بیسیک رو بهم بدید!
خیلی ممنون!!!
منتظر جابتونم...
 

Badbuzz

New Member
96D5C386-67A0-40A8-9608-0F0A1D75981B.jpeg سلام دوستان من كد چند دايره توهم رو ميخواستم به زبان ويژال بيسيك
نميخوام حركت كنن فقط كدشو بزنم چند دايره توهم نمايان بشه شكل دقيق اينو ميخوام ممنون ميشم كمك كنيد
 

the_king

مدیرکل انجمن
مشاهده پیوست 112001 سلام دوستان من كد چند دايره توهم رو ميخواستم به زبان ويژال بيسيك
نميخوام حركت كنن فقط كدشو بزنم چند دايره توهم نمايان بشه شكل دقيق اينو ميخوام ممنون ميشم كمك كنيد
circle.png

کد:
Imports System.Drawing.Drawing2D

Public Class Form1

    Private Const W As Integer = 50

    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
        Dim center As New Point(ClientSize.Width / 2, ClientSize.Height / 2)
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
        DrawCircle(e.Graphics, center.X, center.Y, W)
        DrawCircle(e.Graphics, center.X, center.Y, W * 1.5)
        DrawCircle(e.Graphics, center.X, center.Y, W * 2)
        DrawCircle(e.Graphics, center.X - W, center.Y, W)
        DrawCircle(e.Graphics, center.X + W, center.Y, W)
        DrawCircle(e.Graphics, center.X, center.Y - W, W)
        DrawCircle(e.Graphics, center.X, center.Y + W, W)
    End Sub

    Private Sub DrawCircle(g As Graphics, x As Integer, y As Integer, size As Integer)
        g.DrawEllipse(Pens.Black, New Rectangle(x - size / 2, y - size / 2, size, size))
        g.DrawEllipse(Pens.Black, New Rectangle(x - 2, y - 2, 4, 4))
    End Sub

End Class
 

Badbuzz

New Member
خيلي ممنون اما اين ويژال بيسيكه چيزي كه سر جلسه بود RGb داشت crile داشت از اينا يا كلا دايره كدش فرق داره
 

the_king

مدیرکل انجمن
خيلي ممنون اما اين ويژال بيسيكه چيزي كه سر جلسه بود RGb داشت crile داشت از اينا يا كلا دايره كدش فرق داره
عنوان تاپیکی که داخلش سوال کردید رو مشاهده بفرمایید، رسم اشکال با ویژوال بیسیک دات نت.
 

Badbuzz

New Member
ارور میده کد من همچین کدی میخوام برای عکسی که فرستادم قبلا این کد یه چیز دیگس اما میخوام مث همین باشه ببخشید نمیدونم که عنوان کنم اینجا پست میدم
 

پیوست ها

  • photo_۲۰۱۷-۱۱-۱۰_۲۱-۴۲-۳۴.jpg
    photo_۲۰۱۷-۱۱-۱۰_۲۱-۴۲-۳۴.jpg
    58.5 کیلوبایت · بازدیدها: 1

the_king

مدیرکل انجمن
ارور میده کد من همچین کدی میخوام برای عکسی که فرستادم قبلا این کد یه چیز دیگس اما میخوام مث همین باشه ببخشید نمیدونم که عنوان کنم اینجا پست میدم
بیسیک یکی دو تا کامپایلر نداره، کامپایلر های خیلی متنوعی داره، نمیدونم تو چه محیطی کد نویسی می کنید، ولی به هر حال سوال تون مربوط به این تاپیک نبوده، نباید در این تاپیک سوال می پرسیدید. باید خودتون یک تاپیک میساختید :
کد:
CIRCLE (4000, 3000), 800, RGB(0, 0, 0)
CIRCLE (2400, 3000), 800, RGB(0, 0, 0)
CIRCLE (5600, 3000), 800, RGB(0, 0, 0)
CIRCLE (4000, 1400), 800, RGB(0, 0, 0)
CIRCLE (4000, 4600), 800, RGB(0, 0, 0)
CIRCLE (4000, 3000), 1200, RGB(0, 0, 0)
CIRCLE (4000, 3000), 1600, RGB(0, 0, 0)
CIRCLE (4000, 3000), 30, RGB(0, 0, 0)
CIRCLE (2400, 3000), 30, RGB(0, 0, 0)
CIRCLE (5600, 3000), 30, RGB(0, 0, 0)
CIRCLE (4000, 1400), 30, RGB(0, 0, 0)
CIRCLE (4000, 4600), 30, RGB(0, 0, 0)

من در Quick Basic کد نویسی کردم.
qbx1.png

qbx2.png
 

irantp12

New Member
Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
‘Refresh your start variables
X1 = X
Y1 = Y
X2 = X
Y2 = Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
‘Set the DrawMode to 6 indicates the next circle drawn will be an inverted line.
‘This renders the circle invisible
‘form1.DrawWidth = form1.DrawWidth + 10
Form1.DrawMode = 6
 

a.1397

New Member
circle.png

کد:
Imports System.Drawing.Drawing2D

Public Class Form1

    Private Const W As Integer = 50

    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
        Dim center As New Point(ClientSize.Width / 2, ClientSize.Height / 2)
        e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
        DrawCircle(e.Graphics, center.X, center.Y, W)
        DrawCircle(e.Graphics, center.X, center.Y, W * 1.5)
        DrawCircle(e.Graphics, center.X, center.Y, W * 2)
        DrawCircle(e.Graphics, center.X - W, center.Y, W)
        DrawCircle(e.Graphics, center.X + W, center.Y, W)
        DrawCircle(e.Graphics, center.X, center.Y - W, W)
        DrawCircle(e.Graphics, center.X, center.Y + W, W)
    End Sub

    Private Sub DrawCircle(g As Graphics, x As Integer, y As Integer, size As Integer)
        g.DrawEllipse(Pens.Black, New Rectangle(x - size / 2, y - size / 2, size, size))
        g.DrawEllipse(Pens.Black, New Rectangle(x - 2, y - 2, 4, 4))
    End Sub

End Class
سلام ادمین عزیز
یه پست خاک گرفته رو کشیدم بالا!! چند روزه دارم سرچ میکنم تا به این تاپیک رسیدم
من میخام رویه فایل PDF شکل رسم کنم. شکلم شامل یه خطه که تهش یه دایره یا یه مربعه
AS.jpg
اندازه دایره یا مربعه ثابته ولی خطه از نقطه شروع کلیک تا پایان کلیک میادش
میشه لطفا راهنماییم کنین
 

جدیدترین ارسال ها

بالا