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

    学习了三角剖分

    感觉主要用处是求面积交

    圆的三角剖分:

    用来求圆与多边形的交

    做法就是枚举多边形的边和圆心组成的三角形 分类讨论来求面积

    注意是有向面积 要按一定方向加加减减

    讨论分为几种

    对多边形的一边ab

    1)圆心在直线ab上 面积为0

    2)圆心到ab线段最短距离(端点与垂线考虑)大于等于半径 此时是扇形面积

    3)圆心到a,b的距离都小于等于半径 此时是三角形aob的面积

    4)a在圆内而b在圆外 求出ab与圆的交点tb 是三角形aotb和扇形tbob的面积

    5)b在圆内而a在圆外 求出ab与圆的交点ta 三角形bota和三星taoa的面积

    6)a,b都在圆外而线段过圆 分成两个扇形一个三角形

    poj 3675 poj2986 zoj 2675 都是这种题

    多边形与多边形的三角剖分:

    比如要求简单多边形和简单多边形的交

    如果是凸多边形 直接半平面交即可

    如果只是简单的多边形就可以根据一个顶点将多边形划分成n-2个三角形

    枚举每个多边形的三角形,来求交(这里还是用半平面交比较省事)就可以解决

    注意交的面积的方向 是两个三角形方向的乘积

    poj 3060 (这题数据有毒 估计是直接减去了有向面积 两个多边形面积并起来比分别求和还大= = 理解意思就行吧)

    梯形剖分:

    poj3148

    给你一个多边形 统计每个方格被覆盖的面积

    做法是将图形划分成若干个有向的梯形

    对于垂直的线段不考虑

    对于其他线段考虑与方格的上边界构成的梯形

    我们根据线段的走向规定面积的正负

    比如从左到右为正 从右到左为负 (就是顺逆时针)

    这样就求出来面积了

    (这个题的取整保留有点麻烦= = 需要多考虑一下)

    求重心:

    UVALive 4426

    对于均匀的多边形就是中心

    跟之前的方法类似 考虑由一个点划分出n-2个三角形的重心

    这些重心根据各自三角形的面积比重矢量叠加 有方向的

    今天打得还是有点难受 1011模拟因为自己的马虎WA了两炮 加大了队伍罚时QWQ

    最后结果还好 但是1005有点伤 差不多是从开头到结束 没有搞出来 题解还不太懂 再看看

    明天打算搞极角排序和扫描线

  • 相关阅读:
    js判断CheckBox是否选中
    C# 判断一个请求是异步请求
    正判断文件类型
    mysql启动命令窗口闪退问题
    db2手动恢复备份数据库
    redis使用
    分析Redis架构设计
    DB2数据库的在线备份步骤
    MySql主从复制
    SpringMVC工作原理
  • 原文地址:https://www.cnblogs.com/drzdk/p/7282054.html
Copyright © 2011-2022 走看看