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),在这个过程中,不断进行下去。在这个程序中,图元一直是绕原点旋转的。





  • 相关阅读:
    动态规划设计:最长递增子序列
    经典动态规划:编辑距离
    经典动态规划:子集背包问题
    iOS开发网络篇—HTTP协议
    IOS之Core Foundation框架和Cocoa Foundation框架的区别
    iOS开发多线程篇—GCD简介
    iOS-UIImage变为NSData并进行压缩
    iOS开发UI之Quartz2D使用(绘制基本图形)
    UIImagePickerController
    mac下搭建discuz论坛
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10092362.html
Copyright © 2011-2022 走看看