Contents
  1. 1. 3D元素
    1. 1.0.1. 围绕X(y、z)轴旋转
    2. 1.0.2. 比例换算运算
    3. 1.0.3. 立方体
    4. 1.0.4.
    5. 1.0.5. 球体渲染细节
  • 2. 鼠标
    1. 2.0.1. 快速点击鼠标(按下并松开)
    2. 2.0.2. 鼠标拖拽时
    3. 2.0.3. 移动鼠标时
    4. 2.0.4. 按住鼠标时
    5. 2.0.5. 松开鼠标时
    6. 2.0.6. 滚轮
    7. 2.0.7. 鼠标位置
  • 关于个人主页的一些想法

    我的博客是成立了,但是总不是我要的那种感觉。我的主页应该是看起来比较酷炫脸要好,和用户的交互比较多的那种。睡午觉的时候突然有了一个想法,可以把主页的各个功能放在一个3D的图形角落上,然后跟着鼠标进行移动,具体设想参考哔哩哔哩名人堂。不过这个它是一个flash,我可以用可视化工具实现它,现有知识理论上已经足够我把这样一个东西做出来,但是实际上先不考虑服务器部署这些问题,单从Processing的Java方式实现图形,再在图形上撸出链接模块都够我玩很久了。所以,我准备大概花上一段时间先把要做的图形先撸出来,后面的事情,就不再想下去了。

    でもね,当我想找找关于这部分的语法API的时候,惊了,书里竟然没有!语言作者写的这么厚的《Processing权威指南》竟然没有!精了。3D仅仅是作为一个附录放在后面,假装举了几个无意义的例子,这迫使我要去官网寻找帮助,强行阅读文档。幸好有李沣泉大神的官方文档部分翻译资料,谢谢创建以及已经不再维护这个网站的工作人员,现部分内容摘录如下:

    3D元素

    围绕X(y、z)轴旋转

    放在坐标系转换后,图绘前

    rotateX(angle);    //格式可为PI/3.0、radians(60)、map(mouseY, 0, height, -PI, PI)等
    

    比例换算运算

    map(value, start1, stop1, start2, stop2);    //将value的范围从D1自动换算到D2
    
    norm(value, start, stop); = map(value, low, high, 0, 1); //换算为百分比
    

    立方体

    box(size);
    box(w,h,d);    //x轴长度,y轴长度,z轴长度
    
    1
    2
    3
    4
    5
    size(100, 100, P3D);
    translate(58, 48, 0); //坐标系转换
    rotateY(0.5);
    noFill();
    box(40, 20, 50);

    sphere(r);    //半径
    
    1
    2
    3
    4
    noStroke();
    lights();
    translate(58, 48, 0);
    sphere(28);

    球体渲染细节

    ps:在sphere()后使用

    sphereDetail(res);    //每个圆的面的分辨率所用的段数(最少为3)
    sphereDetail(ures, vres);    //每个圆的面的分辨率经度,纬度所用的段数
    

    鼠标

    快速点击鼠标(按下并松开)

    mouseButton == LEFT / CENTER / RIGHT     //对应左中右键
    mouseClicked();        //执行draw()    
    

    鼠标拖拽时

    mouseDragged();        //执行draw()
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int value = 0;
    void draw() {
    fill(value);
    rect(25, 25, 50, 50);
    }
    void mouseDragged()
    {
    value = value + 5;
    if (value > 255) {
    value = 0;
    }
    }

    移动鼠标时

    mouseMoved();        //执行draw(),用法同上
    

    按住鼠标时

    mousePressed();        //执行draw()
    mousePressed == TRUE / FALSE        //是否按下鼠标
    

    松开鼠标时

    mouseReleased();    //执行draw()
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int value = 0
    void draw() {
    fill(value);
    rect(25, 25, 50, 50);
    }
    void mouseReleased() {
    if (value == 0) {
    value = 255;
    } else {
    value = 0;
    }
    }

    滚轮

    mouseWheel();    //记录滚轮偏离值
    getAmount();    //返回偏离数值,下正上负
    
    1
    2
    3
    4
    5
    6
    7
    8
    void setup() {
    size(100, 100);
    }
    void draw() {}
    void mouseWheel(MouseEvent event) {
    float e = event.getAmount();
    println(e);
    }

    鼠标位置

    mouseX & mouseY            //鼠标的坐标
    pmouseX & pmousey            //鼠标前一帧的坐标,制造延迟感
    
    1
    2
    3
    4
    5
    void draw() {
    background(204);
    line(mouseX, 20, pmouseX, 80);
    println(mouseX + " : " + pmouseX);
    }
    Contents
    1. 1. 3D元素
      1. 1.0.1. 围绕X(y、z)轴旋转
      2. 1.0.2. 比例换算运算
      3. 1.0.3. 立方体
      4. 1.0.4.
      5. 1.0.5. 球体渲染细节
  • 2. 鼠标
    1. 2.0.1. 快速点击鼠标(按下并松开)
    2. 2.0.2. 鼠标拖拽时
    3. 2.0.3. 移动鼠标时
    4. 2.0.4. 按住鼠标时
    5. 2.0.5. 松开鼠标时
    6. 2.0.6. 滚轮
    7. 2.0.7. 鼠标位置