码迷,mamicode.com
首页 > 其他好文 > 详细

Getting started with Processing 第六章总结

时间:2018-12-09 20:08:15      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:use   scale   ota   移动   raw   坐标系   移位   with   作者   

平移,旋转和缩放

前言

在这一章节中,平移、旋转和缩放都是以原点为基准的。并且是通过控制坐标系原点的位置来达到图元平移,旋转、缩放的视觉效果。
作者在文中的原话是:
另一种在屏幕上改变位置和移动物体的技术是改变屏幕的坐标系。举例来说,你可以将一个图形向右移动50像素,你也可以将坐标 (0,0) 向右移动50像素,它们在视觉效果上是相同的。
所以说在 Processing 中的坐标是相对坐标系下的坐标,而不是绝对坐标系下的坐标。

函数

平移位置:translate(x,y);

旋转:rotate(angle);

缩放 scale();

压栈和弹出:pushMatrix() ,popMatrix()

当 pushMatrix() 函数运行的时候,它保存当前坐标系的备份,然后当调用popMatrix()的时候还原。

举例

更好地理解相对坐标系的概念,分析一下移动,然后再旋转和旋转然后再移动两种不同的效果。

移动,然后再旋转

程序如下:
void draw()
translate(mouseX,mouseY);
rotate(angle);
rect(-15,-15,30,30);
angle+=0.1
}
首先运行了 translate() 函数,将目前的坐标定位在了 (mouseX,mouseY) 「绝对坐标」处,然后再进行绕着(mouseX,mouseY)「绝对坐标」这一点,旋转 angle 的角度。

旋转,然后再移动

程序如下:
void draw(){
rotate(angle);
translate(mouseX,mouseY);
rect(-15,-15,30,30);
angle +=0.1;
}
首先,先绕着原点旋转 rotate 所表示的角度,然后再将其位置改变为 (mouseX,mouseY),在这个过程中,不断进行下去。在这个程序中,图元一直是绕原点旋转的。





Getting started with Processing 第六章总结

标签:use   scale   ota   移动   raw   坐标系   移位   with   作者   

原文地址:https://www.cnblogs.com/FBsharl/p/10092362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!