R语言算法
计算暗灰色:
0.0.0~127.127.127
``
```
#计算暗灰色的色域空间
num<-0
for(ray_g in 0:127) {
for(ray_b in 0:127) {
for(ray_r in 0:127) {
num<-(num+1)
}
}
}
print(num)
```
结果:
num<-0
> for(ray_g in 0:127) {
+ for(ray_b in 0:127) {
+ for(ray_r in 0:127) {
+ num<-(num+1)
+ }
+ }
+ }
> print(num)
[1] **2097152**
颜色名 RGB色度 色域的个数 截至色度 INT64最大 分成8份
高亮白 255.255.255 0 1.84467E+19 2.30584E+18
白 129.129.129~~255.255.255 127 1664~1791 1791
黄(红+绿 2.2.1~~255.255.2 255 1408~1663 1663
青(蓝+绿 1.2.2~2.255.255 255 1152~1407 1407
亮绿 1.2.1~2.255.2 127 1024~1151 1151
紫(红+蓝)即品 2.2.1~255.255.2 255 678~1023 1023
暗灰绿 0.1.0~0.127.0 127 640~767 767
红 0.0.1~255.1.1 255 384~639 639
蓝 0.0.1~255.1.1 255 128~383 383
灰 0.0.0~127.127.127 0~2097152 127 0~127
黑 0.0.0 0
(色域空间)合计 1783
8 有8个色域空置
总色域空间数量合计 1791
![](https://box.kancloud.cn/4ac8c28245f89f0c8a063c1cfd5c1df2_938x275.png)
全色度的代码:
``
```
case WM_PAINT:
{
PAINTSTRUCT ps;
HPEN hpen; // 画笔
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: 在此处添加使用 hdc 的任何绘图代码...
//渲染画图
MoveToEx(hdc, 0,0,NULL);
int r = 0;
int g = 0;
int b = 0;
int ray = 0;
for (int i = 1; i < 1792; ++i) { //for100
MoveToEx(hdc, i, 0,NULL);
//暗灰
if ((0 < i) && (i <= 127) ) {//if110
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB(ray, ray, ray));
SelectObject(hdc, hpen);
}//if110
//暗蓝-蓝
if ((128 < i) && (i <= 383)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB(0,0,(i-128) ) );
SelectObject(hdc, hpen);
}//if120
//暗红-红
if ((384 < i) && (i <= 639)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB( (i - 384),0,0 ));
SelectObject(hdc, hpen);
}//if120
//暗绿色
if ((640 < i) && (i <= 767)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB(0, (i - 640), 0));
SelectObject(hdc, hpen);
}//if120
//暗紫色-品色(红+蓝) 255种
if ((768< i) && (i <= 1023)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB( (i - 768), 0 , (i - 768)));
SelectObject(hdc, hpen);
}//if120
//明亮绿色 127种
if ((1024 <= i) && (i <= 1151)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB( 0, 128+ (i - 1024), 0 ) );
SelectObject(hdc, hpen);
}//if120
//青色-(蓝+绿色) 255种
if ((1152 <= i) && (i <= 1407)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB(0, (i - 1152), (i - 1152) ));
SelectObject(hdc, hpen);
}//if120
//黄色-(红+绿色) 255种
if ((1408 <= i) && (i <= 1663)) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB( (i - 1408), (i - 1408) ,0 ) );
SelectObject(hdc, hpen);
}//if120
//白色-(白色-高亮白) 255种……注解:再多就做 白切割 了……
if ((1664 <= i) ) {//if120
++ray;
// 创建画笔
hpen = CreatePen(PS_SOLID, 1, RGB( 128+(i - 1664), 128+(i - 1664), 128+(i - 1664)));
SelectObject(hdc, hpen);
}//if120
// SelectObject(hdc, hpen);
LineTo(hdc, 0, i); //LineTo(hdc, i, i);
}//for100
//
EndPaint(hWnd, &ps);
}
break;
case WM_DESTROY:
```
显示结果:
![](https://box.kancloud.cn/7c745a655ea52eec0c0e25ca4714a2da_1920x729.png)