關(guān)于vb.net選擇矢量直線的信息

vb.net的picturebox畫直線的函數(shù)是哪個(gè)?vb6.0是picture1.line就可以,但是vb.net沒(méi)有啊

Dim PtStart As Point '記錄繪制直線的起始點(diǎn)

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括平橋網(wǎng)站建設(shè)、平橋網(wǎng)站制作、平橋網(wǎng)頁(yè)制作以及平橋網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,平橋網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到平橋省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

Dim PtEnd As Point '記錄繪制直線的終點(diǎn)

Dim ShouldDrawLine As Boolean '是否繪制直線

'記錄鼠標(biāo)左鍵點(diǎn)擊的位置,第二次點(diǎn)擊后開(kāi)始繪制直線

Private Sub Pic1_MouseDown()Sub Pic1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pic1.MouseDown

If e.Button = Windows.Forms.MouseButtons.Left Then

If Not ShouldDrawLine Then

PtStart = New Point(e.X, e.Y)

ShouldDrawLine = True

Else

PtEnd = New Point(e.X, e.Y)

'下面兩句根據(jù)需要進(jìn)行取舍

'Call DrawLine(PtStart, PtEnd) '繪制一條直線

Call DrawLines(PtStart, PtEnd) '繪制多條直線

ShouldDrawLine = False

End If

End If

End Sub

'繪制鼠標(biāo)兩次點(diǎn)擊位置之間的直線

Private Sub DrawLine()Sub DrawLine(ByVal mPoint1 As Point, ByVal mPoint2 As Point)

Pic1.Refresh() '用于刷新Picturebox表面

Pic1.CreateGraphics.DrawLine(Pens.Blue, mPoint1, mPoint2) '繪制兩點(diǎn)間的直線

End Sub

'繪制多條直線,每?jī)纱问髽?biāo)點(diǎn)擊確定一條線

Private Sub DrawLines()Sub DrawLines(ByVal mPoint1 As Point, ByVal mPoint2 As Point)

'此句不可刪除,用于清除鼠標(biāo)點(diǎn)擊前的軌跡

ControlPaint.DrawReversibleLine(Pic1.PointToScreen(mPoint1), Pic1.PointToScreen(mPoint2), Color.Red)

Pic1.CreateGraphics.DrawLine(Pens.Blue, mPoint1, mPoint2) '繪制兩點(diǎn)間的直線

End Sub

vb和vb.net 在picturebox 中繪制直線如何繪制

繪圖是系統(tǒng)內(nèi)部操作的,不需要懂原理

方法就在那里,只有會(huì)用和不會(huì)用,你的代碼告訴它繪制,它就會(huì)繪制。它(方法)究竟如何去繪制的并不是重點(diǎn),反正它會(huì)繪制。

drawline(繪線)方法很簡(jiǎn)單,第一個(gè)參數(shù)是pen,它確定線條的顏色、寬度和樣式。第二、第三個(gè)參數(shù)都是point類型,確定兩個(gè)點(diǎn)的位置,繪制直線。

VB.Net讀取AutoCAD圖紙

如果可以的話請(qǐng)把分給我

以下是cad2007版的,引用autocad 2007 type library 和autocad/objectdbx common 17如果是04或者版本更低的只要引用autocad 2007 type library,代碼的話大同小異,思路是一樣的

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

On Error Resume Next

Dim acadapp As Autodesk.AutoCAD.Interop.AcadApplication

acadapp = GetObject(vbNullString, "autoCAD.application")

Dim acaddoc As Autodesk.AutoCAD.Interop.AcadDocument

acaddoc = acadapp.ActiveDocument

Dim Ms As Autodesk.AutoCAD.Interop.Common.AcadModelSpace

Ms = acaddoc.ModelSpace

Dim acadObjectI As Autodesk.AutoCAD.Interop.Common.AcadObject

Dim Linei As Autodesk.AutoCAD.Interop.Common.AcadLine

Dim Circlei As Autodesk.AutoCAD.Interop.Common.AcadCircle

Dim Polylinei As Autodesk.AutoCAD.Interop.Common.AcadPolyline

Dim pt As Autodesk.AutoCAD.Interop.Common.AcadPoint

For Each acadObjectI In Ms

Debug.Print(acadObjectI.ObjectName)

Select Case acadObjectI.ObjectName

Case "AcDbLine"

Linei = acadObjectI

Debug.Print("X =" Linei.StartPoint(0).ToString)

Debug.Print("Y =" Linei.StartPoint(1).ToString)

Case ""

Case ""

End Select

Next

End Sub

在VB NET中,在Form_Load中創(chuàng)建graphics類,并繪制直線,為什么執(zhí)行程序后發(fā)現(xiàn)直線繪制不出來(lái)?

1. 創(chuàng)建一個(gè)Graphics對(duì)象實(shí)例。

繪制圖形必須創(chuàng)建Graphics對(duì)象。如果是在窗體上繪圖,要使用下列代碼創(chuàng)建Graphics對(duì)象;

Dim MyGraphics As Graphics = Me.CreateGraphics

如果是在PictrueBox里繪圖,要使用下列代碼創(chuàng)建Graphics對(duì)象;

Dim MyGraphics As Graphics = PictureBox1.CreateGraphics

2. 定義一個(gè)Brush對(duì)象,用來(lái)填充圖形(如果你需要填充的話)。

如果填充封閉曲線或者多邊形,必須創(chuàng)建Brush對(duì)象(或者Brush類的繼承類對(duì)象),用來(lái)確定填充的顏色。例如下面的代碼,創(chuàng)建了一個(gè)填充紅色的畫刷對(duì)象。在最后的括號(hào)里,用Color結(jié)構(gòu)指定的枚舉值,確定畫刷的顏色。限于篇幅有關(guān)Color結(jié)構(gòu)這里不展開(kāi),可能在后續(xù)博文里介紹。

Dim RedBrush As New SolidBrush(Color.Red)

vb.net 畫線再畫保留以前畫得

可以把所有畫的線都保存在一個(gè)列表中,畫的時(shí)候全部畫出即可。如下:

Public?Class?Form1

Class?Line? ? ? '直線類

? Public?Point1,?Point2?As?Point? ? ?'成員,直線的兩個(gè)端點(diǎn)

? Sub?New(p1?As?Point,?p2?As?Point)? ?'構(gòu)造方法

? ? ? 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? ? ? ?'開(kāi)啟雙緩沖可有效避免閃爍

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?'左鍵未按下

? '鼠標(biāo)拖動(dòng)時(shí)改變列表最后一條直線(也即當(dāng)前直線的第二個(gè)端點(diǎn))

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

? Refresh()? ? ? ?'刷新窗體

End?Sub

'在Form的Paint事件中繪制所有直線,每次Form1重繪時(shí)都會(huì)觸發(fā)Paint事件

'PS:?也可以通過(guò)重寫OnPaint方法來(lái)達(dá)到類似的效果

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

? e.Graphics.SmoothingMode?=?Drawing2D.SmoothingMode.AntiAlias? ? '開(kāi)啟抗鋸齒

? For?Each?l?In?Lines? ? ?'遍歷所有直線

? ? ? l.Draw(e.Graphics)? '調(diào)用繪制方法,傳入的參數(shù)可以理解為畫布

? Next

End?Sub

End?Class

運(yùn)行效果:

vb.net 畫圖 如何保持圖形

不用PictureBoxTest.Image屬性,直接把圖形繪制到PictureBoxTest上面就可以了。

Dim?button?As?Integer?=?0

Private?Sub?Button1_Click(ByVal?sender?As?Object,?ByVal?e?As?EventArgs)?_

Handles?Button1.Click

Using?g?As?Graphics?=?Graphics.FromHwnd(PictureBoxTest.Handle)

Dim?penRed?As?Pen?=?New?Pen(Color.Red,?1)?????'定義紅色畫筆??

Dim?penblue?As?Pen?=?New?Pen(Color.Blue,?1)?'定義藍(lán)色畫筆?

If?button?=?0?Then

g.DrawLine(penRed,?0,?0,?100,?100)

button?=?1

ElseIf?button?=?1?Then

g.DrawLine(penblue,?100,?100,?200,?200)

button?=?0

End?If

End?Using

End?Sub

本文名稱:關(guān)于vb.net選擇矢量直線的信息
文章URL:http://muchs.cn/article38/hcpisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、App設(shè)計(jì)、定制開(kāi)發(fā)、網(wǎng)站營(yíng)銷、網(wǎng)站收錄外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)