在一个界面A上画一个矩形a,A的ClientRectangle为(0,0,1000,1000),a在A上的坐标为(100,100,200,200);如何做矩形a的投影图到另一个界面B上,B的ClientRectangle为(0,0,500,500)如何做坐标变换? 变换矩阵是怎么样的?
解决方案 »
- 控件鼠标悬停事件,求助
- 刚在书上看到这么个选择题!.NET框架结构的核心组件是( ).
- 选择性地将excel表格导入到sql server数据库
- GridView在执行.DataBind()方法时,字段名是怎样自动获取的?
- 高手请进,写一个方法如何操作Datatable实现改变列值后,交换(更新、插入)两个不同数据源(access\oracle)dataset的DataTable....
- c# webgis 开发
- 主线程中的textbox的内容 赋值给子线程的变量
- 新手问题:关于编写简单计算器
- 在c#中不用遍历,怎样获得磁盘驱动器和目录?
- 一个令我烦恼的c#问题
- 事件如何调用另一个事件
- asp.net操作access数据库问题
using System.Drawing.Imaging;
using System.Drawing;
自己写算法来实现你想要写的任何图.
e.Graphics.Transform = new Matrix(1, 2, 3, 4, 5, 6);123456是六个参数
可实现 位置,角度,缩放.
public static void invertedImage(Panel panel, string str)
{
//投影文字
Graphics g = panel.CreateGraphics();
//设置文本输出质量
g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
g.SmoothingMode = SmoothingMode.AntiAlias;
Font newFont = new Font("Times New Roman", 48, FontStyle.Bold);
Matrix matrix = new Matrix();
//投射
matrix.Shear(-1.5f, 0.0f);
//缩放
matrix.Scale(1, 0.5f);
//平移
matrix.Translate(130, 88);
//对绘图平面实施坐标变换、、
g.Transform = matrix;
SolidBrush grayBrush = new SolidBrush(Color.Gray);
SolidBrush colorBrush = new SolidBrush(Color.White);
string text = str;
//绘制阴影
g.DrawString(text, newFont, grayBrush, new PointF(0, 30));
g.ResetTransform();
//绘制前景
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
}