Dim g As Graphics = PictureBox1.CreateGraphics

創新互聯專注于企業成都全網營銷推廣、網站重做改版、代縣網站定制設計、自適應品牌網站建設、HTML5、商城網站建設、集團公司官網建設、外貿營銷網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為代縣等各大城市提供網站開發制作服務。
g.TranslateTransform(2, 2) ‘定義原點坐標
g.ScaleTransform(1, -1) ’X軸不變,反轉Y軸
以PictureBox1中(2,2)點為新的原點(0,0)
向右為X軸正方向 向上為Y軸正方向
scale(x1,y1)-(x2,y2)
你只要記住,這里的x1,y1是左上角的坐標,x2,y2是右下角的坐標,通過這兩個點的坐標設定,就可以決定坐標原點的位置以及坐標軸的方向了,比如
Scale (-300,200)-(300,-200)
以上是把坐標原點設在窗體中心,x軸長600,方向從左到右,y軸長400,方向從下向上。
Scale (800,0)-(0,600)
以上是把坐標原點設在窗體右上角,x軸長800,方向從右到左,y軸長600,方向從上向下。
下面說坐標軸和原點的標示法:
假定自定義坐標設為:
Scale (-300, 200)-(300, -200)
則
Line (-300, 0)-(300, 0) '畫x軸
Line (0, 200)-(0, -200) '畫y軸
CurrentX = 290
CurrentY = -5
Print "x" '標示x軸
CurrentX = 5
CurrentY = 200
Print "y" '標示y軸
CurrentX = 5
CurrentY = -5
Print "0" '標示原點
自己用GDI+畫的 無論什么什么尺寸的picturebox都行
不過別太小了o(∩_∩)o
代碼放在哪里自己決定啊
最好是放在 picturebox的resize時間里
每次picturebox大小改變都重畫一次坐標
Dim b As New Bitmap(PictureBox1.Width, PictureBox1.Height)
Dim g As Graphics = Graphics.FromImage(b)
g.Clear(Color.White)
Dim p As New Pen(Color.Black)
p.EndCap = Drawing2D.LineCap.ArrowAnchor
g.DrawLine(p, 30, PictureBox1.Height - 30, 30, 30)
g.DrawLine(p, 30, PictureBox1.Height - 30, PictureBox1.Width - 30, PictureBox1.Height - 30)
Dim i As Integer
Dim bs As New SolidBrush(Color.Green)
Dim po As New Point
po.X = 0
po.Y = PictureBox1.Height - 35
For i = 700 To 1000 Step 50
g.DrawString(i, Me.Font, bs, po.X, po.Y)
g.DrawLine(p, po.X + 28, po.Y + 5, po.X + 30, po.Y + 5)
po.Y -= (PictureBox1.Height - 100) / 6
Next
po.X = 30
po.Y = PictureBox1.Height - 30
For i = 0 To 40 Step 5
g.DrawString(i, Me.Font, bs, po.X, po.Y + 5)
g.DrawLine(p, po.X, po.Y + 2, po.X, po.Y)
po.X += (PictureBox1.Width - 100) / 8
Next
PictureBox1.Image = b
坐標原點默認是左上角,可以改變的,FORM1.SCALE
(X1,Y1)-(X2,Y2)橫坐標范圍是從X1到X2,縱坐標是從Y1到Y2,若坐標設在窗體中間,則FORM1.SCALE
(-ME.WIDTH/2,-ME.HEIGTH/2)-(ME.WIDTH/2,ME.HEIGTH/2),畫橫坐標ME.LINE
(-ME.WIDTH/2,0)-(ME.WIDTH/2,0)
畫縱坐標FORM1.LINE
(0,-ME.HEIGTH/2,0,ME.HEIGTH/2)
Private Sub mainfrm_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim pt(200) As PointF
Dim a As Integer
For a = 0 To 200
pt(a).X = 50 * a
pt(a).Y = 200 - 50 * Math.Sin(a - 1)
Next
Me.CreateGraphics.DrawLine(Pens.Blue, 0, 200, 800, 200)
Me.CreateGraphics.DrawLine(Pens.Blue, 50, 0, 50, 600)
Me.CreateGraphics.DrawCurve(Pens.Blue, pt)
End Sub
名稱欄目:vb.net畫坐標軸 vb怎么建立坐標系
文章鏈接:http://www.yijiale78.com/article30/doddipo.html
成都網站建設公司_創新互聯,為您提供建站公司、外貿建站、網頁設計公司、商城網站、服務器托管、面包屑導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯