Uniform

Cesium源码剖析---Clipping Plane

拜拜、爱过 提交于 2020-05-01 21:59:31
  之前就一直有写博客的想法,别人也建议写一写,但一直没有动手写,自己想了一下原因,就一个字:懒、懒、懒。为了改掉这个毛病,决定从今天开始写博客了,一方面对自己掌握的知识做一个梳理,另一方面和大家做一个交流,更能深化对问题的理解。废话好像有点多,好了,各位乘客,收起小桌板,系好安全带,要发车喽。   Cesium作为一个开源的webgl三维地球渲染引擎,具备很多的基础功能和高级功能。之前已经有很多文章对Cesium做了相关的介绍以及如何使用API等等,我想和大家分享的是Cesium一些功能的底层实现。作为一个源码研究爱好者,希望能将底层优秀代码和大家分享。我们不是代码的生产者,我们只是代码世界的搬运工,哈哈。听说Cesium最近集成了平面剪裁功能,我们赶紧去看一看。 一 Cesium平面裁剪效果   Cesium裁剪模型的效果如下:                  这就是Cesium中根据一个平面对模型进行裁剪的效果,看上去很神奇。除了可以对单个模型进行裁剪,还支持对3D Tiles模型、地形进行裁剪,裁剪面可以定义成单个面也可以设置成多个面。 二 Cesium平面裁剪调用   在Cesium中添加模型以及对模型进行裁剪非常简单好用,只需下面几行代码就可以实现:  1 var modelEntityClippingPlanes;//定义的裁剪平面集合 2 function

cesium 雷达扫描(附源码下载)

无人久伴 提交于 2020-05-01 10:16:31
前言 cesium 官网的api文档介绍地址 cesium官网api ,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子: cesium 官网在线例子 ,这个也是学习 cesium 的好素材。 内容概览 1.基于cesium 实现雷达扫描 2.源代码 demo 下载 本篇实现 cesium 雷达扫描功能,效果图如下: 实现思路:核心引用 cesium PostProcessStage 类 核心代码 /* 添加雷达扫描线 地形遮挡开启 lon:-74.01296152309055 lat:40.70524201566827 height:129.14366696393927 viewer cartographicCenter 扫描中心 radius 半径 米 scanColor 扫描颜色 duration 持续时间 毫秒 */ function AddRadarScanPostStage(viewer, cartographicCenter, radius, scanColor, duration) { var ScanSegmentShader = "uniform sampler2D colorTexture;\n" + "uniform sampler2D depthTexture;\n" + "varying vec2 v_textureCoordinates;

中心极限定理&&正态分布 随想

北战南征 提交于 2020-05-01 05:15:59
0-前言 笔者本来周末约好朋友出去骑行,不料天公不作美!哎,闲来无事来到了实验室,本来打算看看《天天向上》,而这一期又实在不好看(偶像剧)。只好来做做一些小实验,脑海里突然想到“正态分布“。于是乎我就开始琢磨用中心极限定理去简单验证一下”正态分布“。 1-工具 工具:当然是用的Python啦,嘿嘿。功能强大~ 2-前期储备知识 1) 切尔雪夫不等式, 设随机变量X具有数学期望,方差则对任意正数ε, 不等式成立。 意义: 切尔雪夫不等式说明,X的方差越小,事件发生的概率越大。即:X取的值基本上集中在期望附近。 2) 大数定理 设 ,....是一列相互独立的随机变量(或者两两不相关),他们分别存在期望 和方差 。若存在常数C使得: 意义: 当n很大时,随机变量的平均值Yn在概率意义下无限接近期望。注意:出现偏离是可能的,但这种可能性很小,当n无限大时,这种可能性的概率为0.其中这里有一个误区就是: “概论为0就不发生”,事实上这时错误的。详情还请读者自行查阅。 3) 如何证明大数定理呢? 笔者也是自己证明啦,考虑到要花很长时间才能写出来,就不赘述啦,读者可自行查阅相关资料。在这里我只给出提示:根据Y的定义,求出它的期望和方差,代入切尔雪夫不等式即可! 4) 中心极限定理 当然这里只介绍“独立同分布”的中心极限定理啦,因为我要验证“正态分布”嘛~ 设随机变量X 1 ,X 2 ,.....

Pandas:表计算与数据分析

别等时光非礼了梦想. 提交于 2020-05-01 02:57:54
目录 Pandas之Series Pandas之DataFrame 一、pandas简单介绍 1、pandas是一个强大的Python数据分析的工具包。 2、pandas是基于NumPy构建的。 3、pandas的主要功能 具备对其功能的数据结构DataFrame、Series 集成时间序列功能 提供丰富的数学运算和操作 灵活处理缺失数据 4、安装方法:pip install pandas 5、引用方法:import pandas as pd 二、Series Series是一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。 创建方式: pd.Series([ 4,7,-5,3 ]) pd.Series([ 4,7,-5,3],index=[ ' a ' , ' b ' , ' c ' , ' d ' ]) pd.Series({ ' a ' :1, ' b ' :2 }) pd.Series(0, index =[ ' a ' , ' b ' , ' c ' , ' d’]) 三、Series特性 Series支持数组的特性: 从ndarray创建Series:Series(arr) 与标量运算:sr*2 两个Series运算:sr1+sr2 索引:sr[0], sr[[1,2,4]] 切片:sr[0:2](切片依然是视图形式) 通用函数:np.abs

Hybrid App: 看看第三方WebViewJavascriptBridge是如何来实现Native和JavaScript交互

假装没事ソ 提交于 2020-04-30 21:03:33
一、简介 在前面两篇文章中已经介绍了Native与JavaScript交互的几种方式,依次是JavaScriptCore框架、UI组件UIWebView、WebKit框架,这几种方式都是苹果公司提供的,除了UIWebView在IOS8之后被苹果淘汰了外,其他基本都能很好地满足开发者的使用。作为一个技术人员,每个人心里都有造轮子的想法,可能有时觉得原生的API使用起来感觉还是不够方便,就对苹果原生的API再进行一层封装,这不WebViewJavascriptBridge这个轮子出来了。WebViewJavascriptBridge的star和fork量还是比较高的,仔细看看WebViewJavascriptBridge类文件相当简单,使用起来也很方便,很受开发者欢迎,它的原理还是利用WKWebView或者UIWebView的相关API,通过bridge桥梁来实现OC与JS互相注册和调用。大致结构图如下: 可以看出:OC调用JS,JS需要注册函数; JS调用OC,OC需要注册函数。 二、分析 了解基本原理结构图后,再来看看框架中的类以及它们的作用定义,如下: WebViewJavascriptBridge_JS :Javascript环境的Bridge初始化和处理。负责接收OC发给Javascript的消息,并且把Javascript环境的消息发送给OC。

numpy.random模块用法总结

╄→尐↘猪︶ㄣ 提交于 2020-04-30 03:20:45
from numpy import random numpy.random.uniform(low=0.0, high=1.0, size=None) 生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0) >>> random.uniform() 0.3999807403689315 >>> random.uniform(size=1 ) array([ 0.55950578 ]) >>> random.uniform(5, 6 ) 5.293682668235986 >>> random.uniform(5, 6, size=(2,3 )) array([[ 5.82416021, 5.68916836, 5.89708586 ], [ 5.63843125, 5.22963754, 5.4319899 ]]) numpy.random.rand(d0, d1, ..., dn) 生成一个(d0, d1, ..., dn)维的数组,数组的元素取自[0, 1)上的均分布,若没有参数输入,则生成一个数 >>> random.rand() 0.4378166124207712 >>> random.rand(1 ) array([ 0.69845956 ]) >>> random.rand(3,2 ) array([[ 0.15725424

优化算法系列-遗传算法(1)——基本理论枯燥版本

浪尽此生 提交于 2020-04-28 02:57:24
1.历史背景(不感兴趣可以跳过)   遗传算法(Genetic Algorithm)是模拟生物进化论的 自然选择和遗传学 机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索 最优解 的方法。   遗传算法(Genetic Algorithm)是模拟生物在自然环境中的遗传和进化的过程而形成的 自适应全局优化概率搜索算法 。   1. 1858年,7月1日C.R.达尔文与A.R.华莱士在伦敦林奈学会上宣读了关于进化论的论文。后人称他们的自然选择学说为达尔文·华莱士学说。   2. 1859年,达尔文(Charles Robert Darwin)出版的《物种起源》一书中系统地阐述了他的进化学说   3. 1865年,孟德尔(Gregor Johann Mendel) 发现遗传定律。   4. 1967年,J.H.Holland的学生J.D.Bagley在博士论文中首次提出“遗传算法(Genetic Algorithms)”一词。   5. 1971年,R.B.Hollstien在他的博士论文中首次把遗传算法用于函数优化。   6. 1975年,J.H.Holland出版了他的著名专著《自然系统和人工系统的自适应》(Adaptation in Natural and Artificial Systems),这是第一本系统论述遗传算法的专著,标志着遗传算法的诞生。   7.

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第三节:WebResponse

对着背影说爱祢 提交于 2020-04-27 06:15:46
第二节中,我们介绍了WebRequest,它可以帮助我们发送一个请求,不过正所谓“来而不往非礼也”,对方收到我们的请求,不给点回复,貌似不太合适(不过,还真有脸皮厚的:P)。 接下来,就重点研究一下,我们收到的回复,是个什么样的东东 [Code 1.3.1] 1 // 2 // Summary: 3 // Provides a response from a Uniform Resource Identifier (URI). This is an abstract 4 // class. 5 public abstract class WebResponse : MarshalByRefObject, ISerializable, IDisposable 6 { 7 // 8 // Summary: 9 // Initializes a new instance of the System.Net.WebResponse class. 10 protected WebResponse(); 11 // 12 // Summary: 13 // Initializes a new instance of the System.Net.WebResponse class from the specified 14 // instances of the System.Runtime

雷达无线电系列(二)经典CFAR算法图文解析与实现(matlab)

独自空忆成欢 提交于 2020-04-26 14:00:32
一,CFAR基础知识介绍 简介   恒虚警检测技术是指雷达系统在保持虚警概率恒定条件下对接收机输出的 信号 与噪声作判别以确定目标信号是否存在的技术。 前提   由于接收机输出端中肯定存有噪声(包括大气噪声、人为噪声、内部噪声和杂波等),而信号一般是叠加在噪声上的。这就需要在接收机输出的噪声或信号加噪声条件下,采用检测技术判别是否有目标信号。 误差概率   任何形式的判决必然存在着两种误差概率:发现概率和虚警概率。当接收机输出端存在目标回波信号,而判决时判为有目标的概率为Pd,判为无目标的概率为1-Pad。当接收机输出端只有噪声时,而判为有目标的概率为Pfa。由于噪声是随机变量,其特征可用概率密度函数表示,因此信号加噪声也是一随机变量 [1] 具体过程   恒虚警检测器首先对输入的噪声进行处理后确定一个门限,将此门限与输入端信号相比,如输入端信号超过了此门限,则判为有目标,否则,判为无目标。 方法   为了使系统的虚警概率保持恒定,此门限是随输入噪声变化而进行快速的自适应调整的,噪声处理方法是随噪声的不同分布而异,因而恒虚警检测技术包括恒虚警处理技术和目标检测技术两大部分。恒虚警处理技术包括快门限、慢门限处理技术、目标检测包括似然比检测、二进制检测、序贯检测和非参量检测等 [1]。 二,经典CFAR算法解析与性能图谱展示     ①均值类CFRA  

Python3入门机器学习

时光毁灭记忆、已成空白 提交于 2020-04-25 08:35:46
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是 数据挖掘 分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。 数据预备,这里使用random函数生成10*2的矩阵作为两列特征值,1个10个元素数组作为类别值 import numpy as npimport matplotlib.pyplot as plt x_train = np.random.rand(10,2)*8y_train = np.random.randint(0,2,10) x = np.array([3,4]) k=3plt.scatter(x_train[y_train==1,0],x_train[y_train==1,1],color="red") plt.scatter(x_train[y_train==0,0],x_train[y_train==0,1],color="green") plt.scatter(x[0],x[1],marker='+',color="blue") plt.show() 绿点为类别0,红点为类别1 X_train = np.array(x