分享

笔记7:VB.net绘图中坐标轴的变换

 百眼通 2014-10-31



在GDI+绘图中,如何改变坐标轴的原点及X轴和Y轴的方向呢?


VB.net提供了三个常用的变换方法:


1、改变原坐标系中的原点位置:        gr.TranslateTransform(100, 250)  


2、改变原坐标系中的XY轴方向:        gr.ScaleTransform(1, -1)   '1:1变换X,Y轴

                                                                    参数可针对X轴和Y轴进行放大或缩小处理。


3、旋转原坐标系的角度:        gr.RotateTransform(-30)




  1. Imports System.Drawing  
  2. Imports System.Drawing.Drawing2D  
  3. Public Class Form1  
  4.   
  5.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
  6.         Dim gr As Graphics = PictureBox1.CreateGraphics  
  7.         Dim p As New Pen(Brushes.Red, 2)  
  8.         Dim p1 As New Pen(Brushes.Blue, 2)  
  9.   
  10.         '(100,300)为原点,右为X,上为Y(红色)  
  11.         gr.TranslateTransform(100, 250)  
  12.         gr.ScaleTransform(1, -1)  '1:1变换X,Y轴  
  13.   
  14.         p.EndCap = LineCap.ArrowAnchor  
  15.         gr.DrawLine(p, New Point(0, 0), New Point(200, 0))  
  16.         gr.DrawLine(p, New Point(0, 0), New Point(0, 200))  
  17.         gr.DrawString("X轴", Me.Font, Brushes.Red, New Point(200, 0))  
  18.         gr.DrawString("Y轴", Me.Font, Brushes.Red, New Point(0, 200)) '未作处理,目的是看清坐标是怎么变换  
  19.   
  20.         '在上面的基础上旋转坐标轴(蓝色)  
  21.         gr.RotateTransform(-30)  
  22.   
  23.         gr.DrawLine(p1, New Point(0, 0), New Point(200, 0))  
  24.         gr.DrawLine(p1, New Point(0, 0), New Point(0, 200))  
  25.         gr.DrawString("X'轴", Me.Font, Brushes.Blue, New Point(200, 0))  
  26.         gr.DrawString("Y'轴", Me.Font, Brushes.Blue, New Point(0, 200))  
  27.   
  28.         gr.DrawArc(p1, New Rectangle(-75, -75, 150, 150), 120, -30) '注意矩形的位置落区  
  29.         gr.DrawRectangle(p1, New Rectangle(30, 30, 80, 100)) '在最后生效的坐标轴内画矩形  
  30.   
  31.         '放大或缩小效果  
  32.         gr.ScaleTransform(6, 1) 'X轴方向扩大6倍  
  33.         gr.DrawRectangle(p1, New Rectangle(10, 10, 30, 50))  
  34.     End Sub  
  35. End Class  




详细查看MSDN:

Graphics.TranslateTransform 方法
通过使此 Graphics 的变换矩阵左乘指定的平移来更改坐标系统的原点。


Graphics.ScaleTransform 方法
将指定的缩放操作应用于此 Graphics 的变换矩阵,方法是将该对象的变换矩阵左乘该缩放矩阵。


Graphics.RotateTransform 方法
将指定旋转应用于此 Graphics 的变换矩阵。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多