数字艺术语言processing初步

文章目录

    • 示例程序
    • 刷新逻辑
    • 二维对象

Processing是专门用于艺术设计的编程语言,可以实现非常炫酷的图形和功能,比如下面这张联合国用的图就是用Processing编写的,本文简要介绍以下Processing,并列出其二维对象。

在这里插入图片描述

示例程序

第一步,下载、解压、点击可执行文件processing.exe就可以启动了。

启动之后,会出现四个示例,并且温馨提示,如果是初学者,就点开看看。

接下来就以鼠标交互作为示例,来初步学习一下Processing语言。

/*** Mouse 2D. * 移动鼠标改变每个箱子的尺寸*/void setup() {size(640, 360); rectMode(CENTER);
}void draw() {background(51); fill(255, 204);rect(mouseX, height/2, mouseY/2+10, mouseY/2+10);fill(255, 204);int inverseX = width-mouseX;int inverseY = height-mouseY;rect(inverseX, height/2, (inverseY/2)+10, (inverseY/2)+10);
}

运行结果如下

在这里插入图片描述

其中,setup是启动时的代码,draw是程序执行后运行的代码。

size函数用于声明窗口尺寸,rectMode为矩形模式,其运行时的绘图逻辑如下

  • backgrround设置背景
  • fill设置图形颜色,255是灰度,204是透明度
  • rect矩形对象,第一个矩形的起始位置由鼠标的坐标决定,mouseX和mouseY分别是鼠标的X和Y坐标;第二个矩形则根据计算得到。

刷新逻辑

为了加深对draw函数的理解,下面将所有杂七杂八的代码都去掉,仅保留一条绘制矩形的代码

void setup() {size(600, 300);
}void draw() {rect(mouseX, mouseY, 80, 80);
}

结果如下,即鼠标所到之处,均会绘制一个正方形。故而可以理解为,draw被封存在一个死循环中,每隔一段时间,就会对draw中的内容进行绘制,但在绘制新内容的同时,并不会取消以往的结果。正因如此,示例程序中才会加上backgrond。

在这里插入图片描述

二维对象

Processing提供了下面几种二维对象

图形函数参数
弧线arc()6个
circle()3个:圆心坐标 ( x , y ) (x,y) (x,y)和半径
椭圆ellipse()4个:中心坐标 ( x , y ) (x,y) (x,y)和宽、高
point()2个:坐标 ( x , y ) (x,y) (x,y)
矩形rect()4个:坐标 ( x , y ) (x,y) (x,y)和宽、高
正方形square()3个:坐标 ( x , y ) (x,y) (x,y)和边长
线段line()4个:2个端点的 ( x , y ) (x,y) (x,y)坐标
三角形triangle()6个:3个顶点的 ( x , y ) (x,y) (x,y)坐标
四边形quad()8个:4个顶点的 ( x , y ) (x,y) (x,y)坐标

其中弧线相对来说比较复杂,其实质是椭圆的一段边,所以输入参数首先是椭圆的坐标和宽高,然后是弧线的起始位置。

此外,如果指定第7个参数,则可设置弧线的模式,包括

  • OPEN
  • CHORD
  • PIE

区别如下

在这里插入图片描述

绘图代码为

void setup() {size(600, 300);textSize(50);fill(255, 255, 255);arc(100, 50, 200, 100, 0, HALF_PI);arc(400, 50, 200, 100, 0, HALF_PI, OPEN);text("OPEN", 400, 50);arc(100, 200, 200, 100, 0, HALF_PI, CHORD);text("CHORD", 100, 200);arc(400, 200, 200, 100, 0, HALF_PI, PIE);text("PIE", 400, 200);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

删除PPT文件的备注内容

解决方案的工作经常汇报以及经常做ppt的回报工作,但是删除备注很痛苦。 在网上或者拿历史的ppt文件修改后,需要删除ppt备注内容以及删除ppt个人文件信息的办法: 现象:很多备注信息,需要删除 解决办法一、 文件--信息-…

Linux Docker 图形化工具 Portainer远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 结束语 前言 Portainer是一个轻量级的容器管理工具,可以通过Web界面对Docker容器进行管理和监控。它提供了…

nodejs微信小程序+python+PHP就业求职招聘信息平台的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

ffmpeg编译支持AVS3编解码

libuavs3d ffmpeg的官方源码中已经支持了libuavs3d解码器的接口(libavcodec/libuavs3d.c中定义),因此如果需要编译ffmpeg支持libuavs3d解码器,只需要安装libuavs3d.so以及开启ffmpeg的编译选项即可。 安装libuavs3d解码器 #代码仓…

小程序开发

1.准备工作 1.注册公众平台账号(免费)2.下载小程序开发工具(免费) 2.开发步骤 1.第一个小程序 1.小程序的AppID相当于小程序平台的一个身份证,这里使用的是测试号(注意区别于服务号或订阅号的AppID&#xf…

学习前端都需要学什么?

前端开发是一门需要掌握多种技术和工具的综合性学科。作为一名合格的前端开发者,需要具备以下几方面的知识和技能: HTML:HTML 是构建网页的基础,是前端开发的第一步。需要掌握各种 HTML 标签的使用和语义化的编写方式&#xff0c…

本地快速部署Apache服务器并使用内网穿透实现远程访问

Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpo…

【自习室预约系统源码】基于springboot框架的自习室管理和预约系统设计

🍅 简介:500精品计算机源码学习 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 文末获取源码 目录 一、以下学习内容欢迎领取: 二、文档资料截图: 三想了解更多,请收藏、评论、留言:…

GPTs每日推荐--生化危机【典藏版】

今天给大家推荐一个游戏性质的GPTs,叫做生化危机典藏版,国内点击可玩。 开篇:玩家从末日中醒来。 选择:玩家会遇到各种资源、任务、剧情,需要自行选择相关的分支剧情,一旦选错,无法重选。 结局…

openGauss学习笔记-142 openGauss 数据库运维-例行维护-导出并查看wdr诊断报告

文章目录 openGauss学习笔记-142 openGauss 数据库运维-例行维护-导出并查看wdr诊断报告 openGauss学习笔记-142 openGauss 数据库运维-例行维护-导出并查看wdr诊断报告 生成快照数据需参数enable_wdr_snapshoton,访问WDR快照数据需要sysadmin或monadmin权限&#…

【PID学习笔记 5 】控制系统的性能指标之一

写在前面 PID在实际工程中最重要的工作就是调参,那么首先就要了解控制系统的性能指标。上文最后简要介绍了控制系统的基本要求,本文开始将系统学习控制系统的性能指标,内容比较多,初步计划是分三节来讲解。本文重点介绍性能指标的…

VirtualBox+Vagrant安装虚拟机

文章目录 一、下载Virtualbox和Vagrant1、下载2、安装 二、安装虚拟机1、新建目录D:\VirtualMachine2、执行vagrant init centos/7命令,就会在该目录下创建Vagrantfile文件3、执行vagrant up命令4、查看当前主机分给虚拟机的网关网段5、找到D:\VirtualMachine下的Va…

leetcode算法之栈

目录 1.删除字符串中的所有相邻重复项2.比较含退格的字符串3.基本计算器II4.字符串解码5.验证栈序列 1.删除字符串中的所有相邻重复项 删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {string ret;//使用数组模拟栈操作for(auto …

基于单片机远程温控检测系统

**单片机设计介绍,基于单片机远程温控检测系统(含上位机) 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的远程温控检测系统可以用于远程监测和控制温度,实现远程温度监…

关于栈的简单理解

1. 栈(Stack) 1.1 文字讲解 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则&a…

gromacs学习及使用(1)

1.Gromacs的使用 2.Gromacs 的第一步_能量最小化 3.分子动力学模拟Gromacs一般使用步骤(空蛋白) 4.GROMACS优化(没看懂) 5.GROMACS快速入门(有好东西) GROMACS中文教程 gmx editconf -f xxx -o xxx6.GROMACS运行参数之em.mdp文…

Open3D 最小二乘拟合空间直线(方法二)

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理

docker踩坑记录:docker容器创建doris容器间无法通讯问题

背景: 开发大数据平台,使用doris作为数据仓储,使用docker做集群部署,先进行开发环境搭建,环境为BE1;FE1,原来使用官方例子,但是官方例子是创建了一个bridge使用172.20.80.0/24通讯,…

「Swift」类淘宝商品瀑布流展示

前言:需要做一个类似于淘宝商品页面的瀑布流展示 结构分析: ps:图片来源 思路分析: 该瀑布流主要还是基于UICollectionView进行展示,只是在cell展示的UICollectionViewFlowLayout需要进行相应调整和自定义&#xff…

Mybatis 操作续集(连着上文一起看)

"查"操作(企业开发中尽量不使用*,需要哪些字段就写哪些字段,都需要就全写上) Mybatis 会自动地根据数据库的字段名和Java对象的属性名进行映射,如果名称一样就进行赋值 但是那些名称不一样的,我们想要拿到,该怎么拿呢? 一开始数据库字段名和Java对象属性名如下图…