设为首页
加入收藏
繁體中文
首 页客家风情客家影音山歌在线客家商城聊天室留言墙测字算命下载中心IT 技术客家论坛
您当前的位置:天南地北客家人 -> IT 技术-> NET专区 -> 正文 退出登录 用户管理
栏目导航
· ASP · JSP
· 网络安全 · NET专区
· XML专区 · PHP专区
热门文章
· ASP+JavaScript的完整的..
· [图文] 防范非法用户的侵..
· ASP从数据库中获取文件..
· 网络管理中的常用命令
· [图文] FSO组件操作实例..
· [图文] 千年虫二世诞生业..
· 网络常见木马的手工清除..
· [图文] 简单购物车教程
· 一个ASP(VBScript)简..
· 利用ASP远程获取内容
· 网络常见木马的手工清除..
· asp常用数据库连接方法..
相关文章
· ASP.NET创建XML Web服务..
· ASP.NET创建XML Web服务..
· ASP.NET创建XML Web服务..
· ASP.NET创建XML Web服务..
· asp.net高级教程(一)-..
· asp.net高级教程(二)-..
· asp.net高级教程(三)-..
· asp.net高级教程(四)-..
· [图文] asp.net高级教程(..
· ASP.NET 打造互联网未来..
· ASP.NET 打造互联网未来..
· ASP.NET 打造互联网未来..
· ASP.NET 打造互联网未来..
· Asp.net+Xml开发网络硬盘..
· ASP.NET中树形图的实现
.NET Compact Framework的强大二维图形引擎
作者:郁郁小蝎  来源:中国站长学院  发布时间:2008-4-16 11:38:26  发布人:Admin

减小字体 增大字体

主要功能
反锯齿矢量图形绘图

  通过 XrossOne Mobile GDI+ 可以呈现所有种类的二维几何图形,例如,线段、矩形、多边形、椭圆、扇形、贝塞尔样条曲线、基数样条曲线等等。但是,扇形、贝塞尔样条曲线和基数样条曲线在 .NET Compact Framework 中不可用。此外,所有图形在呈现时都自动进行反锯齿处理。这有助于获得超级平滑质量。在 .NET Compact Framework 中,画笔的宽度被固定为 1 个像素。这一限制在 XrossOne GDI+ 中不存在。画笔的不同大小可以应用于所有图形的轮廓,如图 1 所示。


图 1. 反锯齿矢量图形绘图



  代码示例 1

//Clear the background and reset the transform state
gx.Clear(Color.White);
gx.ResetTransform();
//Draw skew grid as the background
PenX pen = new PenX(Utils.FromArgb(0x40, Color.LightGray), 5);
for (int i = -Height; i < Width + Height; i+=20)
{
gx.DrawLine(pen, i, 0, i + Height, Height);
gx.DrawLine(pen, i, 0, i - Height, Height);
}

//Draw a DarkMagenta rectangle with a 10.5-pixel pen
Color c = Utils.FromArgb(0x80, Color.DarkMagenta);
pen = new PenX(c, 10.5f);
gx.DrawRectangle(pen, 50, 20, 150, 200);

//Fill a GreenYellow rectangle
c = Utils.FromArgb(0xA0, Color.GreenYellow);
BrushX brush = new SolidBrushX(c);
gx.FillRectangle(brush, 120, 50, 90, 150);

//Draw a BlueViolet ellipse with a 10.5-pixel pen
c = Utils.FromArgb(0x80, Color.BlueViolet);
pen = new PenX(c, 10.5f);
gx.DrawEllipse(pen, 50, 20, 150, 80);

//Fill a Red ellipse
c = Utils.FromArgb(0xA0, Color.Red);
brush = new SolidBrushX(c);
gx.FillEllipse(brush, 20, 50, 80, 150);

//Draw a HotPink pie from 156.5 degree to -280.9 degree
pen.Color = Utils.FromArgb(0xA0, Color.HotPink);
gx.DrawPie(pen, 3.6f, 120.3f, 200.8f, 130.1f, 156.5f, -280.9f);

//Draw Orange Bezier curves
c = Utils.FromArgb(0xA0, Color.Orange);
pen = new PenX(c, 16);
Point start = new Point(70, 100);
Point control1 = new Point(100, 10);
Point control2 = new Point(150, 50);
Point end1 = new Point(200, 200);
Point control3 = new Point(100, 150);
Point control4 = new Point(50, 200);
Point end2 = new Point(10, 150);
Point[] bezierPoints ={start, control1, control2, end1, control3, control4, end2};
pen.EndCap = LineCapX.Round;
gx.DrawBeziers(pen, bezierPoints);

//Refresh
Invalidate();



  XrossOne GDI+ 和本机 GDI+ 的矢量图形输出是相同的,但基数样条曲线除外。我的算法取自 Jean-Yves Queinec 撰写的文章 Smoothing Algorithm Using Bezier Curves。因此,您可能发现在它们的输出之间存在一些差异,如下面的图 2 所示。


图 2. DrawCurve/DrawClosedCurve 的输出



  尽管大多数矢量图形呈现函数都已经得到实现,但仍然有一些工作需要完成。某些函数(DrawString、DrawImage、DrawPath 等等)直到下一个版本才可用。

上一页  [1] [2] [3] [4] [5]  下一页

[] [返回上一页] [打 印] [收 藏]
上一篇文章:细细品味ASP.NET(三)
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站 - 网站合作 - 免责声明 - 友情连接 - 网站地图 - 客家论坛
本站部份内容来自网络 如无意中侵犯了您的权利 请及时与我们联系 我们会尽快处理
Copyright © 2006-2012   天南地北客家人
Email:hakka360@sina.com   客家人QQ群:33754730
粤ICP备07019796号