WebGIS裁剪算法-线裁剪多边形】的更多相关文章

在gis系统中 经常会用到一些裁剪的方法,首先推荐一个非常好用的空间分析JavaScript库--Turf.js,不仅功能强大.使用简单,同时处理速度也很快. Turf.js中提供了一中多边形的裁剪方法是使用多边形去裁剪多边形,但是如果实际工作中需要使用到线去裁剪多边形却无法满足. http://turfjs.org/docs#bboxClip 这边文章使用turf.js的基本方法,在此基础上构建了线裁剪多边形的方法. 点击可查看在线demo demo预览 算法原理 (一)单个polygon的裁…
这节简单介绍了梁友栋-Barsky裁剪算法的原理,只有结论并没有过程,看过http://blog.csdn.net/daisy__ben/article/details/51941608这篇文章后,大概有了新的认识. " 假设点P1P2W1W2的横坐标分别是x1,x2,w1,w2,线段P1P2与蓝色裁剪窗口W1W2(蓝色的线之间)的存在公共部分(可见部分)的充要条件是: max(min(x1,x2), min(w1,w2))≤ min(max(x1,x2), max(w1,w2)) 即所谓左端点…
0.补充知识向量点积:结果等于0, 两向量垂直; 结果大于0, 两向量夹角小于90度; 结果小于0, 两向量夹角大于90度.直线的参数方程:(x1, y1)和(x2, y2)两点确定的直线, 其参数方程为x = x1+u(x2-x2); y = y1+u(y2-y1) 1.前言Liang-Barsky算法是 Cyrus-Beck 算法的特例, 我们先来简单的了解Cyrus-Beck算法, Cyrus-Beck算法本质是每次通过裁剪窗口(任意凸多边形, 文章最后会说明为什么凹多边形不行)的一条边界…
Nicholl-Lee-Nicholl二维线段裁剪算法相对于Cohen-Sutherland和Liang-Barsky算法来说,在求交点之前进行了线段端点相对于几个区域的判断,可以确切的知道要求交点的边的信息. 此方法只在二维空间裁剪时使用,C-S和L-B裁剪方法则可应用到三维空间. 算法步骤: 1 先使用C-S裁剪算法的区域码判断方法,去除一部分在裁剪区域外面的线段.显示在完全在裁剪区域内的线段.其他不能判断的情况,采用NLN算法进行裁剪. 2 p1和p2若有一点在区域内,必要时交换端点以确保…
Liang-Barsky直线段裁剪算法 梁友栋与Barsky提出的裁剪算法以直线的参数方程为基础,把判断直线段与窗口边界求交的 二维裁剪问题转化为求解一组不等式,确定直线段参数的一维裁剪问题.设起点为P0(X0,Y0), 终点为P1(X1,Y1)的直线段参数方程为: P=P0+t(P1-P0) 展开形式为: X=X0+t(X1-X0) Y=Y0+t(Y1-Y0)…
CGA裁剪算法之线段裁剪算法 常用的线段裁剪算法有三种:[1]Cohen_SutherLand裁剪算法,[2]中点分割裁剪算法,[3]参数化方法. 1. Cohen_SutherLand裁剪算法 为了能快速的判断一条直线与矩形窗口属于何种位置关系,Cohen_SutherLand裁剪算法采用如下的编码方案,因此又称为“编码裁剪算法”. 在编码裁剪算法中采用了如下图所示的空间划分和编码方案: 编码的[上, 下, 右, 左], 即上: 1000, 下:0100,右:0010, 左:0001,分别对应…
需求 . 在计算机中,选区是一个很常见的功能,例如windows按住鼠标左键拖动划出矩形选区,Photshop通过钢笔工具任意形状选区.选区本身不过是通过线段闭合的一个几何形状,但是如何填充这个选区,则是一件相对棘手的问题. 光栅化 . 要在屏幕显示填充的图形,必然要将图形光栅化到屏幕上,而目前所有的底层图形API仅支持对三角形的填充,因此要实现任意形状填充需要将这个形状切割成多个三角形,再通过图形API进行绘制. . 上图是一个简单又不简单的选区,通过6个点组合出一个简单的几何形状,但不简单的…
1.1  按属性裁剪 操作视频: https://weibo.com/tv/v/HwaZRoosq?fid=1034:4376687438183117 按属性裁剪:可以图形表,也可以是非图形表,字段值相同导出一个数据,输出数据可以是数据库,也可以是文件夹,生成SHP或DBF. 输入表(要素):可以是表,或者要素 裁剪字段:字段值相同导出一个图层,如果是数字导出到数据库,由于数据库不能数字开头,前面自动加YL 输出空间:选文件夹导出SHP(DBF),选数据库导出到数据库 1.2  矢量数据批量裁剪…
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace cutLine { unsafe public partial class Form1 : Form { ; ;…
经常遇到需要在ArcGIS中,根据已知线图层(要素)切分已知面图层(要素).经过研究,利用topology拓扑菜单中的construct features可以实现.具体如下 现有用线图层A.面图层B,需使用A图层分割B图层,操作步骤如下: 1.打开Editor编辑工具条,单击Start Editing开始编辑. 2.调出topology拓扑菜单. 3.全选线层:右键单价A依次执行“选择/选择全部”. 4.点击拓扑工具条的工具构建要素(construct features). 5.在弹出的对话框中…