Processing笔记(四)
Contents
2. 鼠标
关于个人主页的一些想法
我的博客是成立了,但是总不是我要的那种感觉。我的主页应该是看起来比较酷炫脸要好,和用户的交互比较多的那种。睡午觉的时候突然有了一个想法,可以把主页的各个功能放在一个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轴长度
|
|
球
sphere(r); //半径
|
|
球体渲染细节
ps:在sphere()后使用
sphereDetail(res); //每个圆的面的分辨率所用的段数(最少为3)
sphereDetail(ures, vres); //每个圆的面的分辨率经度,纬度所用的段数
鼠标
快速点击鼠标(按下并松开)
mouseButton == LEFT / CENTER / RIGHT //对应左中右键
mouseClicked(); //执行draw()
鼠标拖拽时
mouseDragged(); //执行draw()
|
|
移动鼠标时
mouseMoved(); //执行draw(),用法同上
按住鼠标时
mousePressed(); //执行draw()
mousePressed == TRUE / FALSE //是否按下鼠标
松开鼠标时
mouseReleased(); //执行draw()
|
|
滚轮
mouseWheel(); //记录滚轮偏离值
getAmount(); //返回偏离数值,下正上负
|
|
鼠标位置
mouseX & mouseY //鼠标的坐标
pmouseX & pmousey //鼠标前一帧的坐标,制造延迟感
|
|