凸包——配色问题(一)

也许你很好奇,不是说凸包问题吗,怎么说的是配色问题?想要了解一下请继续往下看!

1 问题描述

现在只使用红R和绿G两种颜色来调配其他颜色,颜色表达式C=(R, G)。

定义:现在有两种工厂颜色,X=(10, 35)和Y=(16, 20)
问:为了配出颜色U=(12, 30),需要的X和Y的比例?这个我们很容易通过列出二元一次方程求解

解:设a份X,b份Y,则
    10a + 16b = 12 * (a + b)        1.
    35a + 20b = 30 * (a + b)        2.
    联立式1和2解得a = 2b,即需要X和Y的比例为1:2

那么,这两种工厂颜色能不能配出所有颜色呢?比如颜色V=(0.13, 0.22)

解:设a份X,b份Y,则
    10a + 16b = 13(a + b)        1.
    35a + 20b = 22(a + b)        2.
    式1得a = b, 式2得b = 6.5a,无解

如果再加上一种工厂颜色Z=(7, 15)呢?

解:设a份X,b份Y,c份Z,则
    10a + 16b + 7c = 13 * (a + b + c)       1.
    35a + 20b + 15c = 22 * (a + b + c)      2.
    联立得b = 3a = 3c

所以,给定三种工厂颜色可以配出的颜色比两种多,那么我们用什么算法来解答能不能配出以及颜色配比呢?

2 几何映射

颜色空间:每种颜色对应直角坐标系空间中的一个点(x, y)

那么,上面的题目映射到坐标轴上,如下图:
在这里插入图片描述
由上图可知,颜色空间为三角形xyz围成的空间:

    xy: y = -2.5x + 60         10 <= x <= 16, 20 <= y <= 35
    xz: y = (20/3)x - 95/3      7 <= x <= 10, 15 <= y <= 35
    yz: y = (5/9)x + 100/9      7 <= x <= 16, 15 <= y <= 20

所以,对于两种颜色x和y,只要判断目标颜色在不在线段xy上即可知道可不可以配出,对于三种颜色xyz,只要判断目标颜色在不在三角形xyz里即可知道可不可以配出。

现在来看看目标颜色U,将其代入xy线段:y = -2.5 * 12 + 60 = 30,可知U在线段xy上,即U可由X和Y两种颜色配出,|xu| = 开方(12 - 10)^2 + (30 - 35)^2 = 根号29,|uy| = 开方(12-16)^2 + (30-20)^2 = 2又根号29,所以配比 = 1/|xu| : 1/|uy|
类比,v颜色的xyz配比= 1/|xv| : 1/|yv| : 1/|zv|

结论:两种颜色能配出的颜色在xy线段上,三种颜色能配出的颜色在三角形xyz上,颜色配比为目标颜色到各工厂颜色距离反比之比

3 凸包问题

现在,配色问题经过几何映射,已经变成了,判断给定点是否在线段或三角形上。这和凸包问题是不是很像,或者说是它的一个子问题呢?

整理自清华大学邓俊辉计算几何课程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值