皮皮网

皮皮网

【仿uki源码】【98建站源码】【同花顺dde源码】vb屏幕画线源码_vb画线代码

时间:2024-11-14 13:16:54 分类:探索

1.vb中实现用鼠标绘制直线的屏幕代码
2.VB 在桌面屏幕上画一条直线如何让它重绘?
3.vb.net 画线再画保留以前画得
4.vb中画线命令代码
5.VB 画直线
6.vb中如何表示屏幕上一点

vb屏幕画线源码_vb画线代码

vb中实现用鼠标绘制直线的代码

       Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

       If Button <> 1 Then

        Picture1.Cls '按右键可清屏

       ElseIf Picture1.CurrentX = 0 And Picture1.CurrentY = 0 Then

        Picture1.PSet (X, Y), vbBlack '开始画第一个点

       Else

        Picture1.Line -(X, Y), vbBlack '画线

       End If

       End Sub

VB 在桌面屏幕上画一条直线如何让它重绘?

       '屏幕重绘 源码如下

       '画多线声波色条

       Public Sub DrawFrequencies(intSamples() As Integer, picbox As PictureBox)

        'FFT_SAMPLES =

        Dim sngRealOut(FFT_SAMPLES - 1) As Single

        Dim sngBand As Single

        Dim hBrush As Long

        Dim i As Long

        Dim j As Long

        Dim intRed As Integer

        Dim intGreen As Integer

        Dim intBlue As Integer

        Dim rcBand As RECT

        If UBound(intSamples) < FFT_SAMPLES - 1 Then Exit Sub

        If clsFFT Is Nothing Then

        Set clsFFT = New clsFourier

        clsFFT.NumberOfSamples = FFT_SAMPLES

        clsFFT.WithTimeWindow = 1

        End If

        '读入数据

        For i = 0 To FFT_SAMPLES - 1 'FFT_SAMPLES =

        clsFFT.RealIn(i + 1) = intSamples(i) '动态数值传送

        Next

        ' lower band amplitudes

        For i = 0 To FFT_BANDS - 1 'band(i) = 0 FFT_BANDS =

        band(i) = band(i) - FFT_BANDLOWER 'FFT_BANDLOWER = 0.

        If band(i) < 0 Then band(i) = 0

        Next

        'band(0) = 0 : band(1) = 0 : band(2) = 0 : band(3) = 0 : band(4) = 0 : band(5) = 0 : band(6) = 0

        For i = 0 To FFT_SAMPLES / 2

        'FFT_SAMPLES =

        sngRealOut(i) = clsFFT.ComplexOut(i + 1) / (FFT_SAMPLES / 4) /

        If sngRealOut(i) > FFT_MAXAMPLITUDE Then

        sngRealOut(i) = FFT_MAXAMPLITUDE

        End If

        sngRealOut(i) = sngRealOut(i) / FFT_MAXAMPLITUDE 'FFT_MAXAMPLITUDE = 0.2

        Next

        j = FFT_STARTINDEX

        For i = 0 To FFT_BANDS - 1 'FFT_BANDS =

        For j = j To j + FFT_BANDWIDTH 'FFT_BANDWIDTH = 3

        sngBand = sngBand + sngRealOut(j)

        Next

        sngBand = (sngBand * (Hanning(i + 3, FFT_BANDS + 3) + 1)) / FFT_BANDWIDTH

       'MsgBox band(i) '--------------------------------

        If band(i) < sngBand Then band(i) = sngBand

        If band(i) > 1 Then band(i) = 1

        j = j + FFT_BANDSPACE

        Next

        ' draw bars

        picbox.Cls

        intRed =

        intBlue =

        '画整个色块 共块色条

        For i = 0 To FFT_BANDS - 1 'FFT_BANDS = picbox.ScaleHeight =

        intGreen = (band(i) * ) ' i ( 0-)

        hBrush = CreateSolidBrush(RGB(intRed, intGreen, intBlue))

        '画单个色块

        With rcBand

        .Right = i * (DRW_BARWIDTH + DRW_BARSPACE) + DRW_BARWIDTH + DRW_BARXOFF

        .Left = i * (DRW_BARWIDTH + DRW_BARSPACE) + DRW_BARXOFF

        '单个色块的高度 忽上忽下 DRW_BARYOFF=2 常数 band(i)自定精度数组(0-) 从小到大

        '.Top = max(DRW_BARYOFF, Min(picbox.ScaleHeight, picbox.ScaleHeight - (picbox.ScaleHeight * band(i))) - DRW_BARYOFF) ' - 1)

        .Top = max(2, Min(, - ( * band(i))) - 2)

        .Bottom = picbox.ScaleHeight - DRW_BARYOFF

        End With

        FillRect picbox.hdc, rcBand, hBrush '用指定刷子填充色块区域

        DeleteObject hBrush

        Next

       End Sub

vb.net 画线再画保留以前画得

       å¯ä»¥æŠŠæ‰€æœ‰ç”»çš„线都保存在一个列表中,画的时候全部画出即可。如下:

       Public Class Form1

           Class Line      '直线类

               Public Point1, Point2 As Point     '成员,直线的两个端点

               Sub New(p1 As Point, p2 As Point)   '构造方法

                   Point1 = p1

                   Point2 = p2

               End Sub

               Public Sub Draw(g As Graphics)      '绘制方法

                   g.DrawLine(Pens.Black, Point1, Point2)

               End Sub

           End Class

           Private Lines As New List(Of Line)      '列表用于保存所有画下的直线

           Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

               BackColor = Color.White

               DoubleBuffered = True       '开启双缓冲可有效避免闪烁

           End Sub

           Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles Me.MouseDown

               Lines.Add(New Line(e.Location, e.Location))     '在直线列表中添加直线

           End Sub

           Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove

               If e.Button <> Windows.Forms.MouseButtons.Left Then Return '左键未按下

               '鼠标拖动时改变列表最后一条直线(也即当前直线的第二个端点)

               Lines(Lines.Count - 1).Point2 = e.Location

               Refresh()       '刷新窗体

           End Sub

           '在Form的Paint事件中绘制所有直线,每次Form1重绘时都会触发Paint事件

           'PS: ä¹Ÿå¯ä»¥é€šè¿‡é‡å†™OnPaint方法来达到类似的效果

           Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint

               e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias    '开启抗锯齿

               For Each l In Lines     '遍历所有直线

                   l.Draw(e.Graphics)  '调用绘制方法,传入的参数可以理解为画布

               Next

           End Sub

       End Class

       è¿è¡Œæ•ˆæžœï¼š

vb中画线命令代码

       对象.Line (x1,y1)-(x2,y2)

       对象可以是窗体或PicTureBox控件。

       (x1,画线画线仿uki源码y1) 是一个端点的坐标

       (x2,y2) 是另一个端点的坐标

VB 画直线

       ç”»ç›´çº¿

       ä¸ºäº†åœ¨ä¸¤ä¸ªåæ ‡ç‚¹ä¹‹é—´ç”»ä¸€æ¡ç›´çº¿ï¼Œå¯ä½¿ç”¨ Line 方法的简单形式,其语法如下:

       [object.]Line [(x1, y1)]–(x2, y2)[, color]

       å…¶ä¸­ Object 是可选择的;若省略,此方法将在代码所连接的窗体(当前窗体)上画线。第一对坐标也是可选的。就所有的坐标值来说,x 和 y 参数都既可以是整数,也可以是分数。例如,下列语句可在窗体上画一条斜线。

       Line (, )–(, )

       Visual Basic 所画出的一条直线,要包括第一个端点,而不是最后一个端点。这种行为在从点到点画封闭曲线时是有用的。为了画最后一个端点,应使用这种语法:

       PSet [Step] (0, 0)[, color]

       ç¬¬ä¸€å¯¹åæ ‡ (x1, y1) 是可选的。如果省略这些坐标,将把该对象的 x,y 当前位置(画图坐标)作为端点。当前位置是由 CurrentX 和 CurrentY 属性指定的,然而在其它情况它会等于以前的图形方法或 Print 方法所画最后点的位置。如果以前没有使用过图形方法或 Print 方法,或没有设置 CurrentX 和 CurrentY 属性,则缺省位置为对象的左上角。

       ä¾‹å¦‚,以下语句通过三点连接画出一个三角形。

       '设置起点的 x 坐标。

       CurrentX =

       '设置起点的 y 坐标。

       CurrentY =

       '向起点的右下方画一直线。

       Line -(, )

       '向当前点的左方画一直线。

       Line -(, )

       '向右上方画一直线到起点。

       Line -(, )

       Blanker 应用程序使用 Line 方法创建出了一些有趣的图案样式。为了看到这些图案,可从“选项”菜单中,选定“Crossfire”,然后选定“Start Demo”按钮,即可看到。

       Step 关键字

       PSet、Line、和 Circle 方法使用以下语法可指定一个或多个点:

       (x, y)

       å¯åœ¨æ¯ä¸ªç‚¹ä¹‹å‰åŠ ä¸Š Step 关键字,用来指定要画出的点,是相对最后画出点的位置。Visual Basic 要将 x 和 y 的值加到最后所画的点上。例如,下边这条语句:

       Line (, )–(, )

       ç­‰ä»·äºŽï¼š

       Line (, )–Step(, )

       åœ¨è®¸å¤šæƒ…况下,Step 关键字可免除持续不断地记录最后所画点位置的负担。经常最为关心的可能是两点的相对位置,而不是它们的绝对位置。

       ä½¿ç”¨é¢œè‰²å‚æ•°

       ä¸ºäº†æ”¹å˜ç›´çº¿çš„颜色,应将可选的 color 参数与图形方法一起使用。例如,下述语句将画一条深蓝色的直线:

       Line (, )–(, ), RGB(0, 0, )

       å¦‚果省略了 color 参数,将使用在其上画线的对象的 ForeColor 属性,来决定直线的颜色。

       RND来设置随机值

vb中如何表示屏幕上一点

       Private Sub Form_Load()

       Form1.ForeColor = vbRed

       Form1.DrawWidth = 8

       Form1.PSet (Form1.Width / 2, Form1.Height / 2)

       End Sub