当前位置: 首页 > wzjs >正文

discuz轻社区模板东莞seo建站咨询

discuz轻社区模板,东莞seo建站咨询,jsp旅游网站的建设,关于建设网站的书本来源 计算几何基本模板(二维) 目录 基本设置点 向量 Point(Vector)点积(数量积、内积)向量积,叉积两点间距离向量的模单位向量两向量的夹角判断点在直线的哪边逆转角 线 直线表达式Line判断…

来源

计算几何基本模板(二维)

目录

  • 基本设置
  • 点 + 向量
    • Point(Vector)
    • 点积(数量积、内积)
    • 向量积,叉积
    • 两点间距离
    • 向量的模
    • 单位向量
    • 两向量的夹角
    • 判断点在直线的哪边
    • 逆转角
  • 线
    • 直线表达式
    • Line
    • 判断三点共线
    • 点到直线的距离
    • 点到线段的距离
    • 判断点是否在线段上
    • 判断直线与线段是否相交
    • 判断两线段是否相交
    • 判断两直线平行
    • 求两直线交点
  • 多边形
    • 三角形面积
    • 三角形四心
    • 正弦定理 & 余弦定理
    • 正多边形性质
    • 求多边形面积
    • 判断点在多边形内
    • 判断凸多边形
    • Circle
    • 扇形面积
    • 点与圆位置关系
    • 直线与圆位置关系
    • 直线与圆交点
    • 圆与圆位置关系
    • 圆与圆交点
    • 求圆的切点
    • 三角形外接圆
    • 三角形内切圆
  • 网格
    • 线段整点个数
    • 多边形边整点个数
    • 多边形内整点个数
  • 极角排序
  • 凸包算法
  • 最小圆覆盖
  • 圆的面积并
  • 圆与多边形面积交
  • 自适应辛普森积分
  • 平面最近点对

基本设置

  • 使用long double提高精度
  • 定义常数eps=1e-8PI=acos(-1.0)
  • 实现sgn()函数处理浮点数精度判断

点 + 向量

Point(Vector)

struct Point { /*...*/ };
  • 包含坐标(x,y)和运算符重载

点积(Dot)

A ⃗ ⋅ B ⃗ = ∣ A ∣ ∣ B ∣ cos ⁡ θ \vec{A} \cdot \vec{B} = |A||B|\cos\theta A B =A∣∣Bcosθ

double operator*(Vector &A, Vector &B);

叉积(Cross)

A ⃗ × B ⃗ = ∣ A ∣ ∣ B ∣ sin ⁡ θ \vec{A} \times \vec{B} = |A||B|\sin\theta A ×B =A∣∣Bsinθ

double operator^(Vector &A, Vector &B);

两点间距离

d i s t ( A , B ) = ( A . x − B . x ) 2 + ( A . y − B . y ) 2 dist(A,B) = \sqrt{(A.x-B.x)^2 + (A.y-B.y)^2} dist(A,B)=(A.xB.x)2+(A.yB.y)2

向量模长

∣ A ∣ = A . x 2 + A . y 2 |A| = \sqrt{A.x^2 + A.y^2} A=A.x2+A.y2

单位向量

n o r m ( A ) = A ∣ A ∣ norm(A) = \frac{A}{|A|} norm(A)=AA

向量夹角

θ = arccos ⁡ ( A ⋅ B ∣ A ∣ ∣ B ∣ ) \theta = \arccos(\frac{A \cdot B}{|A||B|}) θ=arccos(A∣∣BAB)

点关于直线的位置判断

  • 使用叉积判断点在线段的左右关系

向量旋转

A ⃗ ′ = ( x cos ⁡ θ − y sin ⁡ θ , x sin ⁡ θ + y cos ⁡ θ ) \vec{A}' = (x\cos\theta - y\sin\theta, x\sin\theta + y\cos\theta) A =(xcosθysinθ,xsinθ+ycosθ)

线

直线表达式

  • 一般式: A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0
  • 点向式: P ⃗ = P 0 + t d ⃗ \vec{P} = P_0 + t\vec{d} P =P0+td

Line结构体

struct Line { Point s, e; };

三点共线判断

( B − A ) × ( C − B ) = 0 (B-A) \times (C-B) = 0 (BA)×(CB)=0

点到直线距离

d = ∣ A B ⃗ × A P ⃗ ∣ ∣ A B ∣ d = \frac{|\vec{AB} \times \vec{AP}|}{|AB|} d=ABAB ×AP

点到线段距离

  • 分三种情况:垂直投影在线段内/外

点在线段上判断

  • 通过点积和叉积综合判断

直线与线段相交判断

  • 利用叉积符号判断端点位置

线段相交判断

  1. 快速排斥试验
  2. 跨立试验

直线交点求解

t = ( C D ⃗ × C A ⃗ ) ( C D ⃗ × A B ⃗ ) t = \frac{(\vec{CD} \times \vec{CA})}{(\vec{CD} \times \vec{AB})} t=(CD ×AB )(CD ×CA )

多边形

三角形面积

  • 海伦公式
  • 叉积公式: 1 2 ∣ A B ⃗ × A C ⃗ ∣ \frac{1}{2}|\vec{AB} \times \vec{AC}| 21AB ×AC

多边形面积

  • 鞋带定理: 1 2 ∣ ∑ i = 0 n − 1 ( P i × P i + 1 ) ∣ \frac{1}{2}|\sum_{i=0}^{n-1}(P_i \times P_{i+1})| 21i=0n1(Pi×Pi+1)

点在多边形内判断

  • 射线法统计交点奇偶性
  • 凸多边形方向法

凸包求解(Andrew算法)

  1. 按坐标排序
  2. 维护上下凸壳

圆与点位置关系

  • 计算点到圆心距离与半径比较

直线与圆相交

  • 代数法解方程组求交点

圆与圆相交

  • 计算圆心距与半径关系

最小圆覆盖

  • 随机增量法逐步扩展

网格相关

线段整点计数

  • 利用GCD计算格点数

皮克定理

S = I + B 2 − 1 S = I + \frac{B}{2} - 1 S=I+2B1

高级算法

极角排序

  • 分象限处理,避免浮点误差

自适应辛普森积分

  • 自动划分区间积分

平面最近点对

  • 分治法结合归并排序
http://www.dtcms.com/wzjs/405156.html

相关文章:

  • 电子商务网站建设项目无锡seo培训
  • 网站如何做图片自动切换google下载app
  • 动漫视频网站模板b2b模式的电商平台有哪些
  • 做网站是要编程吗百度我的订单查询
  • 营销型网站建设一般要多少钱最近的电脑培训班在哪里
  • 电子政务网站模版百度手机助手app官方下载
  • 转业做网站的工具b2b电子商务网站
  • 网站个人主页云搜索app官网
  • 做文创的网站站长工具域名查询ip
  • 网站里弹窗怎么做培训学校资质办理条件
  • 在视频网站中做节目怎么挣钱企业网站的网络营销功能
  • rails开发的网站开发搜索指数的数据来源
  • 自己建网站怎么做影视资源推广营销企业
  • 电商网站建设策划书外包接单平台
  • 做网站需要字体切换石家庄邮电职业技术学院
  • 在线咨询网站模板网站优化排名软件哪些最好
  • 推进门户网站建设浙江百度推广开户
  • 如何选择做网站的公司百度指数可以用来干什么
  • 北京网站建设有哪些公司学生个人网页制作
  • 动态网站 教程网站推广包括
  • 湖南手机版建站系统信息巢湖seo推广
  • 如何对网站做压力测试网络推广需要什么
  • 公司个人怎么制作网站网站到首页排名
  • 厦门网站建设seo免费涨粉工具
  • 上海景泰建设有限公司网站短视频广告投放平台
  • 手机企业网站推广免费建站网站网页
  • 制作网站首先要知道什么如何做好一个网站
  • 做b2b网站用什么架构在百度怎么免费发布广告
  • 音乐主题资源网站建设快速排名推荐
  • 国家开放大学网站的作业怎么做百度应用宝