来一波全套向量运算(C++)
//头文件要求
#include <cmath>
struct P{long long x, y;}p[N];
//加法
P operator +(P x, P y){return (P){x.x + y.x, x.y + y.y};}
//减法
P operator -(P x, P y){return (P){x.x - y.x, x.y - y.y};}
// 乘法
P operator *(P x, P y){return (P){x.x * y.x - x.y * y.y, x.y * y.x + x.x * y.y};}
//叉积
long long cross(P x, P y){return x.y * y.x - x.x * y.y;}
//数量积 点积
long long dot(P x, P y){return x.x * y.x + x.y * y.y;}
//四舍五入除法
long long dv(long long a, long long b){//注意重名!!!
return b < 0 ? dv(-a, -b)
: (a < 0 ? -dv(-a, b)
: (a + b / 2) / b);}
//模长平方
long long len(P x){return x.x * x.x + x.y * x.y;}
//模长
long long dis(P x){return sqrt(x.x * x.x + x.y * x.y);}
//向量除法
P operator /(P x, P y){
long long l = len(y);
return (P){dv(dot(x, y), l), dv(cross(x, y), l)};
}
//向量膜
P operator %(P x, P y){return x - ((x / y) * y);}
//向量GCD
P gcd(P x, P y){return len(y) ? gcd(y, x % y) : x;}
来一波全套向量运算(C++)的更多相关文章
- UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)
Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...
- Unity 三角函数 向量 运算
其实三维的和二维的基本差不多,一样的运算方式,unity已经把所有的方法都封装起来,主要是理解,能理解了就直接调用了 三角函数 知识点:三角函数基础正玄余玄.三角函数曲线.弧度制和角度制.弧度制和角度 ...
- 向量运算 与 JavaScript
二维向量都包含两个值:方向(direction)及大小(magnitude) 这两个值可以表达出各种各样的物理特性来,比如力和运动.如两个物体间的碰撞检测. 向量的大小 虽说二维向量是对大 ...
- 3D数学读书笔记——向量运算及在c++上的实现
本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 ...
- 向量运算(lua,三维) 点乘、叉乘、模、夹角
向量运算在游戏制作中经常用到,稍微总结一下. 一.点乘 如图,假设 向量a与b的点乘表示a在b上的投影与b的模的乘积 公式: 代码: function MathHelper.GetVector3D ...
- Eigen中的矩阵及向量运算
Eigen中的矩阵及向量运算 ,[+,+=,-,-=] ,[\*,\*=] ,[.transpose()] ,[.dot(),.cross(),.adjoint()] ,针对矩阵元素进行的操作[.su ...
- 快速电路仿真器(FastSPICE)中的高性能矩阵向量运算实现
今年10-11月份参加了EDA2020(第二届)集成电路EDA设计精英挑战赛,通过了初赛,并参加了总决赛,最后拿了一个三等奖,虽然成绩不是很好,但是想把自己做的分享一下,我所做的题目是概伦电子出的F题 ...
- python3 定义向量运算
from math import hypot #定义向量的构造方法 class Vector: def __init__(self,x=0,y=0): self.x=x; self.y=y; ''' ...
- 基础向量运算-2D镜面反射
如图M为镜面,A为入射光,B为反射光,已知A与M的向量坐标,求B的向量表示. 我们添加辅助向量C. 有以下性质. B = 2 * C - A. [1] |C| = |A| * cos(alpah).A ...
随机推荐
- PYTHON访问数据库
PYTHON DB API(规范)框架 可以一次编写同时访问MySql\ Oracle \SQLServer...不同的数据库服务器:统一接口程序的混乱. 1.连接访问:connection(高速路) ...
- Python学习第十篇——函数初步
def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...
- pip3 升级失败的解决方法!亲测有效
pip3 --default-timeout=10000 install -U pip 注意:由于防火长城的存在,会导致更新失败,如果你加上--default-timeout=10000 这个就ok ...
- Python迭代器与格式化
三元运算 对if-else判断的简写 >>> age = 18 >>> res = "You are so young!" if age < ...
- CentOS 6.5 手动rpm包安装gcc、g++
摘自:https://blog.csdn.net/lichen_net/article/details/70211204 mount CentOS的安装光盘,然后先后安装 rpm -ivh ppl-0 ...
- gnuplot画折线图
之前尝试用jfreechart画自定义横坐标的折线图或时序图,发现很复杂,后来改用gnuplot了. gnuplot在网上一搜就能找到下载地址. 安装完成后,主要是命令行形式的交互界面,至少比jfre ...
- Linux下用rm删除的文件的恢复方法
Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站https://www.linuxidc.com/Linux/2008-08/14744.htm linu ...
- JAVAString初始化的引用问题
1 String a="Hello JAVA"; 2 3 String b=a; 4 5 System.out.println(a); 6 7 System.out.println ...
- 给input标签添加默认提示文字
<input name="username" placeholder="请输入用户名" /> placeholder = "提示文字&qu ...
- 3 HTTP 协议
1 什么是HTTP 协议 HTTP (HyperText Transfer Protocol),即超文本传输协议, 17年以前互联网上应用最广泛的协议,之后所有网站都开始使用HTTPS协议(基于HTT ...