矢量

shader入门精要读书笔记06 数学基础

倖福魔咒の 提交于 2020-01-30 14:50:39
第四章 数学基础 一、坐标系 笛卡尔坐标系,分为二维三维。 二维坐标系 OpenGL是左下角为0,DirectX是左上角。 三维坐标系,3个坐标轴也被称为基矢量,长度为1的基矢量叫做标准正交基,长度不唯1的叫正交基。 三维笛卡尔坐标系又分为左手坐标系与右手坐标系。 Unity使用的是左手坐标系,摄像头的观察空间是右手坐标系(摄像头前方为z轴的负方向)。 二、点和矢量 矢量:有方向有模,没有位置。 点:只是一个位置。 矢量的加减乘除运算,模运算。 单位矢量:被归一化的矢量。通过在矢量上方加个^来表示是矢量的模。 单位矢量的运算:通过矢量除以矢量的模来进行计算。 单位矢量计算通常使用在法线方向、光源方向等。 矢量的点积(内积/点乘): 点积就是可以确定两个矢量的方向关系。投影长度=标量。 点乘结果>0 :两个矢量方向关系为<90°。(=0 : 垂直,<0 : >90°) 求适量的模可以将矢量对其自身进行点乘,运算后开方。 a·b=|a||b|cos夹角 矢量的叉积(外积/叉乘): 叉积结果是矢量,不满足交换律,叉积的结果是得到一个同时垂直于这两个矢量的新矢量。 使用左手定则,右手定则来判断在不同坐标系中,新得到的矢量方向。 |a×b|=|a||b|sin夹角 我们可以通过点乘(cos值)来确定某两个矢量的夹角关系。 还可以通过叉乘判断一个面的正面反面(通过确定面上的三个点的顺时针

Mapnik初学笔记

时间秒杀一切 提交于 2020-01-26 07:20:47
  前言:夏天总是感觉想要睡觉,一心想颓废的我却要一周六天都要处于工作状态,但有些事虽然麻烦,但还是要去做,不由得想起火影忍者里面鹿丸这一个角色,有时候真能理解他的心理状态,或许我应该向他学习:善于思考的头脑+悠然自得的生活状态。前阵子想玩node.js,这几天因为看单反教程和修图给暂停了,现在有一个关于地图的项目要去做,有一个有趣的工具叫做mapnik,不知道你们有没有听说过,反正我是没听说过,不过让我惊喜的是mapnik能和node.js一起玩,哎呦,不错哦,这个叼。 Mapnik: Mapnik 是一个用来开发 GIS (即地理信息系统)应用程序的工具包,其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。特别是包含一些地理对象,如地图、层、数据源、特征和地理几何等。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。 从另一种角度解释,Mapnik是一个开源的Python/Node.js/C++地图渲染引擎,其功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过一个样式表的定义,渲染成位图格式,用来提供网络地图服务(WMS服务)。 矢量瓦片: 矢量瓦片是 将矢量数据转换成图片块 ,用于在线地图,借助瓦片的缓存机制,实现可缩放的地图呈现服务,每一个图片块都代表一个坐标区域。

平面极坐标系下质点的运动方程

烈酒焚心 提交于 2020-01-26 01:00:11
一、平面极坐标系定义 1. 定义 在参考系上取一点 O O O 称为极点,由 O O O 点引一有刻度的射线,称之为极轴,即构成极坐标系。 2. 极坐标系 质点的位置 P P P 由极径 ρ \rho ρ 和幅角 θ \theta θ 给出。如下图所示。 ρ \rho ρ :极径,极点到质点的距离 θ \theta θ :幅角或极角,极径与极轴的夹角,规定角度取逆时针方向为正 3. 正交单位矢量 径向单位矢量 i \bm{i} i :方向从极点指向质点。则矢径 r = ρ i \bm{r} = \rho \bm{i} r = ρ i 。 横向单位矢量 j \bm{j} j :方向与径向单位矢量垂直,且指向 θ \theta θ 增加的方向。 4. 正交单位矢量对时间 t 的导数的计算 设初始时刻质点位置为 P 1 P_{1} P 1 ​ ,经过时间 d t dt d t ,质点位置为 P 2 P_{2} P 2 ​ ,幅角变化量为 d θ d\theta d θ 。如下图所示。 4.1 径向单位矢量 i \bm{i} i 经过时间 d t dt d t ,径向单位矢量由 i 1 \bm{i}_{1} i 1 ​ 变化到 i 2 \bm{i}_{2} i 2 ​ ,转过的角度为 d θ d\theta d θ 。 d i = i 2 − i 1 d\bm{i}=\bm{i}_{2}-

PIE SDK矢量数据的创建

谁说胖子不能爱 提交于 2020-01-20 04:40:52
1. 功能简介 GIS将地理空间数据表示为矢量数据和栅格数据。矢量数据模型使用点、线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点、河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联。栅格数据模型使用一个格网和格网元胞(像元)代表空间要素,元胞值表示该元胞位置的空间要素属性。栅格数据模型适用于表示连续的要素,如海拔和降水量。 [ 矢量数据模型 ] [ 栅格数据模型 ] PIE支持多种矢量数据的创建,下面对矢量数据格式的数据创建功能进行介绍。 2. 功能实现说明 2.1 Shape 数据介绍 Shapefile是由ESRI开发后被广泛应用的数据格式,它采用文件的方式分开存储数据的控件信息和属性信息,但其不能存储拓扑关系,具有简单、快速显示的优点。一个Shape数据的文件结构如下所示: [Shape 数据文件结构 ] 编号 后缀 文件说明 1 .shp 基本文件,存储地理要素的几何图形信息; 2 .dbf 基本文件,存储地理要素的属性信息; 3 .shx 基本文件,存储图形要素与属性信息的索引; 4 .prj 可选文件,存储数据的空间参考信息; 5 .sbn/.sbx 可选文件,存储数据的空间索引信息(ESRI创建的空间索引); 6 .qix 可选文件,存储数据的空间索引信息(PIE创建的空间索引); [Shape 数据文件结构说明 ] 2.2 实现思路及原理说明

使用Arcgis Pro 发布矢量切片

你说的曾经没有我的故事 提交于 2020-01-16 07:25:52
ArcGIS Pro 中的任何地图或底图都可以创建矢量切片,但是有一些局限性和特殊注意事项。为创建矢量切片制作地图的重点是构建一个有效的地图,以快速绘制生成的切片。 软件环境   操作系统:Windows server 2008 R2   GIS环境:Arcgis Pro 1.3,Arcgis Server 10.4 +Portal +DataStore +WebAdapter 矢量切图要求: 矢量切片仅能通过 地图 和 底图 创建而无法通过场景创建。 用来创建矢量切片的地图必须使用 WGS 1984 Web 墨卡托辅助球体坐标系 , 并且 必须 将 ArcGIS Online/Bing 地图/Google 地图切片方案作为地图比例列表的参考。 该地图不能使用 参考比例 。 矢量切片 仅 能通过 点、线、面或多点要素图层 创建。如果地图包括其他图层,请在 内容窗格中将其关闭或将这些图层从地图中完全移除。确保已定义了地图的元数据;至少应该指 定 描述字段 。    参考网页 (如打不开此地址,请自行翻墙) 来源: https://www.cnblogs.com/jinlun/p/6823560.html

openlayer加载矢量切片

随声附和 提交于 2020-01-16 00:27:33
数据是GIS的灵魂,没有数据也就谈不上GIS了,数据分为矢量数据和栅格数据,栅格数据也有一些短处,缺乏灵活性、实时性,数据完整性受损是比较突出的问题,矢量数据不同于栅格数据,比较灵活,数据完整,将两者结合诞生出—>矢量切片,不要被矢量这个词迷惑,矢量切片是不可被编辑的, 不可编辑不代表不能获取其属性信息 。 矢量数据的优点: 矢量切片可以以三种形式呈现:GeoJSON、TopoJSON 和 MapBox Vector Tile(.mvt),矢量切片技术继承了矢量数据和切片地图的双重优势,有如下优点: 1、 对于栅格切片,更灵活,更细粒度的数据划分,要素级别; 2、 数据信息接近无损,但体积更小,请求指定地物的信息,直接在客户端获取,无需再次请求服务器; 3、样式可改变和定制(重点),矢量切片可以在客户端或者服务器端渲染,可以按照用户赋予的样式渲染; 4、对于原始矢量数据,更小巧,采用了重新编码,并进行了切分,只返回请求区域和相应级别的数据; 5、数据更新快,或者说是实时的,当数据库中的空间数据变化后,再次请求的数据是改变后的,在客户端渲染后既是最新的情况; 6、 更灵活,可以只是返回每个专题数据的图层,而不是像栅格切片把很多专题数据渲染在一个底图中。 详细介绍参考 https://blog.csdn.net/qingyafan/article/details/53367204

LeaFlet加载矢量切片

我的未来我决定 提交于 2020-01-15 05:04:02
已经谢过了Openlayer的矢量切片,在这里写一篇关于LeaFlet加载矢量切片的文章,关于矢量切片的概念可以参考我写OpenLayer加载矢量切片的那篇文章 传送文章 一、效果图 二、需要用到的插件 leaflet 需要使用插件 L.vectorGrid.protobuf 这只是插件的一个类用来加载pbf,L.VectorGrid.Slicer用来加载geojson和topojson, api文档 三、全部代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>LeaFlet加载矢量切片</title> <link href="../script/leaflet/leaflet.css" rel="stylesheet" /> <script src="../script/leaflet/leaflet.js"></script> <script src="https://unpkg.com/leaflet.vectorgrid@latest/dist/Leaflet.VectorGrid.bundled.js"></script> <script src="https://unpkg.com/leaflet.vectorgrid@latest/dist/Leaflet.VectorGrid.js"><

CSharp中的Vector结构

混江龙づ霸主 提交于 2020-01-13 13:57:46
本节将开发一个结构Vector,来演示运算符重载,这个Vector结构表示一个三维矢量。如果数学不是你的强项,不必担心,我们会使这个例子尽可能简单。三维矢量 只是三个(double)数字的一个集合,说明物体和原点之间的距离,表示数字的变量是x、y和z,x表示物体与原点在x方向上的距离,y表示它与原点在y方向上的距离, z表示高度。把这3个数字组合起来,就得到总距离。例如,如果x=3.0, y=3.0, z=1.0,一般可以写作(3.0, 3.0, 1.0),表示物体与原点在x方向上的距离是3,与原点在 y方向上的距离是3,高度为1。 矢量可以与矢量或数字相加或相乘。在这里我们使用术语"标量"(scalar),它是数字的数学用语-- 在C#中,就是一个double。相加的作用是很明显的。如果先移动(3.0, 3.0, 1.0),再移动(2.0, -4.0, -4.0),总移动量就是把这两个矢量加起来。矢量的相加是指把每个元素分别相加,因此得到(5.0, -1.0,-3.0)。此时,数学表达式总是写成c=a+b,其中a和b是矢量,c是结果矢量。这与使用Vector结构的方式是一样的。 注意: 这个例子是作为一个结构来开发的,而不是类,但这并不重要。运算符重载用于结构和类时,其工作方式是一样的。 下面是Vector的定义-- 包含成员字段、构造函数和一个ToString()重写方法

聊聊GIS数据的四个分层与GIS服务

时光怂恿深爱的人放手 提交于 2020-01-13 04:48:11
本篇不讨论矢量栅格数据的结构,也不讨论矢量与栅格的区别(即设定读者有这方面的基础)。 版权声明:原创。博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://www.cnblogs.com/onsummer/p/12082568.html 本文系概念性很强的博客,但对GIS项目有帮助,对在读的学生也有一定帮助。 尽管从物理的角度,只有独立数据文件(shp、geojson、tif等)或者数据库(esri geodatabase的gdb、geopackage等)这两种 但是,从学科角度,即从GIS的视角看,地理数据并没有那么简单。 为解释简便,使用shapefile、geojson、tif栅格和gdb、postgis,辅助ArcMap/QGIS 3.10做解说。 1. 术语及概念定义 ① 地理数据 地理数据=空间数据+非空间数据;也叫地理信息。例如:一座医院;一所学校;一条道路;一条河流 ② 空间数据 即几何数据,描述坐标、形状的数据;也叫空间信息。例如:形状、坐标 ③ 非空间数据 即属性数据,描述与空间位置无关的一类数据。例如:成绩单、医院名称列表 这类数据的特点是,如果脱离了地理位置也有它本身自己的含义。 2. 矢量数据的四个分层 [暂空,过年前写完] 不妨这样想:每一层均为子一层的容器。大鱼吃小鱼,小鱼吃虾米。 2.1. 几何/属性层

视频编解码 基本概念:GOP

泄露秘密 提交于 2020-01-08 19:12:51
前言 产品开发要求添加视频剪辑功能,翻阅有关的文档,查到了GOP(group of pictures)这个概念。 解析 GOP说白了就是两个I帧之间的间隔.比较说GOP为120,如果是720p60的话,那就是2s一次I帧. ​ 在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧。 ​ ● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码 ​ ● P帧即Predictive-codedPicture(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码 ​ ● B帧即Bidirectionallypredicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图 像帧(I帧或P帧),也需要后来的图像帧(P帧),采用运动预测的方式进行帧间双向预测编码   在视频编码序列中,GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离(如下图3.1)。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧(如下图3.1所示)。 I、P、B帧示意图   所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大