目录
1 从颜色说起
1.1 用简单的枚举 → 一一映射到某种颜色
1.1.1 自然语言里的颜色对应
1.1.2 举个例子:VB里的colorindex
1.1.3 接下来的关键问题就是:如何对应更多的颜色,无限穷举么?
1.2 升级版的颜色映射思路:RGB颜色
1.2.1 RGB颜色大家都明白原理
1.2.2表达方式1:用一个16*6的矩阵来表示颜色
1.2.3表达方式2: 用(red,green,blue) 这3个维度组成一个向量来表示颜色
1.2.4 总结,RGB颜色就是用矩阵的形式来表示颜色了
1.2.5 附属知识
(1) 十六进制
(2) 颜色的RGB值
(3) 一些颜色的其他概念
1.3 从RGB颜色向量组,引出向量空间的基
2 向量空间的基(basis):向量空间的的基础 / 轴
2.1 什么样的向量可以做基?
2.2 基的分类
2.2.1 不同空间的基---向量组的数量可能不同
2.2.2 自然基
2.2.3正交基
2.2.4 标准正交基
2.2.5 基和向量/矩阵
3 基变换
(1)基不变,坐标变换
(2)坐标不变,基变换
3.1.6 基变换和坐标变换的公式 (待完成)
1 从颜色说起
如何显示颜色,以前的人有过很多的尝试最简单的思路就是枚举和映射,1种颜色对应1个代码/数字,其实和密码也差不多1.1 用简单的枚举 → 一一映射到某种颜色
1.1.1 自然语言里的颜色对应
其中举例最简单的就是语言
red--红色--1green---绿色---2blue--红色--3yellow--黄色色--4。。。
1.1.2 举个例子:VB里的colorindex
colorindex是EXCEL的颜色代码,一共就56个颜色但实际上VBA里还有RGB颜色代码 color=rgb(,,) , TextBox1.BackColor=rgb()Sub test_color()Range("i6:i19")).Interior.ColorIndexFor Each i In Range("B1:H19")i.Offset(0, 1).Interior.ColorIndex = i.ValueNext'第一次想到的这种思路不行Union(Range("c6:c19"), Range("E6:E19"), Range("G6:G19"))End Sub
1.1.3 接下来的关键问题就是:如何对应更多的颜色,无限穷举么?
自然语言里的颜色,一般也就十来种,几十种都够难记难用了像VBA里的colorindex() 的56种颜色,虽然已经够多了,但是实际上专业的人还是觉得不够用所以,枚举加到几百,上千去?1.2 升级版的颜色映射思路:RGB颜色
1.2.1 RGB颜色大家都明白原理
实际上就是 red, green,blue 这3元色来生成其他颜色RGB颜色有2种数字化 表示方式 比如 ffffff 000000 ,这个是16进制数字来表示颜色使用RGB的向量值来表示其他颜色的,比如 黑色是(0,0,0) ,白色是(255,255,255), 而后面这种方法,就是向量和矩阵的方法1.2.2表达方式1:用一个16*6的矩阵来表示颜色
其实ffffff这种,表面也是用一个维度的一串数字来表示不同的颜色但是和前面不同的就是,只有固定的6位所以要表示多种颜色,相当于其列向量=6个,行向量=16,可以看成一个A16*6 的矩阵。这个矩阵A16*6,最大容量16^6=167772161.2.3表达方式2: 用(red,green,blue) 这3个维度组成一个向量来表示颜色
RGB值从0-255,实际这个数字代表亮度RGB=(0,0,0) ,RGB=(100,100,100),这种形式是很明显的向量了这个矩阵A256*3,即256*256*256种,颜色最大容量256^3=167772161.2.4 总结,RGB颜色就是用矩阵的形式来表示颜色了
本质都是用矩阵/向量组来表示颜色1.2.5 附属知识
(1) 十六进制
(常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作十六进制数字。)
(2) 颜色的RGB值
RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
RGB值从0-255,实际这个数字代表亮度总共有256*256*256种,
(3) 一些颜色的其他概念
一些颜色显示的
16位色的发色总数是65536色,也就是2的16次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是16777216色,也就是2的24次方。32位色就并非是2的32次方的发色数,它其实也是16777216色,不过它增加了256阶颜色的灰度也就是8位透明度,发色数其实2的24次方,但是增加了8位透明度,就规定它为32位色。少量显卡能达到36位色,它是24位发色数再加512阶颜色灰度。
1.3 从RGB颜色向量组,引出向量空间的基
用RGB的第2种表示方法,用red,green,blue这3种颜色来生成其他所有颜色的向量空间使用RGB的向量值来表示其他颜色的,比如 黑色是(0,0,0) ,白色是(255,255,255), 而后面这种方法,就是向量和矩阵的方法实际上 RGB 是三原色,也就是 颜色空间/ 可以看成一个3维空间的基其中 red 是green 是 ,blue是任意一种颜色都可以写成 red,green,blue的线性组合也就是red,green,blue 是这个向量空间的一组 最大线性无关向量组,也是一组基。而且因为red,green,blue这3个向量选择的特殊性,这3个向量组的基,还是自然基,也是正交基!2 向量空间的基(basis):向量空间的的基础 / 轴
2.1 什么样的向量可以做基?
向量空间的基的严格定义:向量空间中的某组向量 A= {a1,a2.....an} ,这些向量如果是这个向量空间的最大线性无关组,那么这组向量A就是这个空间的一组基。
总结可以做基的特征
A= {a1,a2.....an} 这组向量,或这个向量组
必须是线性无关的。而且必须是这个空间的最大线性无关组。
理论上,颜色空间的基有无数组,但是很多向量组也不能作为基本
举例
比如RG这2种颜色构成的向量组,不能称为RGB空间的一组基,因为RG组成不了所有颜色比如线性相关的3组向量: 深绿色(0,255,0),标准绿色(0,100,0) 和蓝色(0,0,255)不能作为颜色空间的基的,因为3个线性相关的颜色基,无法组成所有颜色。