使用使用Python和和Scribus创建一个创建一个RGB立方体的方法立方体的方法
主要介绍了使用Python和Scribus创建一个RGB立方体的方法,文中通过示例代码介绍的非常详细,对大家的学习或者
工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
使用 Scribus 的 Python 脚本编写器功能,开发一个显示 RGB 色谱的 3D 立方体。
当我决定这个夏天要玩色彩游戏时,我想到通常色彩都是在色轮上描绘的。这些色彩通常都是使用色素而不是光,并且你失去了任何
对颜色亮度或光度变化的感觉。
作为色轮的替代,我想在立方体表面使用一系列图形来显示 RGB 频谱。色彩的 RGB 值将在具有 X、Y、Z 轴的三维图形上展示。例
如,一个平面将会保持 B(蓝色)为 0,其余的坐标轴将显示当我将 R(红色)和 G (绿色)的值从 0 绘制到 255 时发生的情况。
事实证明,使用 Scribus 及其 Python 脚本编写器 功能实现这一点并不困难。我可以创建 RGB 颜色,使矩形显示颜色,并以 2D 格式
排列它们。我决定设置颜色值的间隔为 5,并让矩形按 5 个点(pt)进行绘图。因此,对于每个 2D 图形,我将使用大约 250 种颜
色,立方体的一个边有 250 个点(pt),也就是 3.5 英寸。
我使用下面这段 Python 代码完成了绿 - 红图的任务:
x = 300
y = 300
r = 0
g = 0
b = 0
if scribus.newDoc(scribus.PAPER_LETTER, (0,0,0,0),scribus.PORTRAIT, 1, scribus.UNIT_POINTS, scribus.NOFACINGPAGES, scribus.FIRSTPAGERIGHT):
while r < 256:
while g < 256:
newcolor = str(r) + '_' + str(g) + '_' + str(b)
if newcolor == '0_0_0':
newcolor = 'Black'
scribus.defineColorRGB(newcolor,r, g, b)
rect = scribus.createRect(x + g, y, 5, 5)
scribus.setFillColor(newcolor, rect)
scribus.setLineColor(newcolor, rect)
g = g + 5
g = 0
r = r + 5
y = y – 5
这个脚本在 300,300 位置开始绘制图形,这个位置大约是一个美国信件大小的纸张的水平中心,大概是垂直方向从顶部到底的三分之
一位置;这是图像的原点,然后它沿着 X 轴(绿色值)水平构建图形,然后返回到 Y 轴,向上移动 5 个点,然后绘制下一条矩形
线。
Red-Green graph
这看起来很简单;我只需要调整一下数字就可以把立方体的另一面画出来。但这不仅仅是再画两个图,一个是蓝 - 绿色,另一个是红
- 蓝色的问题。我想创建一个展开的立方体,这样我就可以打印、剪开然后折叠它,创建一个 RGB 的 3D 视图。因此,下一部分(向
下的页面)的原点(黑色的角落)需要在左上角,其水平方向是绿色,垂直方向是蓝色。
“调整数字”最终或多或少变成了试错,从而得到我想要的东西。在创建了第二个图之后,我需要第三个图,它是红 - 蓝色的,原点位
于左上角,红色向左递增,蓝色向下递增。
下面是最终效果图: