随笔分类 -  图形学 & GIS算法

学习计算机图形学和GIS算法的心得体会及整理!
摘要:1.屏幕坐标以像素为单位,地图坐标通常以米为单位,CAD制图默认以毫米为单位。DPI是“dot per inch”的缩写。顾名思义,就是指在每英寸长度内的点数。通常,我们都使用dpi来作为扫描器和打印机的解析度单位,数值越高表示解析度越高。DPI表示分辨率,指每英寸长度上的点数。一般的PC分辨率为96dpi。1英寸=0.0253999999614米获取分辨率: float dx, dy;Graphics g =this.CreateGraphics();try{ dx = g.DpiX; dy = g.DpiY;}finally{ g.Dispose();} 阅读全文
posted @ 2014-04-05 21:44 太一吾鱼水 阅读(230) 评论(0) 推荐(0) 编辑
摘要:OGIS规范定义的几何对象定义Curve:A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve specifying the form... 阅读全文
posted @ 2014-04-01 10:59 太一吾鱼水 阅读(697) 评论(0) 推荐(0) 编辑
摘要:程序代码:http://www.codeproject.com/Articles/30535/A-Simple-QuadTree-Implementation-in-C四叉树: 1 using System; 2 using System.Drawing; 3 using System.Collections.Generic; 4 using System.Diagnostics; 5 6 namespace QuadTreeLib 7 { 8 /// 9 /// A Quadtree is a structure designed to partition space s... 阅读全文
posted @ 2014-03-26 22:14 太一吾鱼水 阅读(679) 评论(0) 推荐(0) 编辑
摘要:绘制线过移动鼠标程中绘制临时线段防闪烁 参考OpenS-CAD想实现绘制线的功能。希望实现绘制线的过程,在移动线的时候没有闪烁和花屏。但是出现了问题,困扰了2天,前天熬的太晚,搞得现在精力都没有恢复。现在终于把问题搞清楚了: 第一个问题:没有给背景图片赋颜色,此时相当于透明。所以每次将图片局部范围重绘产生严重的花屏,绘制的线段残留在屏幕上,将透明的东西绘制是不可能将移动过程中产生的临时线段擦除的。 第二个问题:用当前移动产生的线段包围盒来重绘,其实在本次鼠标移动过程中,应该将上次产生的残留擦除,用上次的包围盒局部重绘。 以下是自己写的一个控件的雏形: 1 using System; ... 阅读全文
posted @ 2014-01-04 21:40 太一吾鱼水 阅读(654) 评论(0) 推荐(0) 编辑
摘要:1. SharpMap中屏幕坐标和地图Map坐标转换: 1 using System.Drawing; 2 using GeoAPI.Geometries; 3 4 namespace SharpMap.Utilities 5 { 6 /// 7 /// Class for transforming between world and image coordinate 8 /// 9 public class Transform10 {11 /// 12 /// Transforms from world coord... 阅读全文
posted @ 2013-12-30 22:20 太一吾鱼水 阅读(1791) 评论(0) 推荐(0) 编辑
摘要:空间直角坐标系与球面坐标互转 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace AppSurveryTools.SphericalAn 阅读全文
posted @ 2013-12-25 22:06 太一吾鱼水 阅读(1817) 评论(0) 推荐(0) 编辑
摘要:开发CAD和GIS绘图系统有些区别,自己试着分析一下。 ♠ 首先CAD图形绘制主要管理图形,因此会有一个抽象的Geometry对象,软件维护一个Geometry对象的集合。如果以图层来管理几何图形,则是每个图层维护一个Geometry对象集合。 Canvas——Layers——Geometrys 点、线、面对象都继承自Geometry,并且有各自的Style属性。 对于点有颜色、大小等属性;线有线型、线宽、颜色、实线/虚线等属性;面有线型、线宽、填充颜色、线框颜色、填充样式等属性。这样Style形成了一个继承层次。 ♠ 其次GIS图形绘制,首先GIS绘图系统维护一个Map对象... 阅读全文
posted @ 2013-12-15 20:20 太一吾鱼水 阅读(803) 评论(1) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2013-11-30 13:08 太一吾鱼水 阅读(67) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2013-11-24 11:08 太一吾鱼水 阅读(44) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2013-11-24 11:07 太一吾鱼水 阅读(74) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2013-11-24 11:07 太一吾鱼水 阅读(65) 评论(0) 推荐(1) 编辑
摘要:1.向量Vector3d 1 using System; 2 3 namespace RGeos.Geometry 4 { 5 /// 6 /// 3D向量类 7 /// 8 public class Vector3d 9 { 10 public double[] vector; 11 private const double E = 0.0000001f; 12 /// 13 /// 14 /// 15 /// 16 ... 阅读全文
posted @ 2013-11-23 12:35 太一吾鱼水 阅读(538) 评论(0) 推荐(0) 编辑
摘要:-1.判断两个线段是否平行 1 inline bool parallel_seg_seg(Segment_2 S1, Segment_2 S2) 2 { 3 Vector_2 u(S1); 4 Vector_2 v(S2); 5 Vector_2 w = S1.source() - S2.sourc 阅读全文
posted @ 2013-11-23 12:25 太一吾鱼水 阅读(790) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2013-11-23 10:33 太一吾鱼水 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Bing Maps Tile System Bing地图瓦片体系 原文链接:http://msdn.microsoft.com/en-us/library/bb259689.aspx https://learn.microsoft.com/en-us/bingmaps/articles/bing-m 阅读全文
posted @ 2013-09-28 12:44 太一吾鱼水 阅读(1622) 评论(0) 推荐(0) 编辑
摘要:最近研究汇流累积量的计算,下了些资料,不过都是英文的看着真的很吃力。搞明白了其中一种方法,是用Matlab写的:7872697158497467564946506953443738486458552231246861472116197453341211121.算法初始值dem高程值矩阵、x坐标值矩阵和y坐标值矩阵。2.返回汇流累积量flowacc、坡度slope。首先计算坡度,采用邻接矩阵36*36表示。[ic1,icd1] = ixneighbors(dem);e = (dem(ic1)-dem(icd1))./hypot(X(ic1)-X(icd1),Y(ic1)-Y(icd1));接着计 阅读全文
posted @ 2013-09-08 21:15 太一吾鱼水 阅读(3030) 评论(0) 推荐(0) 编辑
摘要:http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspxhttp://www.gamedev.net/page/resources/_/technical/artificial-intelligence/a-pathfinding-for-beginners-r2003http://blog.csdn.net/feixiaoxing/article/details/6982932http://www.codeproject.com/Articles/4391/C-A-Star-is-bornhttp://download.csdn. 阅读全文
posted @ 2013-09-03 16:52 太一吾鱼水 阅读(243) 评论(0) 推荐(0) 编辑
摘要:1 // Copyright 2000 softSurfer, 2012 Dan Sunday 2 // This code may be freely used and modified for any purpose 3 // providing that this copyright notice is included with it. 4 // SoftSurfer makes no warranty for this code, and cannot be held 5 // liable for any real or imagined damage resulting fro. 阅读全文
posted @ 2013-08-06 21:57 太一吾鱼水 阅读(588) 评论(0) 推荐(0) 编辑
摘要:1. redo和undo的实现 知道执行了什么命令,影响了那些数据 终止条件和状态2. 这里我犯了个错误,其实我根本不需要知道是执行的什么命令,对于绘图系统,我只需知道对数据产生了那些影响。撤销和重做其实都是针对数据(几何对象)来说的。所有这里只需要在操作(添加几何对象、删除几何对象、修改几何对象、增加节点、删除节点、移动节点等)时另外引一条线,就是UndoRedoBuffer对象,他是一个List,其实如果是栈则更好,用它记录操作影响的数据。注意是操作影响的数据,和上面所说的操作是两个概念。抽象了一个操作影响数据的EditCommandBase类,具体子类有:添加影响数据类,删除影响数据.. 阅读全文
posted @ 2013-07-30 21:49 太一吾鱼水 阅读(421) 评论(0) 推荐(0) 编辑
摘要:一个GIS系统最重要的功能是绘制图形和关联属性,这里研究二维点线面的绘制过程: 对于一个绘图系统设计,图形的绘制涉及两个重要的方面。1.一个是绘制或者重新绘制,重绘过程出现在下面情况: a 界面初始化的时候(全部刷新) b 窗体大小变化的时候(全部刷新) c 编辑图形的过程中,增加、删除、修改(移动图形和移动节点)。这里需要思考是整个画布刷新还是局部刷新。如果画布没有发生变化就应该保持画布上已有的东西,通过缓存图片的方式,局部刷新变化的(新绘制、修改)的部分。否则会出现整个画布闪烁现象。 所谓局部刷新就是只对变化的部分刷新。这里的一种解决方法是,获取缓存图片受影响范围,在此范围重... 阅读全文
posted @ 2013-07-26 22:15 太一吾鱼水 阅读(633) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示