问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

processing可以保存指定区域的内容吗

发布网友 发布时间:2023-04-26 13:59

我来回答

3个回答

热心网友 时间:2023-11-11 02:11

可以。笔者在学习processing的过程中,遇到一些基础常识问题,在此处记录,也方便初学者学习。1. [ 变量 ]
1.1. [ 变量类型 ]

boolean 布尔变量,储存true/false
int 整数 float 浮点数 double long 巨大的数
char 字符 string 字符串 用"" byte字节
color 颜色
1.2. [ processing中的系统变量 ]

width 窗口像素宽 height 窗口像素高 screen.width 整个屏幕的像素宽 screen.height 整个屏幕像素高
fullScreen() 全屏显示
frameRate 每秒运行的帧数 frameCount 运行的帧数
key 最近一次键盘敲击 keyCode 键盘敲击某键 keyPressed 键盘被敲击
mousePressed 鼠标被点击 mouseButton 鼠标某个键被点击 mouseReleased 释放鼠标
1.3. [变量数组 ]

数组
float[] myNumber = new float[10]{}; //变量类型[] 数组名称 = new 变量类型[数量] 先定义,然后向计算机申请空间
for (int i =0; i < myNumber.length; i++) {
myNumber[i] = 1.5; //赋值
}

对象组
ArrayList<Ball> ballCollection = new ArrayList<Ball>();
ballCollection.add(new Ball(position, radius, col));
for (Ball draw : ballCollection) {
draw.display();
}
1.4. [操作符 ]

[]数组下标 ()优先级 function()函数或方法
/除(整数除得到整数 %取余 .点运算符 <<位运算 >>位运算
2. [ 绘图 ]
line()线 rect()矩形 ellipse()椭圆 arc()圆弧 triangle()三角形 quad()四边形
bezier(x1, y1, cx1, cy1, cx2, cy2, x2, y2)贝茨曲线 c开头为控制点
自由图形 beginShape() vertex()控制点 bezierVertex()贝茨曲线控制点 endShape()
2.1. [ 颜色模式 ]

颜色模式可以通过colorMode() 改变。

colorMode(mode); //mode:RGB或者HSB
colorMode(mode, max); //常用范围为0.0~1.0,以max设置所有颜色组成
colorMode(mode, max1, max2, max3); //RGB,255,255,255; HSB,360,100,100;
colorMode(mode, max1, max2, max3, alpha) //alpha指透明度
RGB模式

Proccessing默认的颜色模式,通过红(R),绿(G),蓝(B)三个颜色通道相互叠加得到各种颜色。

格式为(R, G, B, alpha),alpha表示透明度,R/G/B取值范围为0-255。

HSB模式

通过H(hues)色相,S(saturation)饱和度,B(brightness)亮度表示颜色。

H:在0-360°的色轮中,色相根据位置确定,H的取值为0-360。

S:表示色彩的纯度,取值为0-100,100为最纯的颜色。

B:色彩的明亮度,取值为0-100,100为最亮的颜色。

2.2. [ 像素 ]

像素相关要用到两个函数:loadPixels()加载像素 与 updatePixels()更新像素点

与像素相关的函数
pixels[] //像素数组
copy() //复制像素
get() //读取像素颜色
set() //设置像素点颜色
示例
color red = color(255, 0, 0);
loadPixels(); //加载像素
for (int i = 0; i < (width*height/2)-width/2; i++) {
pixels[i] = red;
}
updatePixels(); //更新像素点
2.3. [ 绘画属性 ]

background(color)设定画布底色 fill(color)填色 noFill()不填色
stroke(color)线条颜色 noStroke()无线条 strokeWeight(thickness)边框粗细
strokeCap(mode)线条端点形式 ROUND 圆形 SQUARE 方形 PROJECT 方形延申
strokeJoin(mode)线条折角形式 MITER 尖角 BEVEL 斜角 ROUND 圆角
smooth()平滑效果 noSmooth()关闭平滑绘画模式
2.4.[ 运动 ]

translate() 更改坐标原点位置 rotate() 绕原点旋转 scale()缩放
pushMatrix()把原点数据和旋转数据放入矩阵堆栈中 popMatrix()释放堆栈

3. [ 图像 ]
Processing支持的图片格式有GIF/JPG/TGA/PNG

3.1. [ 导入图像]

PImage cat;
cat = loadImage("cat.jpg");
image(img, 0, 0); //长宽不变 插入点(0, 0)
image(img, 0, 0, width, height); //长宽压缩为窗口大小 插入点(0, 0)
img.resize(width, height); //将图形调整为窗口大小
3.2. [ 导出图像 ]

导出单张图片,背景不透明 save("###.png");

if(mousePressed)saveFrame(); //如果按下鼠标,存储
保存单帧图片,点击后存储;

boolean flag;

if(flag){
save("alp2.jpg");
flag = false;
}

void keyPressed(){
flag = true;
}
导出连续多张图片,背景透明

PGraphics pg; //PGraphics对象背景透明
int index = 0; //图片下标
pg = createGraphics(1920, 1080, JAVA2D); //后台画布
pg.save("D:/p5/" + index + ".png"); //文件储存地点和文件名
导出gif图

//使用GifAnimation库来实现(需要加入)
import gifAnimation.*; //导入库
GifMaker gif;

void setup() {
//插入初始化程序
setup_();
}

void draw() {
//插入draw代码
draw_();
}

void setup_() {
gif = new GifMaker(this, "my.gif");
gif.setRepeat(0); //Gif重复播放的次数,0为循环播放
gif.setTransparent(0,0,0); // 颜色参数为三个0,表示黑色 = 透明色
gif.setDelay(40); //帧与帧之间的延迟时间(毫秒),帧率则为 25(1000/40)。
}

void draw_() {
if (frameCount % 1 == 0) { //每间隔多少帧,写入一次(相当于改变播放速率)
gif.addFrame(); //将当前帧写入gif内
}
}
void mousePressed() {
gif.finish(); //导出Gif
}
导出pdf文件

import processing.pdf.*; //导入processing的PDF库
size(640, 640, PDF, "text.pdf"); //在程序所在文件夹生成一个pdf文件

4. [ 文字 ]
4.1. [ 使用字体 ]

//菜单栏选择 "工具 - 创建字体 - 选择字体和大小后复制Filename一栏"
PFont f; //PFont类型的变量

f = loadFont("ACaslonPro-Bold-48.vlw"); //使用loadFont()载入字体到变量f中
f = createFont("ACaslonPro", 48, true);//使用createFont()载入字体,直接调用电脑中的字体,可任意缩放大小

textFont(f, 48); //为下方的文本指定字体
textSize(36); //设置字体大小
fill(255); //设置文本颜色
text("新年快乐", 10, 10); //显示文本,坐标位置
4.2. [ 字符串 ]

String c = ("给大家拜年了!!"); //注意上引号和下引号
text(c, 10, 10, 400, 200); //显示文本,坐标位置, 文本框大小
5. [ 音频 ]
音频一般需要导入Minim音频库。通过建立Minim对象,载入音频文件或者建立声音输入与输出。首先我们需要在“速写本 - 引用库文件 - 添加库文件”中搜索Minim点击Install。

音频一般用到以下的代码。

import ddf.minim.*;
AudioPlayer player; //建立音频播放器
Minim minim; //定义音频对象

void setup() {
minim = new Minim(this);
player = minim.loadFile("music.mp3", 1024); //调取音频文件,指定缓存的采样频率为1024
player.play(); //播放文件
}

void draw(){
}

//需要注意的是,在退出程序前,必须关闭Minim获得的所有I/O类,然后关闭Minim范本。
void stop(){
player.close(); //关闭播放器
minim.stop(); //停止音频
super.stop();
}

player.left.size(); //左声道缓存长度
player.left.get(i); //左声道响度
6. [ 相机]
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
eyeX, eyeY, eyeZ 设置眼睛的位置,可以通过更改这个位置进行3D物体的观察
centerX, centerY, centerZ 画布的中心位置
upX, upY, upZ 旋转方向,1为正,0为不动,-1为反方向

向量计算

add() //向量加法
sub() //向量减法
mult() //乘以标量以延申向量
div() //除以标量以缩短向量
mag() //计算向量的长度
setMag() //设置向量长度
normalize() //向量单位化,使其长度为1
limit() //*向量长度
heading2D() //计算向量方向,用角度表示
rotate() //旋转一个二维向量
lerp() //线性插值到另一个向量
dist() //计算两个向量的欧几里得距离
angleBetween() //计算两个向量的夹角
dot() //计算两个向量的点乘 返回数取整 round()四舍五入

热心网友 时间:2023-11-11 02:11

可以。笔者在学习processing的过程中,遇到一些基础常识问题,在此处记录,也方便初学者学习。1. [ 变量 ]
1.1. [ 变量类型 ]
boolean 布尔变量,储存true/false
int 整数 float 浮点数 double long 巨大的数
char 字符 string 字符串 用"" byte字节
color 颜色
1.2. [ processing中的系统变量 ]
width 窗口像素宽 height 窗口像素高 screen.width 整个屏幕的像素宽 screen.height 整个屏幕像素高
fullScreen() 全屏显示
frameRate 每秒运行的帧数 frameCount 运行的帧数
key 最近一次键盘敲击 keyCode 键盘敲击某键 keyPressed 键盘被敲击
mousePressed 鼠标被点击 mouseButton 鼠标某个键被点击 mouseReleased 释放鼠标
1.3. [变量数组 ]
数组
float[] myNumber = new float[10]{}; //变量类型[] 数组名称 = new 变量类型[数量] 先定义,然后向计算机申请空间
for (int i =0; i < myNumber.length; i++) {
myNumber[i] = 1.5; //赋值
}
对象组
ArrayList<Ball> ballCollection = new ArrayList<Ball>();
ballCollection.add(new Ball(position, radius, col));
for (Ball draw : ballCollection) {
draw.display();
}
1.4. [操作符 ]
[]数组下标 ()优先级 function()函数或方法
/除(整数除得到整数 %取余 .点运算符 <<位运算 >>位运算
2. [ 绘图 ]
line()线 rect()矩形 ellipse()椭圆 arc()圆弧 triangle()三角形 quad()四边形
bezier(x1, y1, cx1, cy1, cx2, cy2, x2, y2)贝茨曲线 c开头为控制点
自由图形 beginShape() vertex()控制点 bezierVertex()贝茨曲线控制点 endShape()
2.1. [ 颜色模式 ]
颜色模式可以通过colorMode() 改变。
colorMode(mode); //mode:RGB或者HSB
colorMode(mode, max); //常用范围为0.0~1.0,以max设置所有颜色组成
colorMode(mode, max1, max2, max3); //RGB,255,255,255; HSB,360,100,100;
colorMode(mode, max1, max2, max3, alpha) //alpha指透明度
RGB模式
Proccessing默认的颜色模式,通过红(R),绿(G),蓝(B)三个颜色通道相互叠加得到各种颜色。
格式为(R, G, B, alpha),alpha表示透明度,R/G/B取值范围为0-255。
HSB模式
通过H(hues)色相,S(saturation)饱和度,B(brightness)亮度表示颜色。
H:在0-360°的色轮中,色相根据位置确定,H的取值为0-360。
S:表示色彩的纯度,取值为0-100,100为最纯的颜色。
B:色彩的明亮度,取值为0-100,100为最亮的颜色。
2.2. [ 像素 ]
像素相关要用到两个函数:loadPixels()加载像素 与 updatePixels()更新像素点
与像素相关的函数
pixels[] //像素数组
copy() //复制像素
get() //读取像素颜色
set() //设置像素点颜色
示例
color red = color(255, 0, 0);
loadPixels(); //加载像素
for (int i = 0; i < (width*height/2)-width/2; i++) {
pixels[i] = red;
}
updatePixels(); //更新像素点
2.3. [ 绘画属性 ]
background(color)设定画布底色 fill(color)填色 noFill()不填色
stroke(color)线条颜色 noStroke()无线条 strokeWeight(thickness)边框粗细
strokeCap(mode)线条端点形式 ROUND 圆形 SQUARE 方形 PROJECT 方形延申
strokeJoin(mode)线条折角形式 MITER 尖角 BEVEL 斜角 ROUND 圆角
smooth()平滑效果 noSmooth()关闭平滑绘画模式
2.4.[ 运动 ]
translate() 更改坐标原点位置 rotate() 绕原点旋转 scale()缩放
pushMatrix()把原点数据和旋转数据放入矩阵堆栈中 popMatrix()释放堆栈
3. [ 图像 ]
Processing支持的图片格式有GIF/JPG/TGA/PNG
3.1. [ 导入图像]
PImage cat;
cat = loadImage("cat.jpg");
image(img, 0, 0); //长宽不变 插入点(0, 0)
image(img, 0, 0, width, height); //长宽压缩为窗口大小 插入点(0, 0)
img.resize(width, height); //将图形调整为窗口大小
3.2. [ 导出图像 ]
导出单张图片,背景不透明 save("###.png");
if(mousePressed)saveFrame(); //如果按下鼠标,存储
保存单帧图片,点击后存储;
boolean flag;
if(flag){
save("alp2.jpg");
flag = false;
}
void keyPressed(){
flag = true;
}
导出连续多张图片,背景透明
PGraphics pg; //PGraphics对象背景透明
int index = 0; //图片下标
pg = createGraphics(1920, 1080, JAVA2D); //后台画布
pg.save("D:/p5/" + index + ".png"); //文件储存地点和文件名
导出gif图
//使用GifAnimation库来实现(需要加入)
import gifAnimation.*; //导入库
GifMaker gif;
void setup() {
//插入初始化程序
setup_();
}
void draw() {
//插入draw代码
draw_();
}
void setup_() {
gif = new GifMaker(this, "my.gif");
gif.setRepeat(0); //Gif重复播放的次数,0为循环播放
gif.setTransparent(0,0,0); // 颜色参数为三个0,表示黑色 = 透明色
gif.setDelay(40); //帧与帧之间的延迟时间(毫秒),帧率则为 25(1000/40)。
}
void draw_() {
if (frameCount % 1 == 0) { //每间隔多少帧,写入一次(相当于改变播放速率)
gif.addFrame(); //将当前帧写入gif内
}
}
void mousePressed() {
gif.finish(); //导出Gif
}
导出pdf文件
import processing.pdf.*; //导入processing的PDF库
size(640, 640, PDF, "text.pdf"); //在程序所在文件夹生成一个pdf文件
4. [ 文字 ]
4.1. [ 使用字体 ]
//菜单栏选择 "工具 - 创建字体 - 选择字体和大小后复制Filename一栏"
PFont f; //PFont类型的变量
f = loadFont("ACaslonPro-Bold-48.vlw"); //使用loadFont()载入字体到变量f中
f = createFont("ACaslonPro", 48, true);//使用createFont()载入字体,直接调用电脑中的字体,可任意缩放大小
textFont(f, 48); //为下方的文本指定字体
textSize(36); //设置字体大小
fill(255); //设置文本颜色
text("新年快乐", 10, 10); //显示文本,坐标位置
4.2. [ 字符串 ]
String c = ("给大家拜年了!!"); //注意上引号和下引号
text(c, 10, 10, 400, 200); //显示文本,坐标位置, 文本框大小
5. [ 音频 ]
音频一般需要导入Minim音频库。通过建立Minim对象,载入音频文件或者建立声音输入与输出。首先我们需要在“速写本 - 引用库文件 - 添加库文件”中搜索Minim点击Install。
音频一般用到以下的代码。
import ddf.minim.*;
AudioPlayer player; //建立音频播放器
Minim minim; //定义音频对象
void setup() {
minim = new Minim(this);
player = minim.loadFile("music.mp3", 1024); //调取音频文件,指定缓存的采样频率为1024
player.play(); //播放文件
}
void draw(){
}
//需要注意的是,在退出程序前,必须关闭Minim获得的所有I/O类,然后关闭Minim范本。
void stop(){
player.close(); //关闭播放器
minim.stop(); //停止音频
super.stop();
}
player.left.size(); //左声道缓存长度
player.left.get(i); //左声道响度
6. [ 相机]
camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ)
eyeX, eyeY, eyeZ 设置眼睛的位置,可以通过更改这个位置进行3D物体的观察
centerX, centerY, centerZ 画布的中心位置
upX, upY, upZ 旋转方向,1为正,0为不动,-1为反方向
向量计算
add() //向量加法
sub() //向量减法
mult() //乘以标量以延申向量
div() //除以标量以缩短向量
mag() //计算向量的长度
setMag() //设置向量长度
normalize() //向量单位化,使其长度为1
limit() //*向量长度
heading2D() //计算向量方向,用角度表示
rotate() //旋转一个二维向量
lerp() //线性插值到另一个向量
dist() //计算两个向量的欧几里得距离
angleBetween() //计算两个向量的夹角
dot() //计算两个向量的点乘 返回数取整 round()四舍五入

热心网友 时间:2023-11-11 02:12

可以。笔者在学习processing的过程中,遇到一些基础常识问题,在此处记录,也方便初学者学习。1. [ 变量 ]
1.1. [ 变量类型 ]
boolean 布尔变量,储存true/false
int 整数 float 浮点数 double long 巨大的数
char 字符 string 字符串 用"" byte字节
color 颜色
1.2. [ processing中的系统变量 ]
width 窗口像素宽 height 窗口像素高 screen.width 整个屏幕的像素宽 screen.height 整个屏幕像素高
fullScreen() 全屏显示
frameRate 每秒运行的帧数 frameCount 运行的帧数
key 最近一次键盘敲击 keyCode 键盘敲击某键 keyPressed 键盘被敲击
mousePressed 鼠标被点击 mouseButton 鼠标某个键被点击 mouseReleased 释放鼠标
1.3. [变量数组 ]
数组
float[] myNumber = new float[10]{}; //变量类型[] 数组名称 = new 变量类型[数量] 先定义,然后向计算机申请空间
for (int i =0; i < myNumber.length; i++) {
myNumber[i] = 1.5; //赋值
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
折儿是什么意思? 什么叫饭折? 饭折是什么意思 私募股权基金6种模式 私募投资业务管理系统 火山仙泉天然矿泉水产品特点 用苏打片带吃带洗真的能生男孩吗 凡山天然苏打水怎么样 美的面包机和面要多久 美的面包机和面的时间要多长 美的面包机怎么用手动操作 processing代码文件的扩展名为 电动车的车牌怎么注销 电动自行车牌照怎么注销 怎样辨解龙虾的语言。 阴阳师全新徽章墙怎么玩 虾字拼音 虾鬼的引证解释虾鬼的引证解释是什么 欸乃ǎinǎi什么意思近义词和反义词是什么英文翻译是什么 乡村的读音乡村的读音是什么 重庆工商大学三本的毕业证和重庆工商大学二本的毕业证一样吗 有关重庆工商大学2、3本的毕业证区别 重庆工商大学继续教育学院上清寺教学部的毕业证和重庆工商大学毕业证有什么区别 空心菜炝玉米——开胃消食降脂 不是本人手机号注册的快手可以别人实名吗 工商银行信用卡申请进度提示「开户成功」,请问现在查的到额度吗?怎么查呢?还有,多久可以拿到卡片吖? 暴动[bào dòng]什么意思?近义词和反义词是什么?英文翻译是什么? riot翻译是石头吗 rioatg 这个单词解释 求氧气压强为0.1mpa、温度为27°时的密度 25MPa,常温氮气的密度怎么计算? 或者高压氮气适用什么状态方程? 梦见外婆死在自己怀里 梦见母亲死在自己怀里 梦见外婆死在我怀里 梦见人死我怀里了的预兆 非偶的诗词非偶的诗词是什么 苹果12pro价格表官网报价是多少 iphone12pro是什么意思? 天目湖旅游度假区好玩吗门票多少钱 大病门诊报销需要哪些资料 苹果手机微信聊天打不了字是什么原因苹果手机微信为什么不能打字 眼睛长了麦粒肿怎么办麦粒肿早期症状有哪些怎么治疗和护理麦粒肿 life的复数用法 uu加速器没有下载按钮 培根的名言句除了一个真心的之外没有一样药剂是可以通心的 人除了真心的朋友之外,有没有必要交一些陪伴型朋友,每天一起吃饭上课开心,但不能共患难的?? dnf增幅失败掉3级 DNF增幅红字会失败吗? dnf我的红字武器咋老是增幅失败都快花一e了求高人交一个增幅的方法 中秋国庆怎么放假 国庆中秋最强拼假攻略全国超500家景区免费或打折