扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:徐歆恺 梁博 葛庆平 来源:计算几与信息技术 2007年10月19日
关键字:
常用成员函数 | 功能描述 |
Rotate | 相对于原点顺时针旋转指定角度 |
Scale | 缩放操作 |
Shear | 错切变换操作 |
Translate | 平移操作 |
Reset | 重置此Matrix对象,使其成为单位矩阵 |
Graphics g(hdc); GraphicsPath path; path.AddRectangle(Rect(40, 10, 200, 50)); g.DrawPath(&Pen(Color(255, 0, 0, 0),1), &path); // 在应用变形矩阵之前绘制矩形 // 路径变形 Matrix matrix; matrix.Rotate(30.0f); //旋转顺时针30度 matrix.Scale(0.5f,0.5f);//缩小一半 path.Transform(&matrix);//应用变形 g.DrawPath(&Pen(Color(255, 0, 0, 0),3), &path); // 以3象素宽的粗线绘制变换后的矩形 |
图4 矩形的旋转与缩放 |
INT count = path.GetPointCount(); // 获得路径点数目 ar<<count; // 存储路径点数目 dataPoints = new Point[count]; path.GetPathPoints(dataPoints, count); // 获得路径点坐标 pTypes = new BYTE[count]; path.GetPathTypes(pTypes, count); // 获得路径点类型 //开始存储 for(INT i=0;i<count;i++){ ar<<dataPoints[i].X<<dataPoints[i].Y; // 存储路径点坐标 ar<<pTypes[i]; // 存储路径点类型 } …………………… delete dataPoints; // 回收内存 delete pTypes; |
path.Reset(); // 重置路径 INT count; ar>>count; // 读取路径点数目 dataPoints = new Point[count]; // 定义路径点坐标 pTypes = new BYTE[count]; // 定义路径点类型 //开始读取 for(INT i=0;i<count;i++){ ar>>dataPoints[i].X>>dataPoints[i].Y; // 读取路径点坐标 ar>>pTypes[i]; // 读取路径点类型 } GraphicsPath pa(dataPoints,pTypes,count); // 由路径点创建临时路径pa path.AddPath(&pa,false); // 将临时路径pa添加到路径path中 …………………… delete dataPoints; // 回收内存 delete pTypes; |
图5 原始曲线路径与拉平后的路径(这里拉平参数为8.0) |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者