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

    计算几何是一门用计算机解决几何问题的学科,里面有非常多优美的解决问题的方式方法.

    本文主要介绍这几个方面的内容:

    1. 判断平面内两线段是否相交
    2. 求解多边形的面积
    3. 求取多边形重心
    4. 求解凸包

     

    • 计算几何基础: 向量的内积和外积

    向量内积  a · b :

    定义: 两个向量a与b的内积为  a·b = |a| |b| cos∠(a, b),它是数量而不是向量。

    几何意义: a·b 等于向量 b 在 a 上的投影 与 a 的长度之积

     

     

    向量外积  a × b :  

    定义: 向量 a 与 b 的外积 a×b 是一个向量, 其长度等于|a×b| = |a| |b| sin∠(a,b),

    其方向正交于 a 与 b ,并且, (a,b,a×b) 构成右手系, 右手定理判定外积向量方向: a×b , a->b

    逆时针: 垂直平面向上     顺时针: 垂直平面向下(例图中为逆时针所以垂直平面向上)

    几何意义:a 与 b的外积在数值上等于以 a,b 为邻边的平行四边形的面积 

     

    • 判断平面内两线段是否相交

    问题描述:已知两条线段 P1P2 和 Q1Q2 ,判断 P1P2 和 Q1Q2 是否相交,若相交,求出交点。

    先思考一下平面内两线段位置的情况:

        

         相交(一)                相交(二)               不相交

       可以发现在相交(一)这种情况下: Q1Q2×Q1P1 和 Q1Q2×Q1P2 结果(方向)相反,则 点P1 和 点P2 在直线Q1Q2的两侧,同理,如果 P1P2×P1Q1 和 P1P2×P1Q2 结果(方向)也相反,则 点Q1 和 点Q2 在直线P1P2的两侧,这样,这两个线段也就相交。

      看相交(二)这种情况,此时在数值上 Q1Q2×Q1P1=0 和 Q1Q2×Q1P2 > 0,可以断定 点P1 已经在直线Q1Q2上了,

    只要判定 点P1 的坐标是否在线段Q1Q2区间内即可

    (PS:此时XY区间一定都要判定,下图 点P 在线段Q1Q2所在直线上,如果只判定 点P1 的 Y轴区间会被判定为线段相交)

     

    参考链接: https://blog.csdn.net/ACdreamers/article/details/7930911

     

  • 相关阅读:
    记录慕课学习爬取中国大学排名(由上交大计算的排名结果)
    SuperMap iMobile for Android室内导航APP
    Android studio入坑记录(SuperMap iMobile开发)
    2019年的十月和十一月
    python学习国庆期间
    学习python——collections系列
    又是快乐学习python的一天
    学习MATLAB
    Python学习练习题
    使用javaScript来实现一个有序链表
  • 原文地址:https://www.cnblogs.com/NiBosS/p/11942429.html
Copyright © 2011-2022 走看看