当前位置: 首页 > news >正文

Processing中库和导出PDF内容

一.库

1.使用库的方式

       从菜单栏(Sketch Menu)选择导入库(import labrary),选择一个我们要添加或者成需要用到的库。

       例如:当我们需要添加PDF扩展库时,需要将下面这段代码添加到草图中。

       import processing.pdf.*;

       除了processing里的库(这些被称为核心库),还有超过100非官方的库在processing网站上。

       在通过菜单栏导入非官方的库时,我们需要从各自的网站下载文件并且存放到本地库文件夹中。我们本地的库(libraries)文件来位于草稿本(Sketchbook)里。我们可以通过打开Processing的偏好设置(Preferences)找到本地草稿本(Sketchbook)的路径,库管理系统(LibraryManager)同样可以进行更新和移除库。

二.导出PDF案例

       案例代码如下

import processing.pdf.*;
import java.util.Calendar;
boolean savePDF=false;
int segmentCount = 360;

int radius = 200;
void setup(){
  size(800,800);
}
void draw(){
  if(savePDF) beginRecord(PDF,timestamp()+".pdf");//保存PDF
  noStroke();
  colorMode(HSB,360,width,height);
  background(360);
  float angleStep =360/segmentCount;
 
  beginShape(TRIANGLE_FAN);
  vertex(width/2,height/2);
  for(float angle = 0;angle<=360;angle+=angleStep){
    float vx = width/2+cos(radians(angle))*radius;
    float vy = width/2+sin(radians(angle))*radius;
    vertex(vx,vy);
    fill(angle,mouseX,mouseY);
  }
  endShape();
 
  if(savePDF){
    savePDF=false;
    endRecord();
  }
}
void keyReleased(){
  if(key=='s'||key=='S')saveFrame(timestamp()+"_##.png");//保存PNG
  if(key=='p'||key=='P')savePDF=true;
  switch(key){
    case'1':
    segmentCount=360;
    break;
    case'2':
    segmentCount=45;
    break;
    case'3':
    segmentCount=24;
    break;
    case'4':
    segmentCount=12;
    break;
    case'5':
    segmentCount=6;
    break;
  }
}
String timestamp(){
  Calendar now=Calendar.getInstance();
  return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS",now);
}

       保存并运行如图1

                                   图1

       注意:案例中按下大写P或者小写p保存PNG,如果按下大写S或者小写s可以保存PDF。圆盘颜色、明亮度、透明度跟随鼠标的变化而变化。另外按下数字1~5圆盘角度会有不同的惊喜,大家可以复制粘贴运行玩玩。


http://www.mrgr.cn/news/1896.html

相关文章:

  • 【Android 笔记】Android APK编译打包流程
  • React前端面试每日一试 8.什么是React Portals?
  • Git基础知识
  • 【Linux】线程安全的单例模式 STL和智能指针的线程安全问题 其他常见的各种锁 读者写者模型(线程的周边话题)
  • go语言协程之间的同步
  • 解决k8s进入dashboard页面,浏览器提示连接不是私密链接的问题
  • 图像处理之 Gamma LUT
  • Ubuntu虚拟机服务器的搭建
  • qt-11基本对话框(消息框)
  • Python基础知识学习总结(五)
  • 夏季炎热,宠物化身掉毛大王,猫咪浮毛异味问题该如何解决?
  • C#:基本语法
  • Vue+SortableJs实现拖拽排序
  • 《深入理解 Java 接口》
  • 【区块链+金融服务】广电融汇通供应链金融平台 | FISCO BCOS应用案例
  • 如何从Mac 电脑恢复已删除的文件
  • pygame开发课程系列(7):打砖块,飞行射击,跳跃游戏实例开发
  • Linux安装MQTT 服务器(图文教程)
  • AI作画提示词(Prompts)工程:技巧与最佳实践
  • uniapp中节点信息的使用