sin

科研总结

扶醉桌前 提交于 2020-01-02 23:54:05
1.利用Python通过经纬度计算两地实际距离 ①公式计算两点间距离(m) from math import radians, cos, sin, asin, sqrt def geodistance(lng1,lat1,lng2,lat2):   #lng1,lat1,lng2,lat2 = (120.12,30.28,115.86,28.74)   lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) #经纬度转换成弧度   dlon=lng2-lng1   dlat=lat2-lat1   a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2   distance=2*asin(sqrt(a))*6371*1000 # 地球平均半径,6371km   distance=round(distance/1000,3)   return distance ②调用geopy包 from geopy.distance import geodesic print(geodesic((30.28,120.12), (28.74,115.86)).m) #计算两个坐标直线距离 print

“等一下,我碰!”——常见的2D碰撞检测

不羁的心 提交于 2020-01-01 22:05:06
转自:https://aotu.io/notes/2017/02/16/2d-collision-detection/ 在 2D 环境下,常见的碰撞检测方法如下: 外接图形判别法 轴对称包围盒(Axis-Aligned Bounding Box),即无旋转矩形。 圆形碰撞 圆形与矩形(无旋转) 圆形与旋转矩形(以矩形中心点为旋转轴) 光线投射法 分离轴定理 其他 地图格子划分 像素检测 下文将由易到难的顺序介绍上述各种碰撞检测方法:外接图形判别法 > 其他 > 光线投射法 > 分离轴定理。 另外,有一些场景只要我们约定好限定条件,也能实现我们想要的碰撞,如下面的碰壁反弹: 当球碰到边框就反弹(如 x/y轴方向速度取反 )。 if(ball.left < 0 || ball.right > rect.width) ball.velocityX = -ball.velocityX if(ball.top < 0 || ball.bottom > rect.height) ball.velocityY = -ball.velocityY 再例如当一个人走到 100px 位置时不进行跳跃,就会碰到石头等等。 因此,某些场景只需通过设定到适当的参数即可实现碰撞检测。 外接图形判别法 轴对称包围盒(Axis-Aligned Bounding Box) 概念:判断任意两个(无旋转

IQ调制原理

梦想与她 提交于 2020-01-01 09:04:26
  现代通信中,IQ调制基本上属于是标准配置,因为利用IQ调制可以做出所有的调制方式。   但是IQ调制到底是怎么工作的,为什么需要星座映射,成型滤波又是用来干嘛的。这个呢,讲通信原理的时候倒是都会泛泛的提到一下,但由于这部分不好出题,所以通常不会作为重点。但换句话说即使目前国内的大部分讲通信原理的老师,恐怕自己也就是从数学公式上理解了一下。真正的物理上的通信过程是怎么样的,恐怕他们也不理解。所以说到底国内的通信课程,大多都停留在“黑板通信”的程度,稍微好一点的呢,做到的“仿真通信”的程度。离实际的通信工程差距很大。这一方面是由于通信系统确实比较庞大,做真实的实验确实难以实施。另外一方面嘛,呵呵……   所以我决定还是要专门开贴来讲一下这个问题,因为我理解这个问题大概用了两年多的时间,到现在为止恐怕也不能算是完全搞明白了。每思至此,我总是会感慨通信博大精深,要做一名合格的通信工程师是非常不容易的。相反,想成为“专家”仿佛还要简单一点,因为只需要抓住一点穷追猛打,至于其它的么……谁愿意研究谁研究,反正老子不管……   首先从IQ调制讲起吧。所谓的IQ调制,冠冕堂皇的说法无法是什么正交信号如何如何……其实对于IQ调制可以从两个方面来直观的理解,一个是向量,一个是三角函数。首先说一说向量,对于通信的传输过程而言,其本质是完成了信息的传递。信息如何传递?信息本身是无法传递的

三角函数

旧城冷巷雨未停 提交于 2019-12-31 11:54:56
参考: https://www.mathsisfun.com/algebra/trigonometry.html 三角函数 古代说的 勾三股四弦五 ,以角A为例, 股 就是角A的对边v, 勾 就是角A的短邻边a, 弦 ,就是三角形的最长边r。 一、正弦函数(sin) 1、定义 在直角三角形中,任意一锐角∠A的 对边 与 斜边 的比叫做∠A的正弦。记作: $ sin(A) = v/r $ 2、图像 这里推荐一个函数图像绘制: 工具 。 这里注意: sin(90) = 1 sin(0) = 0 二、余弦函数 1、定义 在直角三角形中,任意一锐角∠A的 邻边 与 斜边 的比叫做∠A的正弦。记作: $ cos(A) = a/r $ 2、图像 这里注意: cos(90) = 0 sin(0) = 1 <全文结束> 来源: CSDN 作者: DSLMing 链接: https://blog.csdn.net/qq_21476953/article/details/103778426

设计模式(一)单例模式(Singleton Pattern)

点点圈 提交于 2019-12-27 10:45:09
一、引言 最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类) 二、单例模式的介绍 说到单例模式,大家第一反应应该就是——什么是单例模式?,从“单例”字面意思上理解为——一个类只有一个实例,所以单例模式也就是保证一个类只有一个实例的一种实现方法罢了(设计模式其实就是帮助我们解决实际开发过程中的方法, 该方法是为了降低对象之间的耦合度,然而解决方法有很多种,所以前人就总结了一些常用的解决方法为书籍,从而把这本书就称为设计模式),下面给出单例模式的一个官方定义: 确保一个类只有一个实例,并提供一个全局访问点。 为了帮助大家更好地理解单例模式,大家可以结合下面的类图来进行理解,以及后面也会剖析单例模式的实现思路: 三、为什么会有单例模式 看完单例模式的介绍,自然大家都会有这样一个疑问——为什么要有单例模式的?它在什么情况下使用的?从单例模式的定义中我们可以看出——单例模式的使用自然是当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能有一个任务管理器,操作文件时,同一时间内只允许一个实例对其操作等

(十)Linux 网络编程之ioctl函数

旧街凉风 提交于 2019-12-25 03:12:26
1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现. 2.相关结构体与相关函数 #include int ioctl(int d,int request,....); 参数: d-文件描述符,这里是对网络套接字操作,显然是套接字描述符 request-请求码 省略的部分对应不同的内存缓冲区,而具体的内存缓冲区是由请求码request来决定的,下面看一下具体都有哪些相关缓冲区。 (1)网络接口请求结构ifreq struct ifreq{ #define IFHWADDRLEN 6 //6个字节的硬件地址,即MAC union{ char ifrn_name[IFNAMESIZ];//网络接口名称 }ifr_ifrn; union{ struct sockaddr ifru_addr;//本地IP地址 struct sockaddr ifru_dstaddr;//目标IP地址 struct sockaddr ifru_broadaddr;//广播IP地址 struct sockaddr ifru_netmask;//本地子网掩码地址 struct sockaddr ifru

struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系

ⅰ亾dé卋堺 提交于 2019-12-23 03:45:35
在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下: typedef unsigned short sa_family_t; struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ 在linux环境下,结构体struct sockaddr_in在/usr/include/netinet/in.h中定义,具体如下: /* Structure describing an Internet socket address. */ struct sockaddr_in { __SOCKADDR_COMMON (sin_); in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* Internet address. */ /* Pad to size of `struct sockaddr'. */ unsigned char sin_zero[sizeof (struct sockaddr) - __SOCKADDR_COMMON_SIZE -

套接字编程基础

为君一笑 提交于 2019-12-23 03:40:30
套接字是通信断点的抽象,网络编程中,套接字对于大多数通信细节做了隐藏,使程序员操作起来比较简单。 1、建立和销毁套接字描述符 Linux环境中使用socket函数创建一个套接字,函数原型如下: int socket(int domain,int type,int protocol); 头文件: #include<sys/types.h>、#include<sys/socket.h> 参数说明: 第一个参数domain是通信域,“AF_INET”表示IPv4,“AF_INET6”表示IPv6。 第二个参数是套接口的类型,SOCK_STREAM表示是TCP协议,SOCK_DGRAM表示是UDP协议,SOCK_RAW表示是绕过协议,SOCK_SEQPACKET表示STCP协议。 第三个参数通常设置为0。 返回值: 系统调用socket()只返回一个套接口描述符,如果出错,则返回-1。 2、地址绑定 只有绑定了地址的套接字才能用于网络通信,因此需要将套接字与一个地址绑定,Linux环境下使用bind()函数将一个套接字绑定到一个地址上,函数如下: int bind(int sockfd,struct sockaddr*my_addr,int addrlen); 头文件: #include<sys/types.h>、#include<sys/socket.h> 参数说明:

【微积分】 06 - 重积分

五迷三道 提交于 2019-12-22 03:23:17
1. 二重积分 1.1 定义和性质   一元定积分的概念可以推广到空间中,不同的是曲线\(y=f(x)\)换成了曲面\(z=f(x,y)\),曲面在\(xy\)平面上的投影\(D\)即为定义域。为求得曲面和\(D\)之间柱体\(\Omega\)的体积,可以将\(D\)划分为若干区域\(D_1,D_2,\cdots,D_n\)。设所有区域最大直径为\(d\),且各区域的面积为\(\varDelta\sigma_i\),在某个区域任取\((\xi_i,\eta_i)\in D_i\),则式(1)称为一个 积分和 。若\(\lim\limits_{d\to 0}\omega\)的极限存在,则称\(f(x,y)\)为\(D\)上的 可积函数 ,并称极限为\(f(x,y)\)在\(D\)上的 二重积分 (式(2))。 \[\omega=\sum\limits_{i=1}^nf(\xi_i,\eta_i)\varDelta\sigma_i\tag{1}\] \[\iint_Df(x,y)\,\text{d}\sigma=\iint_Df(x,y)\,\text{d}x\,\text{d}y=\lim\limits_{d\to 0}\omega\tag{2}\]   若记分割\(\pi\)下积分和的上、下确界分别是\(S(\pi),s(\pi)\),它们和一元积分中的性质完全一样

MATLAB画图复习(一)

最后都变了- 提交于 2019-12-19 12:47:02
前言 本次主要是为了复习昨晚囫囵吞枣学的MATLAB知识,以此来巩固一下自己薄弱的知识体系,MATLAB前面基础零散的小知识点就暂时先不管,这次直接奔向画图模块, 事先声明 ,本人是跟着的B站上的教程视频 MATLAB教程_台大郭彦甫(14课)原视频补档 ,所以博客中的大部分案例也都来自郭老师得教案。 案例一 波形图 (一) %x轴从0开始描线到2pi,间隔为pi/20 plot ( sin ( 0:pi/20:2*pi )) ; (二) hold on plot ( cos ( 0:pi/20:2*pi )) ; plot ( sin ( 0:pi/20:2*pi )) ; hold off hold - 添加新绘图时保留当前绘图 此 MATLAB 函数 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图。新绘图基于坐标区的 ColorOrder 和 LineStyleOrder 属性使用后续的颜色和线型。MATLAB 将调整坐标区的范围、刻度线和刻度标签以显示完整范围的数据。如果不存在坐标区,hold 命令会创建坐标区。 Plot Style Data markers Line types Line types Dot (.) [.] Solid line [-] Black [k] Asterisk (*) * Dashed line [–] Blue [b