zoukankan      html  css  js  c++  java
  • Getting started with Processing 第六章总结

    平移,旋转和缩放

    前言

    在这一章节中,平移、旋转和缩放都是以原点为基准的。并且是通过控制坐标系原点的位置来达到图元平移,旋转、缩放的视觉效果。
    作者在文中的原话是:
    另一种在屏幕上改变位置和移动物体的技术是改变屏幕的坐标系。举例来说,你可以将一个图形向右移动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),在这个过程中,不断进行下去。在这个程序中,图元一直是绕原点旋转的。





  • 相关阅读:
    SJTU T4143 推箱子
    Markdown基本语法
    命令行的操作——cd
    C++ ------- 类和对象
    数据结构------栈和队列
    MySQL------ 子查询
    MySQL------ SQL99语法
    C++------内存分区模型
    第三章------数据链路层
    MySQL------ SQL92语法
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10092362.html
Copyright © 2011-2022 走看看