几何算法
文章平均质量分 76
_学而时习之_
这个作者很懒,什么都没留下…
展开
-
判断点是否在多边形的内部(C#)
要判断点是否在多边形的内部,适用于任意多边形的方法最常用的就是射线法,即以要判断的点向左或者向右作水平射线,与多边形交点的个数为奇数个时则在多边形的内部,若为偶数个交点时则在多边形的外部,其中0个交点也为偶数个交点。依据该原理,于是有了第一种实现 /// /// 判断点是否在多边形内. /// ----------原理----------原创 2015-10-13 09:17:02 · 10524 阅读 · 6 评论 -
C#判断线段是否相交
线段是否相交,一种是从几何上就是判断两个线段有没有交点,还有一种是通过向量叉乘(也就是向量积)来判断。因为向量叉乘的结果是一个垂直于原来两个向量的新向量,可以简单的理解为垂直于原来两向量所在平面的向量。我们来看图 /// <summary> /// 线段是否相交 /// </summary> /// <p...原创 2017-04-20 17:14:17 · 5853 阅读 · 5 评论 -
漫水填充(泛洪填充、油漆桶)的C#实现(解决堆溢出问题)
漫水填充也叫泛洪填充,是画图软件中的油漆桶功能,但在运用中,远不止于此,比如构造一个矩阵数据,需要检测边界,在边界的内外填入不同的数据。油漆桶是对图形的快速填充,将图象以位图数据的形式来看,其实也是一个矩阵数据或者说是二维数组,所以我们如果以数字作为矩阵数据,那么只需检测里面的数据即可。然后将数据再绘制成图像,那就是油漆桶的功能。为了保存数据,我们定义了一个数字矩阵,并在矩阵中实现相应的填充方法,原创 2017-06-22 11:11:47 · 2718 阅读 · 3 评论 -
椭圆的曲线模拟
圆的模拟只要使用正多边形就可以实现,主要代码如下 private void TestCirlce(Graphics g) { int n = 36; var x0 = 500f; var y0 = 400f; var r = 50f; List list =原创 2017-07-21 17:30:43 · 1436 阅读 · 0 评论 -
图像轮廓的提取
对图像边缘提取,常见的方式是先对图片进行灰度处理,然后再利用图像梯度算法提取出边框。我们先来看效果图 经过处理后的前后对比,可以看到,图形的轮廓已经大致提取了。现在来看实现的代码using System;using System.Collections.Generic;using System.Drawing;using System.IO;using System.Lin原创 2017-09-15 11:57:19 · 13491 阅读 · 8 评论