Polyline(多线段) 和 Polygon(多边形)

Polyline(多线段) 和 Polygon(多边形)是Silverlight中简单但功能强大的绘图对象。它允许你声明N个Points属性值,然后根据Points属性的坐标先后顺序来绘制图形,并且支持线条内部的颜色填充。

首先介绍一下PolyLine,他比Line元素更加强大,下面例子利用Polyline来绘制线条:

<Polyline Stroke="Black" Points="0,0 50,50 300,0 400,100"></Polyline>

运行结果:

代码中Points="0,0 50,50 300,0 400,100“ 总共分成了四对坐标然后根据四个点来绘制图形。

下面的例子来 说明Polyline(多线段) 和 Polygon(多边形)两个的用法和区别

        <!-- 三组坐标组成的PolyLine开放图形--><Polyline Stroke="Blue" StrokeThickness="6" Points="50,50 150,200 300,50" Fill="Gold"></Polyline>
        <!-- 三组坐标组成的Polygon封闭图形--><Polygon Stroke="Blue" StrokeThickness="6" Points="400,50 650,200 800,50" Fill="Gold"></Polygon>

运行结果:

上面例子分别利用Polyline(多线段) 和 Polygon(多边形)来绘制图型,然后除了坐标了不一样,其它的基本上都相同并且都填充了相同的颜色,唯一区别是

我们利用Polygon绘制出来的图形是一个封闭的图形。

Polyline(多线段) 和 Polygon(多边形)均具有FillRule(填充规则)使用FillRule可以声明线条内的填充规则。如下面的例子:

<StackPanel x:Name="LayoutRoot" Background="White" Orientation="Horizontal"><!--EvenOdd 确定一个点是否位于填充区域内的规则,具体方法是从该点沿任意方向画一条无限长的射线,然后计算该射线在给定形状中因交叉而形成的路径段数。 如果此数目为奇数,则该点在内部;如果是偶数,则该点在外部。  Nonzero 确定一个点是否位于路径填充区域内的规则,具体方法是从该点沿任意方向画一条无限长的射线,然后检查形状段与该射线的交点。从零开始计数,每当线段从左向右穿过该射线时加 1,而每当路径段从右向左穿过该射线时减 1。 计算交点的数目后,如果结果为零,则说明该点在路径外部。 否则,说明该点位于路径内部。--><Polygon Stroke="Blue" StrokeThickness="2" Fill="Orange" Margin="120,0,60,0" FillRule="EvenOdd"Points="15,200 68,70 110,200 0,125 134,125"></Polygon><Polygon Stroke="Blue" StrokeThickness="2" Fill="Red" Margin="50,0,0,0" FillRule="Nonzero"Points="15,200 68,70 110,200 0,125 134,125"></Polygon></StackPanel>

运行结果:

分别使用了FillRule的两种规结果也不一样。

Silverlight开发历程—(绘制矢量图之Polyline 和 Polygon)相关推荐

  1. android绘制矢量图_Android矢量可绘制

    android绘制矢量图 In this tutorial, we'll be discussing Android Vector Drawable. Furthermore, we'll be im ...

  2. android绘制矢量图_Android矢量可绘制对象

    android绘制矢量图 Everything about Vector Assets in Android 关于Android中的矢量资产的一切 介绍 (Introduction) In the b ...

  3. 10款超好用的矢量图软件,轻松绘制矢量图

    大家好.我是不知名设计师l1m0_,今天分享内容为:10款超好用的矢量图软件.生活中经常需要绘制或者用到矢量图的朋友一定不能错过,一起来看看吧. 矢量图软件是指使用户能够使用数学和几何命令,而不是单个 ...

  4. Unity3d绘制矢量图(类似于CAD夹点编辑)

    本项目基于Unity3d,可实现矢量图绘制,包括整个实体拖动,夹点拖动编辑等.完整视频点击这里 现有功能主要为了完成某个项目,都是自主开发,效果还是不如传统CAD,功能也比较有限,毕竟unity3d是 ...

  5. python 通过 matplotlib 绘制矢量图

    问题描述 当遇到这种情况:需要通过代码和数据进行图片的绘制的时候,可以考虑使用 OriginPro 进行绘制,并且在很多情况下,OriginPro 都更加合适绘图,导出矢量图也比较方便. 但是如果遇到 ...

  6. MATLAB 矢量图(风场、电场等)标明矢量大小的方法——箭头比例尺及风矢杆图的绘制

    作者: 中国科学院大气物理研究所 律成林 摘要:本文主要讲述了在MATLAB中标明矢量图中矢量大小的方法,其中最主要的方法是绘制箭头比例尺.作为运算速度非常快的软件,MATLAB的一个缺点为缺乏在图窗 ...

  7. 使用CAD代替Tikz绘制LaTeX矢量图

    1.为什么要用CAD代替tikz? 在latex中,插入矢量图形的方法貌似只有tikz,一般的图片插入不符合排版的哲学.但,tikz使用过于复杂低效,于是,我想到了用CAD软件代替tikz绘制矢量图插 ...

  8. matlab emf 读取,20140219-Emf_Demo EMF 矢量图 可以读取和保存EMF 的封闭类 非常实用 matlab 238万源代码下载- www.pudn.com...

    文件名称: 20140219-Emf_Demo下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Visual C++ 文件大小: 6312 KB 上传时间: 2014-07-10 下载次 ...

  9. 游戏中的图像资源(位图与矢量图比较)

    当今游戏早已不再是黑白机的时代,游戏都由色彩丰富.精致的图像,流畅的动画构成.Flash游戏也不例外,Flash既支持矢量图又支持位图,他们各有优缺点.本文的目的即是介绍何时使用矢量图,何时使用位图, ...

最新文章

  1. arcgis里python窗口运行,在 Python 窗口中执行工具
  2. 扩展源_Ubuntu14版本下无法使用php7.2版本的bcmath扩展
  3. python处理csv文件案例_python3读取csv文件任意行列代码实例
  4. 编程之美 set 1 不要被阶乘吓倒
  5. html-css练习题(天天生鲜静态网页制作)文末有完整版代码地址链接
  6. php表格打印输出,PHP输出表格
  7. crypto 乱码_base64编码加密解密程序,输出有乱码,为什么?
  8. 官宣!什么是新基建时代的混合云? | 凌云时刻
  9. 快播CEO认罪_成人网站对技术的要求有多高?
  10. 360视频:二十面体投影ISP
  11. C++求一元二次方程根
  12. yocto_evn compile project whithconfigure
  13. mysql查询各专业人数_查询各专业的学生数。
  14. 参数方程下的特殊图像
  15. 页面图片 “懒加载”
  16. Kubernetes 常用命令及应用实例
  17. lol登入服务器显示证书,登录LOL提示安全证书不可用怎么办
  18. evo评测VINS-MONO---代码修改、数据格式转换、数据测试
  19. 汽车散热器不同造型的注塑件管口密封方案
  20. 零基础学习一年拿到BAT三家offer

热门文章

  1. AI产品经理需了解的技术知识:语音识别技术(1)
  2. 《数学之美》第4章 谈谈分词
  3. Gartner:为什么元宇宙商业离我们还很遥远?
  4. 光辉岁月:人工智能的那些人和事(1)
  5. 工业互联网的十大关键传感器
  6. 神经科学中的数学之美
  7. 今年的谷歌I/O大会,或许会有这些东西
  8. 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?
  9. 基因对智力的预测能力不到7%,别迷信它
  10. 华为公布车联网进展:年内将覆盖10万网联车