zoukankan      html  css  js  c++  java
  • C#----我对坐标系的理解和图形转动

    目录:

    设置图形的旋转

    设置坐标轴的反向

    图形的旋转

    参考一个文章:http://www.bccn.net/Article/kfyy/vc/jszl/200601/3008.html ;

    目标:让DrawString能按一定的角度旋转。

    过程:不改变设备坐标和逻辑坐标的原点,还有映射模式,因为映射模式只是改变从逻辑坐标到设备坐标映射时的Y正方向和像素到物理测试单位的变化。

                个人感觉Graphics.DrawString(String,Font,Brush,Point) 只是在指定开始点Point时,从这个点沿X正方向,并向Y正方向适应画出来,如果改变了这个X的正方向,那么相应的角度肯定会发生变化的。

                源结果:

                g = Graphics.FromHwnd(pictureBox1.Handle);
                Font font = new Font(FontFamily.GenericSansSerif, 15.0f, FontStyle.Bold);
    
                g.DrawString("aaaaa
    333", font, new SolidBrush(Color.Azure), new PointF(200f, 0.0f));


                进行一定转动坐标轴:

                string str = "aaaa
    ddd";
                g = Graphics.FromHwnd(pictureBox1.Handle);
                g.RotateTransform(90.0f);
                Font font = new Font(FontFamily.GenericSansSerif,15.0f,FontStyle.Bold);
                float hg = g.MeasureString(str, font).Height;//为了使第二、三。。。n行也显示出来
                g.DrawString(str,font , new SolidBrush(Color.Azure), new PointF(0.0f, -hg));


    这就是转动90度的结果。

    关于转动:旋转都是基于原点进行旋转的,如果在旋转前原点发生了变化,那效果是不同的。

    坐标轴反向和修改原点

     遵从一个原则:文字的出现是从某个指定点开始,方向是沿着Y轴的正方向

    方法是g.ScaleTransform(1,-1);,根据缩放来设置,这句话意思是设置Y方向反向,比例是1,和原来的一样大。

    //修改坐标原点为客户区左下角,原来是左上角
    g.TranslateTransform(0, this.ClientRectangle.Height);

  • 相关阅读:
    2-1 Restful中HTTP协议介绍
    11.修改WSDL文档
    10.TCPIP监听器
    05.使用jdk发布webservice服务
    09.ws复杂数据类型数据传输
    2019温馨的元旦祝福语 2019元旦祝福语大全!收藏备用!
    一文详解CSS常见的五大布局
    一文详解CSS常见的五大布局
    一文详解CSS常见的五大布局
    Asp.Net Core + Docker 搭建
  • 原文地址:https://www.cnblogs.com/ddx-deng/p/3755873.html
Copyright © 2011-2022 走看看