我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中怎么利用Scribus创建一个RGB立方体

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中怎么利用Scribus创建一个RGB立方体

本篇文章给大家分享的是有关Python中怎么利用Scribus创建一个RGB立方体,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

作为色轮的替代,我想在立方体表面使用一系列图形来显示 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 = 300y = 300r = 0g = 0b = 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 &ndash; 5

这个脚本在 300,300 位置开始绘制图形,这个位置大约是一个美国信件大小的纸张的水平中心,大概是垂直方向从顶部到底的三分之一位置;这是图像的原点,然后它沿着 X 轴(绿色值)水平构建图形,然后返回到 Y 轴,向上移动 5 个点,然后绘制下一条矩形线。

Python中怎么利用Scribus创建一个RGB立方体

Red-Green graph

这看起来很简单;我只需要调整一下数字就可以把立方体的另一面画出来。但这不仅仅是再画两个图,一个是蓝 - 绿色,另一个是红 -  蓝色的问题。我想创建一个展开的立方体,这样我就可以打印、剪开然后折叠它,创建一个 RGB 的 3D  视图。因此,下一部分(向下的页面)的原点(黑色的角落)需要在左上角,其水平方向是绿色,垂直方向是蓝色。

“调整数字”最终或多或少变成了试错,从而得到我想要的东西。在创建了第二个图之后,我需要第三个图,它是红 - 蓝色的,原点位于左上角,红色向左递增,蓝色向下递增。

下面是最终效果图:

Python中怎么利用Scribus创建一个RGB立方体

First half of RGB cube

当然,这只是这个立方体的前半部分。我需要做一个类似的形状,除了原点应该是白色(而不是黑色)来表示高值。这是我希望自己更聪明的时候之一,因为我不仅需要做出一个类似的整体形状,还需要以镜像的方式与***个形状交互(我认为)。有时候,尝试和错误是你唯一的朋友。

结果是这样的;我使用了一个单独的脚本,因为在一个美国信件大小的页面上没有足够的空间同时容纳这两个图案。

Python中怎么利用Scribus创建一个RGB立方体

Second half of RGB cube

现在,是时候轮到打印机了!在这里,你可以直观了解彩色打印机如何处理 RGB 颜色到 CMYK 颜色的转换以及打印颜色密集空间。

接下来,朋友们,是剪切粘贴时间!我可以用胶带,但我不想改变表面的外观,所以我在切割的时候在两边留下了一些空间,这样我就可以把它们粘在里面了。根据我的经验,在复印纸上打印会产生一些不需要的皱纹,所以在我的复印纸原型完成后,我把立方体打印在了更厚的纸上,表面是哑光的。

Python中怎么利用Scribus创建一个RGB立方体

RGB cubes

请记住,这只是 RGB 空间边界的一个视图;更准确地说,你必须做出一个可以在中间切片的实心立方体。例如,这是一个实心 RGB 立方体在蓝色 = 120 的切片。

Python中怎么利用Scribus创建一个RGB立方体

RGB cube slice

***,我做这个项目很开心。如果您也想参与其中,这里有两个脚本。

这是前半部分:

#!/usr/bin/env python# black2rgb.py"""Creates one-half of RGB cube with Black at origin""" import scribus x = 300y = 300r = 0g = 0b = 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 = 300y = 300r = 255g = 255b = 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立方体,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中怎么利用Scribus创建一个RGB立方体

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中怎么利用Scribus创建一个RGB立方体

本篇文章给大家分享的是有关Python中怎么利用Scribus创建一个RGB立方体,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。作为色轮的替代,我想在立方体表面使用一系列图形来
2023-06-16

怎么在python中利用numpy创建一个矩阵

今天就跟大家聊聊有关怎么在python中利用numpy创建一个矩阵,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具
2023-06-14

Python中怎么利用多线程创建一个程序

这篇文章给大家介绍Python中怎么利用多线程创建一个程序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python线程创建需要关注threading.Thread.join(th) 或者th.join()如果你可以对
2023-06-17

怎么在python中利用pandas创建一个Series数据类型

今天就跟大家聊聊有关怎么在python中利用pandas创建一个Series数据类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内
2023-06-14

怎么利用Python创建第一个Django框架程序

这篇文章主要介绍“怎么利用Python创建第一个Django框架程序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么利用Python创建第一个Django框架程序”文章能帮助大家解决问题。一.环境
2023-07-02

怎么在python中利用Dockerfile构建一个镜像

今天就跟大家聊聊有关怎么在python中利用Dockerfile构建一个镜像,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python的数据类型有哪些?python的数据类型:1.
2023-06-14

Python中怎么利用 FastAPI构建一个Web服务

Python中怎么利用 FastAPI构建一个Web服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。起步我们将使用 Fedora 作为基础镜像来搭建开发环境,
2023-06-16

怎么在python中使用Protobuf创建一个服务端

这期内容当中小编将会给大家带来有关怎么在python中使用Protobuf创建一个服务端,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、
2023-06-14

怎么在Python中利用Pygame实现一个俄罗斯方块游戏

今天就跟大家聊聊有关怎么在Python中利用Pygame实现一个俄罗斯方块游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。源码:# coding : utf-8#: pip ins
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录