原文:WPF画图の利用Path画扇形(仅图形)

一、画弧

Path继承自Sharp,以System.Windows.Shapes.Shape为基类,它是一个具有各种方法的控件。

我们先看一段xaml代码:

画出图形的效果如下:

如上红色部门。

Path的属性 Stroke无可置疑,就是决定颜色,Fill作为内部填充颜色。

Path.Date就是决定了这个Path的数据信息

PathGeometry是绘图逻辑(要绘制的图形,只能用Path表现出来),不是控件;也可以用数值的形式标识出来(后面说明)

PathFigure是几何图形的子部分,需要指定StartPoint,它有一个集合Segments,里面是各种类型的Segment(部分)

ArcSegment是椭圆弧  Point值得是到达点,size是X、Y轴,SweepDirection设置画的方向,RotationAngle标识旋转角度

IsSmoothJoin表示是不是和上一个链接部分是角,默认False,IsLargeArc标识是优弧还是劣弧,默认劣弧,

IsStroke是否显示边

二、有了上面的基础,我们画一个扇形

三、下面我用数值表示

wpf 前台绘制圆弧很简单,如:

注解:M 起始点 (100,0)  A 尺寸(X50,Y100半径) 圆弧旋转角度值(0) 优势弧的标记(否,弧角度小于180) 正负角度标记(0 逆时针画圆) 结束点(100,200)

下面是两个半圆连接到一起,其余的类似,只要添加数据就可以

基本是一段A表示一段弧 A 50,50 0 0 0 100,200 ,一段L表示一段线L 300,300,另起线段要声明M

四、后台代码实现

后台动态绘制圆弧,切入点ArcSegment,一步步摸索出绘制方法。

ArcSegment(Point point, Size size,double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, boolisStroked);

由于Point是结束点,需要定义起始点StartPoint,尝试还真有这个属性,后台绘制就出来了。代码如下

Path path= newPath();

PathGeometry pathGeometry= newPathGeometry();

ArcSegment arc= new ArcSegment(new Point(100, 200), new Size(50, 100), 0, false, SweepDirection.Counterclockwise, true);

PathFigure figure= newPathFigure();

figure.StartPoint= new Point(100, 0);

figure.Segments.Add(arc);

pathGeometry.Figures.Add(figure);

path.Data=pathGeometry;

path.Stroke=Brushes.Orange;

canvas.Children.Add(path);

五、Date指令详解

1. 移动指令:Move Command(M):M 起始点  或者:m 起始点

比如:M 100,240或m 100,240

使用大写M时,表示绝对值; 使用小写m时; 表示相对于前一点的值,如果前一点没有指定,则使用(0,0)。

2. 绘制指令(Draw Command):

我们可以绘制以下形状:

(1) 直线:Line(L)格式:L 结束点坐标 或: l 结束点坐标。

(2) 水平直线: Horizontal line(H)格式:H x值 或 h x值(x为System.Double类型的值)

(3) 垂直直线: Vertical line(V)格式:V y值 或 v y值(y为System.Double类型的值)

(4) 三次方程式贝塞尔曲线: Cubic Bezier curve(C)格式:C 第一控制点 第二控制点 结束点 或 c 第一控制点 第二控制点 结束点

(5) 二次方程式贝塞尔曲线: Quadratic Bezier curve(Q)格式:Q 控制点 结束点 或 q 控制点 结束点

(6) 平滑三次方程式贝塞尔曲线: Smooth cubic Bezier curve(S)格式:S 控制点 结束点 或 s 控制点 结束点

(7) 平滑二次方程式贝塞尔曲线: smooth quadratic Bezier curve(T)格式:T 控制点 结束点 或 t 控制点 结束点

(8) 椭圆圆弧: elliptical Arc(A)

Z指令,它就是一个关闭指令(close Command),表示封闭指定形状,即将首尾点连接起来形成封闭的区域。

上面每种形状后用括号括起的英文字母为命令简写的大写形式,但你也可以使用小写。使用大写与小写的区别是:大写是绝对值,小写是相对值。

c语言图形学画扇形代码,WPF画图の利用Path画扇形(仅图形)(示例代码)相关推荐

  1. python画三维立体图完整代码_如何用Matplotlib 画三维图的示例代码

    最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散 ...

  2. python 画三维函数图-如何用Matplotlib 画三维图的示例代码

    最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感 三维的线图和散 ...

  3. python画三维立体图-如何用Matplotlib 画三维图的示例代码

    用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平 ...

  4. python怎样画立体图-如何用Matplotlib 画三维图的示例代码

    用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平 ...

  5. 猜猜乐游戏php源码,C/C++百行代码实现热门游戏消消乐功能的示例代码

    游戏设计 首先我们需要使用第三方框架,这里我使用的是sfml,不会使用sfml在我的上几篇文章当中-扫雷(上)有详细的开发环境搭建介绍 首先准备图片资源 一张背景图片,一张宝石图片 窗口初始化加载图片 ...

  6. css3半圆弧线,css3实现画半圆弧线的示例代码

    本文介绍了css3实现画半圆弧线的示例代码,分享给大家,具体如下: css代码 .circle1 { width: 100px; height: 200px; border: 1px solid bl ...

  7. php消消乐代码,C/C++百行代码实现热门游戏消消乐功能的示例代码

    游戏设计 首先我们需要使用第三方框架,这里我使用的是sfml,不会使用sfml在我的上几篇文章当中-扫雷(上)有详细的开发环境搭建介绍 首先准备图片资源 一张背景图片,一张宝石图片 窗口初始化加载图片 ...

  8. html语言闪烁特效代码,css3 实现文字闪烁效果的三种方式示例代码

    1.通过改变透明度来实现文字的渐变闪烁,效果图: 文字闪烁 星星之火可以燎原 .myclass{ letter-spacing:5px;/*字间距*/ color: red; font-weight: ...

  9. 支持向量机python代码_用TensorFlow实现多类支持向量机的示例代码

    这篇文章主要介绍了用TensorFlow实现多类支持向量机的示例代码,现在分享给大家,也给大家做个参考.一起过来看看吧 本文将详细展示一个多类支持向量机分类器训练iris数据集来分类三种花. SVM算 ...

最新文章

  1. Swift来了,是不是可以入手IOS开发了?
  2. wxWidgets:国际化
  3. boost::hana::decltype_用法的测试程序
  4. struts codenips
  5. SpringCloud Ribbon(二)之自定义负载均衡策略IRule
  6. 线性单链表存储结构c语言代码,单链表定义-(线性表的链表存储结构)
  7. php xml getattribute,PHP XMLReader getAttribute()用法及代码示例
  8. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02) A Amusing Numbers (数学)
  9. java 命令设计模式_Java设计模式之命令设计模式
  10. Cocos2d入门--2-- 三角函数的应用
  11. CAD 使用 颜色 线型
  12. ffmpeg添加到环境变量_Windows 10系统下安装FFmpeg教程详解
  13. 群晖6.1安装php3.6_教程分享 --- jun大神 VMWare虚拟机安装黑群晖 (DSM6.1)
  14. android系统设置默认字体,如何获取Android设备的默认字体?
  15. 王者荣耀战区实时战力查询
  16. ligerui 用html 来初始化 ligerform
  17. 【已解决】导入tensorflow报错/python已停止工作/The kernel appears to have died
  18. 安卓设备互相投屏_安卓投屏电脑版-安卓投屏下载v7.9.1-IE浏览器中文网站
  19. nginx通过获取环境变量实现动态IP代理配置
  20. 恒生指数、国企指数以及红筹股指数

热门文章

  1. 和信锐智陶建辉:金融危机降低人才使用成本
  2. PID控制参数调整过程图
  3. jsonp跨域的原理以及优缺点
  4. 我的中秋节祝福程序源代码分享:月圆人团圆,中秋来赏月
  5. 【CV】第 13 章:用于处理图像的高级 GAN
  6. CentOS新增用户使用密钥对登录
  7. wordpress加速,清理
  8. python entry.stringvar_tkinter entry widg中的StringVar()错误
  9. css 3D星空特效
  10. QS(Quacquarelli Symonds)公布的2011世界大学排名