Path的Data数据有三种生成方式:

1. 最简单的是用Expression Design。可以粘贴来自其它软件的矢量图形。导出时选择,文件->导出->导出属性->格式->XAML Silverlight 画布,即可得到XAML格式的矢量图形,也就是Path。

2. 如果只是把文字转成图形,相当于印刷行业里的文字转曲,可以直接用Expression Blend。对象->路径->转换为路径,即可。

3. 自己动手写。当然这也是最难的方式。不过对于简单图形来说非常有用。用Design生成的数据量很大,手写就会变得很简洁。命令的使用方法如下:

==============================

1. 移动指令:Move Command(M):M 起始点,或者:m 起始点
比如:M 100,240 或 m 100,240
使用大写M时,表示绝对值; 使用小写m时; 表示相对于前一点的值,如果前一点没有指定,则使用(0,0)。

2. 绘制指令(Draw Command):
(1) 直线:Line(L)
(2) 水平直线: Horizontal line(H)
(3) 垂直直线: Vertical line(V)
(4) 三次方程式贝塞尔曲线: Cubic Bezier curve(C)
(5) 二次方程式贝塞尔曲线: Quadratic Bezier curve(Q)
(6) 平滑三次方程式贝塞尔曲线: Smooth cubic Bezier curve(S)
(7) 平滑二次方程式贝塞尔曲线: smooth quadratic Bezier curve(T)
(8) 椭圆圆弧: elliptical Arc(A)

上面每种形状后用括号括起的英文字母为命令简写的大写形式,但你也可以使用小写。使用大写与小写的区别是:大写是绝对值,小写是相对值。重复使用同一种类型时,就可以省略前面的命令。比如:L 100,200 L 300,400简写为:L 100,200 300,400。

绘制指令格式语法:

(1) 直线:Line(L)
格式:L 结束点坐标 或: l 结束点坐标。
比如:L 100,100 或 l 100 100。坐标值可以使用x,y(中间用英文逗号隔开)或x y(中间用半角空格隔开)的形式。

(2) 水平直线 Horizontal line(H):绘制从当前点到指定x坐标的直线。
格式:H x值 或 h x值(x为System.Double类型的值)
比如:H 100或h 100,也可以是:H 100.00或h 100.00等形式。

(3) 垂直直线 Vertical line(V):绘制从当前点到指定y坐标的直线。
格式:V y值 或 v y值(y为System.Double类型的值)
比如:V 100或y 100,也可以是:V 100.00或v 100.00等形式。

(4) 三次方程式贝塞尔曲线 Cubic Bezier curve(C):通过指定两个控制点来绘制由当前点到指定结束点间的三次方程贝塞尔曲线。
格式:C 第一控制点 第二控制点 结束点 或 c 第一控制点 第二控制点 结束点
比如:C 100,200 200,400 300,200 或 c 100,200 200,400 300,200
其中,点(100,200)为第一控制点,点(200,400)为第二控制点,点(300,200)为结束点。

(5) 二次方程式贝塞尔曲线 Quadratic Bezier curve(Q):通过指定的一个控制点来绘制由当前点到指定结束点间的二次方程贝塞尔曲线。
格式:Q 控制点 结束点 或 q 控制点 结束点
比如:q 100,200 300,200。其中,点(100,200)为控制点,点(300,200)为结束点。

(6) 平滑三次方程式贝塞尔曲线: Smooth cubic Bezier curve(S):通过一个指定点来“平滑地”控制当前点到指定点的贝塞尔曲线。
格式:S 控制点 结束点 或 s 控制点 结束点
比如:S 100,200 200,300

(7) 平滑二次方程式贝塞尔曲线 smooth quadratic Bezier curve(T):与平滑三次方程贝塞尔曲线类似。
格式:T 控制点 结束点 或 t 控制点 结束点
比如:T 100,200 200,300

(8) 椭圆圆弧: elliptical Arc(A) : 在当前点与指定结束点间绘制圆弧。
A 尺寸 圆弧旋转角度值 优势弧的标记 正负角度标记 结束点 或: a 尺寸 圆弧旋转角度值 优势弧的标记 正负角度标记 结束点
尺寸(Size): System.Windows.Size类型,指定椭圆圆弧X,Y方向上的半径值。
旋转角度(rotationAngle):System.Double类型。
圆弧旋转角度值(rotationAngle):椭圆弧的旋转角度值。
优势弧的标记(isLargeArcFlag):是否为优势弧,如果弧的角度大于等于180度,则设为1,否则为0。
正负角度标记(sweepDirectionFlag):当正角方向绘制时设为1,否则为0。
结束点(endPoint):System.Windows.Point类型。
比如:A 5,5 0 0 1 10,10

3. 关闭指令(close Command):用以将图形的首、尾点用直线连接,以形成一个封闭的区域。
用Z或z表示。

F0 指定 EvenOdd 填充规则。
F1 指定 Nonzero 填充规则。
如果省略此命令,则路径使用默认行为,即 EvenOdd。如果指定此命令,则必须将其置于最前面。
EvenOdd 确定一个点是否位于填充区域内的规则,具体方法是从该点沿任意方向画一条无限长的射线,然后计算该射线在给定形状中因交叉而形成的路径段数。如果该数为奇数,则点在内部;如果为偶数,则点在外部。
Nonzero 确定一个点是否位于路径填充区域内的规则,具体方法是从该点沿任意方向画一条无限长的射线,然后检查形状段与该射线的交点。从 0 开始计数,每当线段从左向右穿过该射线时加 1,而每当路径段从右向左穿过该射线时减 1。计算交点的数目后,如果结果为 0,则说明该点位于路径外部。否则,它位于路径内部。

转载于:https://www.cnblogs.com/Dlonghow/archive/2010/03/11/1683885.html

Silverlight 参考: Path的Data生成归总相关推荐

  1. 动手学深度学习第二版 Ubuntu import os os.makedirs(os.path.join(‘..‘, ‘data‘), exist_ok=True)data_f报错

    输入代码报错 os.makedirs(os.path.join('..', 'data'), exist_ok=True) data_file = os.path.join('..', 'data', ...

  2. C++:实现量化Path generation路径生成测试实例

    C++:实现量化Path generation路径生成测试实例 #include "pathgenerator.hpp" #include "utilities.hpp& ...

  3. Lombok的@Data生成的hashCode和equals方法坑

    一.场景复现 创建两个lombok的@Data注解的类Pig实例,放进HashMap当key,map里面的数据居然被覆盖了. package com.mk;import lombok.Data; @D ...

  4. 转:WPF中图形表示语法详解(Path之Data属性语法)

    转自:http://blog.csdn.net/johnsuna/article/details/1885597 大可山 [MSN:a3news(AT)hotmail.com]  http://www ...

  5. MMoE论文中Synthetic Data生成代码(控制多任务学习中任务之间的相关性)

    Synthetic Data 一. 前言 二. 程序实现 2.1 生成一条数据 2.2 生成一组相关系数为p的数据集 2.3 权重系数的余弦相似度与标签相关系数之间的关系 一. 前言 在MMoE论文中 ...

  6. Silverlight 参考:KeyEventArgs.Handled 属性

    用于 Silverlight 的 .NET Framework 类库 KeyEventArgs.Handled 属性 获取或设置一个值,该值将路由事件标记为已处理,并阻止该事件沿事件路由而路由到更多的 ...

  7. Silverlight 参考:三维效果(透视转换) -- MSN

    您可以使用"透视转换"来将三维效果应用于任何 Silverlight UIElement.例如,您可以制造这样一个假象,即对象朝向您或远离您进行旋转,如下图中所示. 使用透视转换的 ...

  8. silverlight中DataGrid错误:data未定义

    <data:DataGrid x:Name="dgEmployee" height="150" margin="8,8,0,0" Ve ...

  9. Q88:全局光照(Global Illumination)——Path Tracing算法生成反射焦散效果的图形

    由于在镜面反射中,光线几乎可以保持来自光源的全部能量,并在表面曲度和折射率的作用下,产生聚焦或者发散,当这种光线接触到场景中其它对象的表面时,又会产生新的照明效果,于是焦散便产生了. 简而言之,即是: ...

最新文章

  1. 教授在飞机上做微积分,被当作恐怖分子抓了......
  2. 数据库笔记1:数据库基本语句
  3. 【 FPGA 】时钟偏斜及其影响
  4. mysqL学习之实例
  5. 如何运用领域驱动设计 - 领域事件
  6. 监听手指是否离开屏幕android_Flutter事件监听
  7. sharing-jdbc实现读写分离及分库分表
  8. Transact-SQL 参考的语法
  9. 手动修改Icon图标的颜色深度(张佩)
  10. 天思经理人ERP日化行业应用方案
  11. 《深入浅出WPF》笔记——资源篇
  12. C# 如何给Excel添加水印
  13. grep的-A-B-选项详解(转)
  14. 4个让你相见恨晚的电脑操作技巧
  15. 数据分析——实习僧数据分析岗招聘信息分析
  16. Python(七)之OS模块
  17. 【Markdown】Typora中文手册
  18. 企业微信聊天框中点击自建应用获取当前聊天外部联系人userid,wx.agentConfig调用
  19. 蓝牙芯片NRF51822入门学习:时间管理
  20. css3实现字体从左到右渐变(原理与思路)

热门文章

  1. 关于Web面试的基础知识点--Html+Css(三)
  2. No module factory available for dependency type: CssDependency
  3. 用.net core实现反向代理中间件
  4. Unity5.1 新的网络引擎UNET(十五) Networking 引用--下
  5. hibernate学习——Set集合配置
  6. 在VUE项目中使用SCSS,从安装步骤到语法说明,带你快速入门!!
  7. JavaScript学习笔记(二)--流程控制语句
  8. Kinect开发学习笔记之(六)带游戏者ID的深度数据的提取
  9. 奥松机器人PHP,Arduino四位七段数码管 LED数码管 4位共阳数码管 显示屏模块
  10. 8086CPU的寄存器