找回密码
 FreeOZ用户注册
查看: 1556|回复: 0
打印 上一主题 下一主题

[论坛技术] 用于Windows Mobile平台图形开发包

[复制链接]
跳转到指定楼层
1#
发表于 6-10-2010 16:28:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
.Net Framework提供了 System.Drawing ,System.Drawing.Drawing2D 用于二维图形开发,但有相当一部分没有在 Windows Compact Framework 得到支持。
如 Pen的 .LineJoin .LineCap 已及 各种二维图形类。如 Arc, Area, Polyline, Polygon, Path.

这里提供一个免费的 用于Windows Mobile平台图形开发包。基本提供了 Desktop 平台 System.Drawing.Drawing2D 功能。

下面是一个简单的实例,用各种几何图形拼出一个Pear.(来源于经典Java示例),其他例子 Colors, Polys, Pahts, LineJoin,LineCap 见附件
  1.             Ellipse circle, oval, leaf, stem;
  2.             Area circ, ov, leaf1, leaf2, st1, st2;
  3.             circle = new Ellipse();
  4.             oval = new Ellipse();
  5.             leaf = new Ellipse();
  6.             stem = new Ellipse();
  7.             circ = new Area(circle);
  8.             ov = new Area(oval);
  9.             leaf1 = new Area(leaf);
  10.             leaf2 = new Area(leaf);
  11.             st1 = new Area(stem);
  12.             st2 = new Area(stem);
  13.             graphics2D.Reset();
  14.             graphics2D.Clear(Color.White);
  15.             int w = screenWidth;
  16.             int h = screenHeight;
  17.             int ew = w / 2;
  18.             int eh = h / 2;
  19.             SolidBrush brush = new SolidBrush(Color.Green);
  20.             graphics2D.DefaultBrush = brush;
  21.             // Creates the first leaf by filling the intersection of two Area
  22.             //objects created from an ellipse.
  23.             leaf.SetFrame(ew - 16, eh - 29, 15, 15);
  24.             leaf1 = new Area(leaf);
  25.             leaf.SetFrame(ew - 14, eh - 47, 30, 30);
  26.             leaf2 = new Area(leaf);
  27.             leaf1.Intersect(leaf2);
  28.             graphics2D.Fill(null, leaf1);

  29.             // Creates the second leaf.
  30.             leaf.SetFrame(ew + 1, eh - 29, 15, 15);
  31.             leaf1 = new Area(leaf);
  32.             leaf2.Intersect(leaf1);
  33.             graphics2D.Fill(null, leaf2);

  34.             brush = new SolidBrush(Color.Black);
  35.             graphics2D.DefaultBrush = brush;

  36.             // Creates the stem by filling the Area resulting from the
  37.             //subtraction of two Area objects created from an ellipse.
  38.             stem.SetFrame(ew, eh - 42, 40, 40);
  39.             st1 = new Area(stem);
  40.             stem.SetFrame(ew + 3, eh - 47, 50, 50);
  41.             st2 = new Area(stem);
  42.             st1.Subtract(st2);
  43.             graphics2D.Fill(null, st1);

  44.             brush = new SolidBrush(Color.Yellow);
  45.             graphics2D.DefaultBrush = brush;

  46.             // Creates the pear itself by filling the Area resulting from the
  47.             //union of two Area objects created by two different ellipses.
  48.             circle.SetFrame(ew - 25, eh, 50, 50);
  49.             oval.SetFrame(ew - 19, eh - 20, 40, 70);
  50.             circ = new Area(circle);
  51.             ov = new Area(oval);
  52.             circ.Add(ov);
  53.             graphics2D.Fill(null, circ);
  54.             Invalidate();
复制代码

Drawing.chm

1.67 MB, 下载次数: 1

WMGraphics2DExample.zip

171.21 KB, 下载次数: 1

评分

参与人数 1威望 +50 收起 理由
coredump + 50 原创内容

查看全部评分

回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 1-11-2024 18:17 , Processed in 0.031176 second(s), 19 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表