zoukankan      html  css  js  c++  java
  • 计算几何

    逆时针转90度 (-y,x);

    关于精度误差

    判断(a,b)相等 (fabs(a-b)<eps)

    判断(a,b)不相等 (fabs(a-b)>eps)

    判断(:::a<b:a+eps<b)

    判断:(aleq b:a<b+eps)


    点积

    (acdot b=|a||b|cos heta)

    就等于(a)的模长乘上(b)(a)上投影的长度

    满足分配律,交换律 ((a+b)cdot c=acdot c+bcdot c)

    假如(a(x_1,y_1),b(x_2,y_2)) 那么(acdot b=x_1x_2+y_1y_2)

    (aot b Leftrightarrow acdot b=0)

    夹角小于90度点积大于0

    夹角大于90度点积小于0


    叉积

    (a imes b=|a||b|sin heta)

    (a,b)为向量,( heta)(a)旋转到(b)的夹角

    (b)(a)左边为正,右边为负

    表示的是(ab)围成的平行四边形的面积

    (a imes b=b imes -a)

    满足分配律

    假如(a(x_1,y_1),b(x_2,y_2)) 那么(a imes b=x_1y_2-x_2y_1)

    可以用叉积判断两个向量的左右关系,判断平行

    可以用来求三角形面积

    甚至可以求点到直线的距离!!


    向量旋转

    (a)旋转( heta)

    先把(a)缩放到1,设原角为(alpha)

    然后(a')就是((cos(alpha+ heta),sin(alpha+ heta)))

    就是((xcos heta-ysin heta,xsin heta+ycos heta))


    直线交点

    [O=A+(B-A) imesfrac{S_{ACD}}{S_{ACD}+S_{BCD}} ]

    特判是否平行


    多边形面积

    对于一个多边形定点按逆时针排序

    [s=frac 1 2 (P_n imes P_1+sum_{i=1}^{n-1}P_i imes P_{i+1}) ]


    圆的交点

    1547776934621

    用余弦定理(^{[1]}) 算出( heta)然后把(D)转过去就行了

    余弦定理表达式

    三角形

    img


    两圆公切线


    皮克定理

    2S=2a+b-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。


    凸包

    能包围住所有点的最小的凸多边形

    Andrew

    把所有点按横坐标第一关键字,纵坐标第二关键字排序

    第一个点肯定在凸包上,用栈维护下凸包

    然后倒过来枚举,求上凸包

  • 相关阅读:
    【NXOpen.UF扩展】修改表达式
    NX二次开发 克隆
    C++手动加载CLR运行托管程序(CLR Hosting)
    C++/CLR 使用(VS2012,VS2013,VS2015)编写
    解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题,即include+lib环境变量配置
    NX 图标
    【错误分析】NX error status: 32
    NX CAM 读取加工参数
    CAM 模板样式表
    锁定NX原生界面 & 锁定界面更新
  • 原文地址:https://www.cnblogs.com/ZUTTER/p/10289390.html
Copyright © 2011-2022 走看看