1.凸包、极点、极边基础概念

目录

1.凸包

2.调色问题

3.极性(Extrem)

[4.凸组合(Convex Combination)](#4.凸组合(Convex Combination))

5.问题转化(Strategy)​编辑

[6.In-Triangle test](#6.In-Triangle test)

7.To-Left-test

[8.极边(Extream Edges)](#8.极边(Extream Edges))


1.凸包

凸包就是上面蓝色皮筋围出来的范围

这些钉子可以转换到坐标轴中,横纵坐标表示颜色的比例

2.调色问题

上述问题可以进行一个抽象,抽象为一个color space

结论

  • 如果有1种颜料可以被2种颜料勾兑出来,它必然位于二者之间的那条连线上
  • 如果有1种颜料可以被3种颜料勾兑出来,它必然位于三角形内
  • 勾兑比例与距离成反比

3.极性(Extrem)

蓝色的为极点

极点上存在一条直线,使得所有的点落在它的一侧

4.凸组合(Convex Combination)

为什么最小值必须>=0 ?

因为这种颜色大不了不用,但也不可能是负的

5.问题转化(Strategy)

如果是极点那么久不可能在一个三角形的内部,所以采用排除法,剩下的就是极点

6.In-Triangle test

遍历所有可能的三角线组合,排除非极点

低效做法

7.To-Left-test

更加聪明的做法,如果一个点位于三条直线的left,那么它一定位于三角形内

实现(海伦公式)

只有s位于pq这条线段左侧才会取正。

8.极边(Extream Edges)

极边:所有的点落在同一侧,就是极边

算法实现

极边的算法效率高于极点的算法效率

相关推荐
CHANG_THE_WORLD2 小时前
金字塔降低采样
算法·金字塔采样
不知天地为何吴女士4 小时前
Day32| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
算法
小坏坏的大世界4 小时前
C++ STL常用容器总结(vector, deque, list, map, set)
c++·算法
励志要当大牛的小白菜7 小时前
ART配对软件使用
开发语言·c++·qt·算法
qq_513970447 小时前
力扣 hot100 Day56
算法·leetcode
PAK向日葵8 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
爱喝矿泉水的猛男10 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao10 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
YouQian77211 小时前
Traffic Lights set的使用
算法
go546315846512 小时前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法