• 【学习】计算几何初步


    一、点。

    l        点的坐标A(x1, y1),B(x2, y2)

    二、向量。

    l        向量AB = (x2-x1, y2-y1) = (x3,y3) ,CD = (x4, y4)。

    l        向量的模|AB| = sqrt(x3*x3 + y3*y3) 即向量的长度。

    三、点积。

    l        点积的结果为一个数值。

    l        数值计算方法AB * CD = x3*x4 + y3*y4。

    l        几何意义AB * CD = |AB| * |CD| * cos(a),a为向量AB逆时针转向CD的角度,0<=a<360,也可以认为是两向量的夹角,0<=a<=180。一般用于求夹角,a = acos( (AB * CD) / (|AB| * |CD|) )。也可:|CD| * cos(a) = AB * CD / |AB|,即向量CD在AB上的投影。

    四、叉积。

    l        叉积的结果为一个向量。

    l        AB×CD数值= x3*y4 – x4*y3。

    l        方向由右手螺旋定则判定。

    l        几何意义:AB×CD = |AB| * |CD| * sin(a),取绝对值即是以AB和CD为边的平行四边形面积。

    五、线段相交的判定(判定线段AB和线段CD是否相交,属于哪种相交)。

    l        规范相交:交点只有一个,且不是线段的端点。

    1、充要条件:点A和点B在CD的两侧并且点C和点D在AB的两侧。

    2、如何判断点A在向量CD的左侧还是右侧:CA×CD的数值大于0则左侧,小于0则右侧。于是CA×CD的数值和CB×CD的数值异号,点A和点B在CD的两侧,同理可判断点C和点D是否在AB的两侧(注意,必须严格异号)。

    l        不规范相交:交点为某个线段的端点,甚至两线段有一段重合。

    1、充要条件,一条线段的一个端点在另一条线段上。即A在CD上或B在CD上或C在AB上或D在AB上。

    2、A在线段CD上的充要条件:

    a)        AC×AD = 0,几何意义,AC和AD组成的平行四边形的面积为0,即A、C、D三点共线。

    b)        A点在CD之间,A.x处于C.x和D.x之间并且A.y处于C.y和D.y之间

    转至http://www.cppblog.com/shiming413/archive/2007/08/21/30494.html

  • 相关阅读:
    解析url
    初学react
    移动端判断用户滑动方向
    冒泡排序、快速排序、数组去重
    Angular Material主题配置
    reset()方法的使用、jq下面reset()的正确使用方法
    conts、var 、let的区别
    NLP
    mybatis的执行流程
    PHP递归算法示例:打印无限级数组元素的值
  • 原文地址:https://www.cnblogs.com/TonyNeal/p/jisuanjihe1.html
Copyright © 2020-2023  润新知