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-分治法的更多相关文章

  1. win10 uwp 分治法

    其实我想说Path,因为最近在做一个简单的分治. 算法涉及到了一个平面几何的知识.就是三角形p1p2p3的面积等于以下行列式的二分之一: 而且当点P3 在射线P1P2的左侧的时候,表达式为正,右侧表达 ...

  2. win10 uwp 入门

    UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...

  3. win10 uwp 使用 Microsoft.Graph 发送邮件

    在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...

  4. python 实现分治法的几个例子

    分治法所能解决的问题一般具有以下几个特征: 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质. 3) 利用该问题分解出的子 ...

  5. Leetcode 240 Search a 2D Matrix II (二分法和分治法解决有序二维数组查找)

    1.问题描写叙述 写一个高效的算法.从一个m×n的整数矩阵中查找出给定的值,矩阵具有例如以下特点: 每一行从左到右递增. 每一列从上到下递增. 2. 方法与思路 2.1 二分查找法 依据矩阵的特征非常 ...

  6. 分治法及其python实现例子

    在前面的排序算法学习中,归并排序和快速排序就是用的分治法,分治法作为三大算法之一的,有非常多的应用例子. 分治法概念 将一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题-- ...

  7. win10 uwp 商业游戏

    本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...

  8. python编写PAT 1007 Maximum Subsequence Sum(暴力 分治法 动态规划)

    python编写PAT甲级 1007 Maximum Subsequence Sum wenzongxiao1996 2019.4.3 题目 Given a sequence of K integer ...

  9. Win10 UWP版《芒果TV》v2.4.0直播超女,芒果台综艺一网打尽

    Win10 UWP版<芒果TV>直播超女,芒果台综艺一网打尽 Win10版UWP<芒果TV>自2015年9月登录商店以来,一直在持续更新,积极改进,拥有芒果台视频的独家点播和直 ...

  10. Leetcode Lect4 二叉树中的分治法与遍历法

    在这一章节的学习中,我们将要学习一个数据结构——二叉树(Binary Tree),和基于二叉树上的搜索算法. 在二叉树的搜索中,我们主要使用了分治法(Divide Conquer)来解决大部分的问题. ...

随机推荐

  1. [洛谷P3486]POI2009 KON-Ticket Inspector

    问题描述 Byteasar works as a ticket inspector in a Byteotian National Railways (BNR) express train that ...

  2. Task2.设立计算图并自动计算

    1.numpy和pytorch实现梯度下降法 import numpy as np # N is batch size; N, D_in, H, D_out = 64, 1000, 100, 10 # ...

  3. LeetCode--040--组合总和 II(java)

    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. ...

  4. Spring Boot Shiro

    Shiro 核心 API Subject:用户主体(每次请求都会创建Subject). principal:代表身份.可以是用户名.邮件.手机号码等等,用来标识一个登录主体的身份. credentia ...

  5. java文件断点上传

    1,项目调研 因为需要研究下断点上传的问题.找了很久终于找到一个比较好的项目. 在GoogleCode上面,代码弄下来超级不方便,还是配置hosts才好,把代码重新上传到了github上面. http ...

  6. SpringBoot怎么访问html文件

    pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  7. [CSP-S模拟测试]:传递(暴力+bitset)

    题目描述 我们称一个有向图$G$是传递的,当且仅当对于图$G$的三个不同顶点$a,b,c$,若图$G$中有一条边从$a$到$b$且有一条边从$b$到$c$,那么图中也有一条边从$a$到$c$.我们称一 ...

  8. cordova+vue做的app解决引入cordova-plugin-splashscreen后启动先显示黑屏在显示启动页

    先上项目目录结构cordova项目结构 android platform 结构 图中用红框框起来的为主要修改文件 这篇主要的讲cordova项目引用了cordova-plugin-splashscre ...

  9. Flask学习 3 url_for的使用

    #!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: cxa @file: flask0 ...

  10. 轮询,WebSocket和P2P--记一次QQ交谈IM

    问题: