页面和变换(一)

原创 2005年04月28日 17:06:00

画标尺:

()手工转换

 

using System;

using   System.Drawing ;

using System.Drawing.Printing ;

using  System.Windows.Forms ;

namespace WindowsProgram

{

     class TenCenTimeterRuler:PrintTableForm

     {

         static void Main(string[] args)

         {

              Application.Run(new TenCenTimeterRuler());

         }

         public  TenCenTimeterRuler()

         {

              Text="Ten Cen Timeter Ruler";

             

         }

         protected  override void  DoPage(Graphics  grs,Color clr,int cx,int cy)

         {

                   Pen pen=new Pen(clr);

              Brush brush=new SolidBrush(clr);

              const  int xOffset=10;

              const  int yOffset=10;

              grs.DrawPolygon(pen,new PointF[]{MMConv(grs,new PointF(xOffset,yOffset)),

                                  MMConv(grs,new PointF(xOffset+150,yOffset)),

                                  MMConv(grs,new PointF(xOffset+150,yOffset+10)),

                                    MMConv(grs,new PointF(xOffset,yOffset+10))});

              StringFormat stmmt=new StringFormat();

              stmmt.Alignment =StringAlignment.Center;          

              for ( int i=0;i<150;i++)

            {

                   if(i%10==0)

                   {

                            grs.DrawLine(pen,MMConv(grs,new PointF(xOffset+i,yOffset)),

                        MMConv(grs,new PointF(xOffset+i,yOffset+5)));

                       grs.DrawString((i/10).ToString(),Font,brush,

                            MMConv(grs,new PointF(xOffset+i,yOffset+5)),stmmt);

                   }

                   else

                   {   

                       if(i%5==0)

                       {

                            grs.DrawLine(pen,MMConv(grs,new PointF(xOffset+i,yOffset)),

                                 MMConv(grs,new PointF(xOffset+i,yOffset+3)));

                       }

                       else

                       {

                            grs.DrawLine(pen,MMConv(grs,new PointF(xOffset+i,yOffset)),

                                 MMConv(grs,new PointF(xOffset+i,yOffset+2.5f)));

                       }

                   }

            

              }

             

             

                   //grs.DrawEllipse(new Pen(clr),0,0,grs.DpiX,grs.DpiY);

         }

         PointF MMConv(Graphics grs,PointF pointf)// 象素转换成毫米

        {

         pointf.X *=grs.DpiX /25.4f;//因为1英寸 =25.4毫米,1cm=0.394 英寸

         pointf.Y *=grs.DpiY /25.4f;

         return pointf ;

        }

        

     }

}

()自动转换

 

using System;

using   System.Drawing ;

using System.Drawing.Printing ;

using  System.Windows.Forms ;

namespace WindowsProgram

{

     class TenCenTimeterRulerAuTo:PrintTableForm

     {

         static void Main(string[] args)

         {

              Application.Run(new TenCenTimeterRulerAuTo());

         }

         public  TenCenTimeterRulerAuTo()

         {

              Text="Ten Cen Timeter Ruler";

             

         }

         protected  override void  DoPage(Graphics  grs,Color clr,int cx,int cy)

         {

             

              Pen pen=new Pen(clr,0.25f);

              Brush brush=new SolidBrush(clr);

              const  int xOffset=10;

              const  int yOffset=10;

              grs.PageUnit=GraphicsUnit.Millimeter;

              grs.PageScale=1;

 

              grs.DrawRectangle(pen,xOffset,yOffset,150,10);

              StringFormat stmmt=new StringFormat();

              stmmt.Alignment =StringAlignment.Center;          

              for ( int i=0;i<150;i++)

            {     if(i%10==0)

                   {    grs.DrawLine(pen,new PointF(xOffset+i,yOffset),

                        new PointF(xOffset+i,yOffset+5));

                        grs.DrawString((i/10).ToString(),Font,brush,

                            new PointF(xOffset+i,yOffset+5),stmmt);

                   }

                   else

                   {   

                       if(i%5==0)

                       {    grs.DrawLine(pen,new PointF(xOffset+i,yOffset),

                                 new PointF(xOffset+i,yOffset+3));

                       }

                        else

                       {grs.DrawLine(pen,new PointF(xOffset+i,yOffset),

                                 new PointF(xOffset+i,yOffset+2.5f));

                       }

                   }           

              }       

         }       

     }

}

7.7画笔宽度

 

using System;

using   System.Drawing ;

using System.Drawing.Printing ;

using  System.Windows.Forms ;

namespace WindowsProgram

{

     class PenWidths:PrintTableForm

     {

         static void Main(string[] args)

         {

              Application.Run(new PenWidths());

         }

         public  PenWidths()

         { Text="Pen Widths";            

         }

         protected  override void  DoPage(Graphics  grs,Color clr,int cx,int cy)

         {    Brush brush=new SolidBrush(clr);

              float y=0;

              grs.PageUnit=GraphicsUnit.Millimeter;

              grs.PageScale=1;           

              StringFormat stmmt=new StringFormat();

              stmmt.Alignment =StringAlignment.Center;          

              for ( float f=0;f<3.2;f+=0.2f)

            { Pen pen=new Pen(clr,f);

             string  str=String.Format("{0:F1} Point wide Pen:",f);

               SizeF  sizef=grs.MeasureString(str,Font);

               grs.DrawString(str,Font,brush,0,y);

               grs.DrawLine(pen,sizef.Width,y+sizef.Height/2,sizef.Width+144,y+sizef.Height/2);

               y+=Font.Height/2;        

              }            

         }       

     }

}

矩阵变换中等距、相似、仿射和投影变换的小结

机器学习面试填坑中,希望对大家有所帮助!!! 前言: 投影变换组成了一个群,这个群称之为投影变换群,n*n可逆实矩阵称之为一般线性群GL(n),当把相差非零纯量因子的矩阵都视为等同时,便得到了投影...
  • duwenchao_Tom
  • duwenchao_Tom
  • 2017年08月15日 20:18
  • 324

K-L变换和PCA的区别

K-L变换和PCA的区别是什么? 学习模式识别,大家自然会想到这样一个并不重要的问题。老师们讲课时将这两个概念做了统一处理,wiki上也直接统一了词条。这样做的原因很好理解,大概即使它们有区别,也是极...
  • OldMonkeyYu_s
  • OldMonkeyYu_s
  • 2015年05月16日 10:40
  • 5637

s和z变换的关系

  • gtkknd
  • gtkknd
  • 2016年07月12日 11:36
  • 1492

Button按下效果之变换背景图片

Button按下效果之变换背景图片
  • baidu_32237719
  • baidu_32237719
  • 2016年07月19日 16:43
  • 194

仿射变换和射影变换

平移变换数学公式: 旋转变换数学公式: 缩放变换数学公式: 错切变换数学公式: 刚性变换:只由平移变换和旋转变换组成。 仿射变换主要包括平移变换、旋转变换、缩放变换(也叫尺...
  • KinboSong
  • KinboSong
  • 2017年03月22日 19:20
  • 1495

Hough变换与Radon变换

两种空间映射 一、Hough变换 p=xcos8+ysin8(此处8为拉丁字母代写) 一个空间点(x,y)就对应了一个变换域中的曲线p=xcos8+ysin8 一个变换域的点(p,...
  • magic_andy
  • magic_andy
  • 2014年01月15日 20:20
  • 1609

[FMT 莫比乌斯变换 子集和变换] BZOJ 4036 [HAOI2015]按位或

vfk的论文题 看过组合数学 这个习称子集和变换的东西好像叫莫比乌斯变换? 那么这种变换就叫快速莫比乌斯变换 FMT? 大雾 开始推柿子 令UU表示全集 2n−12^n-1 fi,Sf_{i...
  • u014609452
  • u014609452
  • 2017年04月22日 20:44
  • 914

Z变换零点极点

在Z变换里,零点的位置表示系统的“谷”,极点的位置表示系统的“峰”,我们把有峰的地方看做信号可以通过的地方,而有谷的地方看做信号被截止的地方。并且我们选择单位圆为频域的一个周期,那么可以得出,如果无零...
  • guangegwi
  • guangegwi
  • 2015年01月09日 18:02
  • 4088

bzoj 4036: [HAOI2015]Set 子集和变换

AC代码如下: #include #include #define eps 1e-10 #define N 1100005 using namespace std; int n,m,op[N]; d...
  • lych_cys
  • lych_cys
  • 2016年03月15日 18:55
  • 1111

拉普拉斯变换 傅里叶变换 Z变换

1、Z变换在数学和信号处理上,把一连串离散的实数或复数信号,从时域转为频域表示。 2、拉普拉斯变换是工程数学中常用的一种积分变换,又名拉氏转换,其符号为。拉氏变换是一个线性变换,可将一个有引...
  • jiangyuexiang
  • jiangyuexiang
  • 2012年12月13日 22:55
  • 2202
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:页面和变换(一)
举报原因:
原因补充:

(最多只允许输入30个字)