真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用VB.NET繪制直線和貝塞爾曲線

本文小編為大家詳細(xì)介紹“怎么用VB.NET繪制直線和貝塞爾曲線”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“怎么用VB.NET繪制直線和貝塞爾曲線”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、徐水網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為徐水等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

用VB.NET繪制直線的方法為:

畫布工具Graphics.DrawLine(鋼筆工具Pen,起始點(diǎn)Point,終止點(diǎn)Point)

其中的參數(shù)Point對象還可以用PointF對象或分別用其橫坐標(biāo)X值和橫坐標(biāo)Y值代替。

用VB.NET連續(xù)繪制多條直線的方法為:

畫布工具Graphics.DrawLines(鋼筆工具Pen,有序點(diǎn)數(shù)組)

其中的參數(shù)有序點(diǎn)數(shù)組由按照順序連接到各個(gè)點(diǎn)(Point或PointF)構(gòu)成的數(shù)組對象。

用VB.NET繪制貝塞爾曲線(Bezier)的方法為:

畫布工具Graphics.DrawBezier(鋼筆工具Pen,起始點(diǎn),控點(diǎn)1,控點(diǎn)2,結(jié)束點(diǎn))

注意繪制直線時(shí),參數(shù)中的各個(gè)點(diǎn)都經(jīng)過繪制的線段,但繪制貝塞爾曲線時(shí),參數(shù)中定義的四個(gè)點(diǎn)只有起始點(diǎn)和結(jié)束點(diǎn)經(jīng)過繪制的曲線,兩個(gè)控點(diǎn)是不在曲線上的,控點(diǎn)只控制起始點(diǎn)和結(jié)束點(diǎn)之間的曲線走向。由起始點(diǎn)到控點(diǎn)1引出的直線與曲線的開頭部分相切,由終止點(diǎn)到控點(diǎn)2引出的直線與曲線的結(jié)束部分相切。參數(shù)中的4個(gè)點(diǎn)可以用Point或PointF對象,也可以分別由這些點(diǎn)的橫坐標(biāo)和縱坐標(biāo)拆解成的8個(gè)Single參數(shù)代替。

用VB.NET連續(xù)繪制多條貝塞爾曲線的方法為:

畫布工具Graphics.DrawBezier(鋼筆工具Pen,有序點(diǎn)數(shù)組)

注意這里有序點(diǎn)數(shù)組(Point或PointF元素構(gòu)成)的第一個(gè)元素表示繪制曲線的第一個(gè)點(diǎn),接著是第一段曲線的兩個(gè)控點(diǎn),接著第一段曲線經(jīng)過并結(jié)束在第四點(diǎn);在接著連續(xù)繪制第二段曲線時(shí),會自動把第一段曲線的結(jié)束點(diǎn)(也就是第四個(gè)元素)當(dāng)作起始點(diǎn),然后第五和六個(gè)元素分表示第二段曲線的控點(diǎn),依次類推……,最后一個(gè)元素結(jié)束所有線段的繪制。

以下以繪制漢字“飛”舉例:

(1)在窗體的Paint事件處理程序中定義一個(gè)10像素寬的黑色鋼筆工具,定義兩個(gè)點(diǎn)數(shù)組,用DrawLines畫法連接兩個(gè)數(shù)組各個(gè)點(diǎn)的線段,繪制漢字“飛”:

Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
            Dim pn As New Pen(Color.Black, 10)
            Dim pts1() As Point = {New Point(30, 70),
                  New Point(200, 70), New Point(100, 300),
                  New Point(300, 300), New Point(280, 270)}
            Dim pts2() As Point = {New Point(280, 90),
            New Point(164, 160), New Point(280, 220)}
            e.Graphics.DrawLines(pn, pts1)
            e.Graphics.DrawLines(pn, pts2)
        End With
    End Sub

(2)定義一個(gè)繪制各點(diǎn)坐標(biāo)旁注的方法:

Private Sub DrawPointString(gr As Graphics ,pts() As Point)
        Using f As New Font("Arial", 14, FontStyle.Regular)
            Using fm As New StringFormat
                fm.LineAlignment = StringAlignment.Center
                For Each p As Point In pts
                    gr.DrawString($"({p.X},{p.Y })", f, Brushes.Red, p, fm)
                Next
            End Using
        End Using
    End Sub

(3)在Paint事件里標(biāo)注點(diǎn)數(shù)組里每個(gè)點(diǎn)的坐標(biāo):

DrawPointString(e.Graphics, pts1)
DrawPointString(e.Graphics, pts2)

(4)改變鋼筆顏色為黃顏色,寬度減半,以便與原有圖形對比:

pn.Color = Color.Yellow
pn.Width = 5

(5)再定義一個(gè)點(diǎn)數(shù)組,以便使用DrawBeziers繪制“飛”的第一筆劃:

Dim pts3() As Point = {
                New Point(30, 70),
                New Point(30, 70),
                New Point(30, 70),
                New Point(200, 70),
                '以上四個(gè)點(diǎn)用于繪制橫線,可見用到兩點(diǎn)的貝塞爾曲線相當(dāng)于直線
                  New Point(100, 300),
                  New Point(100, 300),
                  New Point(300, 300),  
               '以上第4至第7四個(gè)點(diǎn)用于繪制豎彎部分的曲線
               New Point(300, 300),
               New Point(300, 300),
               New Point(280, 270)  
               以上第7至第10四個(gè)點(diǎn)用于繪制代表鉤的直線
               } 
 e.Graphics.DrawBeziers(pn, pts3)

再利用DrawBezier方法繪制“飛”的第二筆劃:

e.Graphics.DrawBezier(pn,
               New Point(280, 90),
               New Point(130, 160),
               New Point(130, 160),
               New Point(280, 220))

怎么用VB.NET繪制直線和貝塞爾曲線

(6)為了觀看到最終的曲線效果文字,可以利用畫布工具的平移變形,整理以上代碼如下:

Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
        With e.Graphics
            Dim pn As New Pen(Color.Black, 10)
            Dim pts1() As Point = {New Point(30, 70),
                  New Point(200, 70), New Point(100, 300),
                  New Point(300, 300), New Point(280, 270)}
            Dim pts2() As Point = {New Point(280, 90),
            New Point(164, 160), New Point(280, 220)}
            .DrawLines(pn, pts1)
            .DrawLines(pn, pts2)
            DrawPointString(e.Graphics, pts1)
            DrawPointString(e.Graphics, pts2)

            .TranslateTransform(400, 0)

            Dim pts3() As Point = {
                New Point(30, 70),
                New Point(30, 70),
                New Point(30, 70),
                New Point(200, 70),
                  New Point(100, 300),
                  New Point(100, 300),
                  New Point(300, 300),
               New Point(300, 300),
               New Point(300, 300),
               New Point(280, 270)}
            .DrawBeziers(pn, pts3)
            .DrawBezier(pn,
               New Point(280, 90),
               New Point(130, 160),
               New Point(130, 160),
               New Point(280, 220))
            pn.Dispose
        End With
    End Sub
    Private Sub DrawPointString(gr As Graphics ,pts() As Point)
        Using f As New Font("Arial", 14, FontStyle.Regular)
            Using fm As New StringFormat
                fm.LineAlignment = StringAlignment.Center
                For Each p As Point In pts
                    gr.DrawString($"({p.X},{p.Y })", f, Brushes.Red, p, fm)
                Next
            End Using
        End Using
    End Sub
End Class

怎么用VB.NET繪制直線和貝塞爾曲線

讀到這里,這篇“怎么用VB.NET繪制直線和貝塞爾曲線”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站題目:怎么用VB.NET繪制直線和貝塞爾曲線
轉(zhuǎn)載來源:http://weahome.cn/article/pdooid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部