十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍怎么在Python中使用Scribus创建一个RGB立方体,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联服务紧随时代发展步伐,进行技术革新和技术进步,经过10多年的发展和积累,已经汇集了一批资深网站策划师、设计师、专业的网站实施团队以及高素质售后服务人员,并且完全形成了一套成熟的业务流程,能够完全依照客户要求对网站进行网站设计、网站建设、建设、维护、更新和改版,实现客户网站对外宣传展示的首要目的,并为客户企业品牌互联网化提供全面的解决方案。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 视图。因此,下一部分(向下的页面)的原点(黑色的角落)需要在左上角,其水平方向是绿色,垂直方向是蓝色。
“调整数字”最终或多或少变成了试错,从而得到我想要的东西。在创建了第二个图之后,我需要第三个图,它是红 - 蓝色的,原点位于左上角,红色向左递增,蓝色向下递增。
下面是最终效果图:
First half of RGB cube
当然,这只是这个立方体的前半部分。我需要做一个类似的形状,除了原点应该是白色(而不是黑色)来表示高值。这是我希望自己更聪明的时候之一,因为我不仅需要做出一个类似的整体形状,还需要以镜像的方式与第一个形状交互(我认为)。有时候,尝试和错误是你唯一的朋友。
结果是这样的;我使用了一个单独的脚本,因为在一个美国信件大小的页面上没有足够的空间同时容纳这两个图案。
Second half of RGB cube
现在,是时候轮到打印机了!在这里,你可以直观了解彩色打印机如何处理 RGB 颜色到 CMYK 颜色的转换以及打印颜色密集空间。
接下来,朋友们,是剪切粘贴时间!我可以用胶带,但我不想改变表面的外观,所以我在切割的时候在两边留下了一些空间,这样我就可以把它们粘在里面了。根据我的经验,在复印纸上打印会产生一些不需要的皱纹,所以在我的复印纸原型完成后,我把立方体打印在了更厚的纸上,表面是哑光的。
RGB cubes
请记住,这只是 RGB 空间边界的一个视图;更准确地说,你必须做出一个可以在中间切片的实心立方体。例如,这是一个实心 RGB 立方体在蓝色 = 120 的切片。
RGB cube slice
最后,我做这个项目很开心。如果您也想参与其中,这里有两个脚本。
这是前半部分:
#!/usr/bin/env python # black2rgb.py """ Creates one-half of RGB cube with Black at origin """ import scribus 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 r = 0 g = 0 y = 305 while b < 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 b = b + 5 y = y + 5 r = 255 g = 0 y = 305 x = 39 b = 0 while b < 256: while r >= 0: newcolor = str(r) + '_' + str(g) + '_' + str(b) if newcolor == '0_0_0': newcolor = 'Black' scribus.defineColorRGB(newcolor,r, g, b) rect = scribus.createRect(x, y, 5, 5) scribus.setFillColor(newcolor, rect) scribus.setLineColor(newcolor, rect) r = r - 5 x = x+5 b = b + 5 x = 39.5 r = 255 y = y + 5 scribus.setRedraw(True) scribus.redrawAll()
后半部分:
#!/usr/bin/env python # white2rgb.py """ Creates one-half of RGB cube with White at origin """ import scribus x = 300 y = 300 r = 255 g = 255 b = 255 if scribus.newDoc(scribus.PAPER_LETTER, (0,0,0,0),scribus.PORTRAIT, 1, scribus.UNIT_POINTS, scribus.NOFACINGPAGES, scribus.FIRSTPAGERIGHT): while g >= 0: while r >= 0: newcolor = str(r) + '_' + str(g) + '_' + str(b) if newcolor == '255_255_255': newcolor = 'White' scribus.defineColorRGB(newcolor,r, g, b) rect = scribus.createRect(x + 255 - r, y, 5, 5) scribus.setFillColor(newcolor, rect) scribus.setLineColor(newcolor, rect) r = r - 5 r = 255 g = g - 5 y = y - 5 r = 255 g = 255 y = 305 while b >= 0: while r >= 0: newcolor = str(r) + '_' + str(g) + '_' + str(b) if newcolor == '255_255_255': newcolor = 'White' scribus.defineColorRGB(newcolor,r, g, b) rect = scribus.createRect(x + 255 - r, y, 5, 5) scribus.setFillColor(newcolor, rect) scribus.setLineColor(newcolor, rect) r = r - 5 r = 255 b = b - 5 y = y + 5 r = 255 g = 0 y = 305 x = 39 b = 255 while b >= 0: while g < 256: newcolor = str(r) + '_' + str(g) + '_' + str(b) if newcolor == '255_255_255': newcolor = 'White' 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 b = b - 5 y = y + 5 scribus.setRedraw(True) scribus.redrawAll()
关于怎么在Python中使用Scribus创建一个RGB立方体就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。