2018-2-13-win10-uwp-分治法
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
win10 uwp 分治法
|
lindexi
|
2018-2-13 17:23:3 +0800
|
2018-2-13 17:23:3 +0800
|
Win10 UWP
|
其实我想说Path,因为最近在做一个简单的分治。
算法涉及到了一个平面几何的知识。就是三角形p1p2p3的面积等于以下行列式的二分之一:
$$
\begin{array}{cccc}
| x1 & y1 & 1 & | \
| x2 & y2 & 1 & | &=\
| x3 & y3 & 1 & | \
\end{array}
$$
$$x1y2+x3y1+x2y3-x3y2-x2y1-x1y3 = x1y2-x2y1+x3*(y1-y2)+y3*(x2-x1)$$
而且当点P3 在射线P1P2的左侧的时候,表达式为正,右侧表达式为负,三点同线的话表达式为0;算法中就利用该几何特性判断一个点在一条线的左侧还是右侧。
参见:http://www.cnblogs.com/Booble/archive/2011/03/10/1980089.html
我们有了一个后台,他可以有很多点,和得到边,我们如何从拿到的List<Point> point画出,和拿到的边的点画出
其实我们可以用简单的Path,如何从Path画点
我们可以使用EllipseGeometry
EllipseGeometry是Geometry,看到Geometry大家会看到Path的Data,是的,我们可以使用
Windows.UI.Xaml.Shapes.Path path = new Windows.UI.Xaml.Shapes.Path
{
Data = new EllipseGeometry()
};
为什么画点我会使用EllipseGeometry,因为我就需要一个点作为中心,X的大小和Y的,然后就是点
Windows.UI.Xaml.Shapes.Path path = new Windows.UI.Xaml.Shapes.Path
{
Data = new EllipseGeometry()
{
Center = point,
RadiusX = 5,
RadiusY = 5
}
};
那么我们需要给点颜色
断句不要弄错,是给 点 ,颜色
实心:Fill = new SolidColorBrush(Colors.Gray),因为我们可以使用简单Colors,如果需要RBG,那么可以使用
Fill = new SolidColorBrush(new Color()
{
R = 0,
B = 0,
G = 0
})
然而这样觉得还是不好,我们本来不用十进制
Fill = new SolidColorBrush(new Color()
{
R = 0x23,
B = 0x54,
G = 0xa
})
博客:blog.csdn.net/lindexi_gd
如果觉得上面代码多:
Fill = new SolidColorBrush(Color.FromArgb(0xff,0xff,0xa,0x2))
我们这样还是好多,不过垃圾的wr没有给我们string转Color,工藤给我微软的自带可以把string转为Color因为简单,我就没有写,现在想要,找了很久,如果需要可以进: 53078485
我们现在已经弄好画点,但是空心没画
Stroke = new SolidColorBrush(Colors.Gray)
这样我们就可以画空心和实心
用之前的代码作为我们后台
我们需要连线
连线
n = point.Count;
PathFigure figures = new PathFigure();
for (int i = 0; i < n; i++)
{
figures.Segments.Add(new LineSegment()
{
Point = point[i]
});
}
figures.Segments.Add(new LineSegment()
{
Point = point[0]
});
figures.StartPoint = point[0];
Windows.UI.Xaml.Shapes.Path path_figure = new Path()
{
Data = new PathGeometry()
{
Figures = new PathFigureCollection()
{
figures
}
},
Stroke = new SolidColorBrush(Colors.Gray)
};
如果觉得这样太快了,我们可以弄个差
PathGeometry path_figure = new PathGeometry();
for (int i = 0; i < point.Count; i++)
{
PathFigure path_segment = new PathFigure()
{
StartPoint = point[i]
};
i++;
LineSegment line = new LineSegment()
{
Point = point[i]
};
path_segment.Segments.Add(line);
path_figure.Figures.Add(path_segment);
}
PathFigure第一个点StartPoint = point[i],LineSegment第二个,path_segment.Segments.Add(line);,把path_segment放在我们外面定义path_figure
这样比第一个会多了path_segment,这个变量命名不对,但是我现在不想去改
代码:https://github.com/lindexi/Algorithm
做完我来运行
2018-2-13-win10-uwp-分治法的更多相关文章
- win10 uwp 分治法
其实我想说Path,因为最近在做一个简单的分治. 算法涉及到了一个平面几何的知识.就是三角形p1p2p3的面积等于以下行列式的二分之一: 而且当点P3 在射线P1P2的左侧的时候,表达式为正,右侧表达 ...
- win10 uwp 入门
UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
- python 实现分治法的几个例子
分治法所能解决的问题一般具有以下几个特征: 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质. 3) 利用该问题分解出的子 ...
- Leetcode 240 Search a 2D Matrix II (二分法和分治法解决有序二维数组查找)
1.问题描写叙述 写一个高效的算法.从一个m×n的整数矩阵中查找出给定的值,矩阵具有例如以下特点: 每一行从左到右递增. 每一列从上到下递增. 2. 方法与思路 2.1 二分查找法 依据矩阵的特征非常 ...
- 分治法及其python实现例子
在前面的排序算法学习中,归并排序和快速排序就是用的分治法,分治法作为三大算法之一的,有非常多的应用例子. 分治法概念 将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题-- ...
- win10 uwp 商业游戏
本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...
- python编写PAT 1007 Maximum Subsequence Sum(暴力 分治法 动态规划)
python编写PAT甲级 1007 Maximum Subsequence Sum wenzongxiao1996 2019.4.3 题目 Given a sequence of K integer ...
- Win10 UWP版《芒果TV》v2.4.0直播超女,芒果台综艺一网打尽
Win10 UWP版<芒果TV>直播超女,芒果台综艺一网打尽 Win10版UWP<芒果TV>自2015年9月登录商店以来,一直在持续更新,积极改进,拥有芒果台视频的独家点播和直 ...
- Leetcode Lect4 二叉树中的分治法与遍历法
在这一章节的学习中,我们将要学习一个数据结构——二叉树(Binary Tree),和基于二叉树上的搜索算法. 在二叉树的搜索中,我们主要使用了分治法(Divide Conquer)来解决大部分的问题. ...
随机推荐
- [python 学习] 类
#!/usr/bin/python # -*- encoding:utf-8 -*- class Animal: animal_num = 0 class Dog(Animal): #类帮助文档 't ...
- DDD领域驱动设计初探(一):聚合
前言:又有差不多半个月没写点什么了,感觉这样很对不起自己似的.今天看到一篇博文里面写道:越是忙人越有时间写博客.呵呵,似乎有点道理,博主为了证明自己也是忙人,这不就来学习下DDD这么一个听上去高大上的 ...
- wangeditor 支持上传视频版
1.关于使用哪个富文本编辑器. 简单的要求,不要求发布出来的文章排版要求很高. 可用wangediter.(简单,体积小,不可修改上传图片的尺寸大小) 转载 来源: https://blog.csd ...
- 用于DataLoader的pytorch数据集
暂时介绍 image-mask型数据集, 以人手分割数据集 EGTEA Gaze+ 为例. 准备数据文件夹 需要将Image和Mask分开存放, 对应文件的文件名必须保持一致. 提醒: Mask 图像 ...
- 传统IO拷贝与零拷贝技术比较
1. 传统IO 由上面图知,传统io需要经过4次copy, 3次状态切换 第一次: 从硬盘 经过 DMA 拷贝 到 kernel buffer (内核buferr) 第二次: 从kernel buff ...
- NodeJS使用puppeteer进行截图
const puppeteer = require('/home/ordinaryUser_2/automation/NodeJS/node/lib/node_global/lib/node_modu ...
- python全栈开发,Day44(IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)
昨日内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yield,greenlet 遇到IO gevent: 检测到IO,能够使用greenlet实现自动切换,规避了IO阻 ...
- Hadoop ”No room for reduce task“问题处理
早上发现一个任务有20个reduce,但是只有四个正常完成,剩余16个等待了8个小时才分配执行(集群槽位资源充足) 解决方法:查看了集群的log,发现有这种warn: -- ::, WARN org. ...
- if isinstance(obj, int):
http://legacy.python.org/dev/peps/pep-0008/ Object type comparisons should always use isinstance() i ...
- 获取小程序accessToken
private static String getAccessToken(){ String url = "https://api.weixin.qq.com/cgi-bin/token? ...