zoukankan      html  css  js  c++  java
  • [学习笔记]计算几何基础

    三角函数

    向量

    线性空间中有大小方向的量.

    坐标表示:$P(x_1,y_1),Q(x_2,y_2)$.

    $overrightarrow{PQ}=(x_2-x_1,y_2-y_1)$.

    $|PQ|=sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$.

    image

    向量运算

    $a=(x_1,y_1),b=(x_2,y_2)$.

    • 加法

    $a+b=(x_1+x_2,y_1+y_2)$.

    image

    • 减法

    $a-b=(x_1-x_2,y_1-y_2)$.

    image

    • 点乘

    $a;cdot;b=x_1x_2+y_1y_2$.

    $a;cdot;b=|a||b|cos<a,b>$

    应用:求两向量夹角,判断是否垂直($cos90$°$=0$).

    • 叉乘

    $a; imes;b=x_1y_2-x_2y_1$.

    $|a; imes;b|=|a||b|sin<a,b>$.

    $a; imes;b=0$,共线.

    image

    判断线段交

    $(AC; imes;AD)(BC; imes;BD);leq;0$且$(CA; imes;CB)(DA; imes;DB);leq;0$.

    image

    向量旋转

    将$a(x_1,y_1)$逆时针旋转$ heta$(弧度)得到$b(x_1cos heta-y_1sin heta,x_1sin heta+y_1cos heta)$.

    $P.S.$只改变方向(长度不变).记忆方法:旋转$pi/2$得到的结果$(-y_1,x_1)$.

    三点共线

    夹角为$0$且$a; imes;b=0$.

    点是否在射线上

    夹角为$0$且点乘$geq;0$.

    $<0$?反向!

    多边形面积

    设多边形顶点依次为$P_1,P_2,...,P_n$.

    $large{S=|frac{sum_{i=1}^{n-1}overrightarrow{OP_i} imesoverrightarrow{OP_{i+1}}+overrightarrow{OP_n} imesoverrightarrow{OP_{1}}}{2}}|$.

    点到直线垂足

    点到直线垂足$D,ED;perp;AB$.

    旋转$overrightarrow{AB}pi/2$.

    直线求交.

    image

    圆的位置关系

    $d$为两圆圆心距,$R,r$分别为两圆半径.

    $d>R+r$ 外离;

    $d=R+r$ 外切;

    $|R – r|<d<R+r$ 相交;

    $d=|R–r|$ 内切;

    $d<|R–r|$内含.

    点是否在凸多边形内

    面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。

    推荐

    http://dev.gameres.com/Program/Abstract/Geometry.htm#判断点是否在多边形中

  • 相关阅读:
    相对路径与绝对路径的区别
    c语言 蛇形填空
    Java最大公约数 最小公倍数
    c语言 韩信点兵
    c语言倒三角形
    Java 分解质因数
    Java 求水仙花数
    Java 求素数
    Java基于OpenCV实现走迷宫(图片+路线展示)
    Java之函数式接口@FunctionalInterface详解(附源码)
  • 原文地址:https://www.cnblogs.com/AireenYe/p/6273052.html
Copyright © 2011-2022 走看看