首先定义一些辅助线函数,并且测试;

float cm = 3.767;
void setup()
{size(720,404);frameRate(2);
}// 画垂直线的函数,参数为x;
void lineX(float x)
{line(x,0,x,height);text(">"+str(x),x,30);
}
// 画水平线的函数,参数为y;
void lineY(float y)
{line(0,y,width,y);text("V"+str(y),10,y);
}
// 画十字线的函数,参数为x,y;
void lineCross(float x, float y)
{line(0,y,width,y);line(x,0,x,height);text("("+str(x)+", "+str(y)+")",x,y);
}void draw()
{background(20);stroke(#FA826D);lineX(100);stroke(#7FFA6D);lineY(100);stroke(#6E6DFA);lineCross(width/2,height/2);
}


好了,现在开始介绍平移,旋转,放缩:

实例2:图形变换;

translate(x,y)把新的原点设置在了(x,y);

rotate(PI/4)把图形旋转了pi/4;

scale(5);把图形连同坐标系相对位置扩展为5倍。

void setup()
{fullScreen();frameRate(5);
}// 画垂直线的函数,参数为x;
void lineX(float x)
{stroke(#FA826D);line(x,0,x,height);text(">"+str(x),x,30);
}
// 画水平线的函数,参数为y;
void lineY(float y)
{stroke(#7FFA6D);line(0,y,width,y);text("V"+str(y),10,y);
}
// 画十字线的函数,参数为x,y;
void lineCross(float x, float y)
{stroke(#6E6DFA);line(0,y,width,y);line(x,0,x,height);text("("+str(x)+", "+str(y)+")",x,y);
}void draw()
{background(20);lineCross(width/2,height/2);translate(200,200);lineCross(0,0);rect(20,20,20,40);rotate(PI/4);rect(20,20,20,40);scale(5);rect(20,20,20,40);
}

说明: setup()函数中,把窗口设置成全屏模式的函数是:fullScreen();

实例4: 独立的变换:

使用pushMatrix()和popMatrix();

代码片段:

void draw()
{background(20);lineCross(width/2,height/2);pushMatrix();translate(mouseX,mouseY);noFill();   ellipse(0,0,100,100);popMatrix();ellipse(0,0,100,100);
}

这段代码中,最后一条画圆弧的函数,就不受变换的影响了,因为push和pop函数把变换限制成为独立的变换系中。

------------

Processing 教程(7) - 平移、旋转、放缩相关推荐

  1. Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

    Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 目录 Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 前言 简单的平移.旋转和放缩 其他元素的一些基本使用 qm ...

  2. 20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场

    20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场 模版信息: 适用软件:Premiere Pro CC 2015.3 或更高版本 使用插件:无需外置插件 分 ...

  3. 三维空间中的几何变换-平移旋转缩放

    前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...

  4. Unity 触屏手势控制Camera平移旋转缩放

    Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...

  5. HTML5 Canvas平移,放缩,旋转演示

    HTML5 Canvas中提供了实现图形平移,旋转,放缩的API. 平移(translate) 平移坐标translate(x, y)意思是把(0,0)坐标平移到(x, y),原来的(0,0)坐标则变 ...

  6. Unity矩阵平移旋转缩放Matrix4x4

    Unity中的矩阵(Matrix4x4) 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵,所以在这里分享下基础的矩阵案例旋转.平移.缩放.(注意这里本文中的transform组件式基于unity ...

  7. OpenCV——图像的平移旋转

    1.学习图像数据格式Mat 像素就是把图形分割成很多大小相等的小正方形,其中每一个都是一个像素.我们常见的800*600的图形,800代表宽度,600代表高度. 灰度图像就是黑白灰,只有这三种颜色,其 ...

  8. python处理svg 平移 旋转_d3.js封装文本实现自动换行和旋转平移等功能

    我们下面话不多说,本文主要介绍的是利用D3.js封装文本实现自动换行功能的步骤,下面来一起看看吧. 一.引用 multext.js 文件 multext.js function appendMulti ...

  9. C# 图片盖章功能实现,支持拖拽-旋转-放缩-保存

    实现图片盖章功能,在图片上点击,增加"图章"小图片,可以拖拽"图章"到任意位置,也可以点击图章右下角园框,令图片跟着鼠标旋转和放缩. 操作方法:1.点击增加&q ...

最新文章

  1. C什么k什么_cssci跟c刊有什么区别
  2. openssl java使用手册_openssl使用手册
  3. 三分钟带你对 Softmax 划重点
  4. 图形化代码阅读工具——Scitools Understand
  5. 题目: javaweb前端素材管理系统(附免费下载源码链接)
  6. 改变窗口的外观和大小
  7. Yum本地Rpm库设置
  8. 【Java开发工具】下载安装eclipse并中文配置教程(所以操作系统通用)
  9. AutoCAD二次开发学习文档
  10. 【人民币识别】基于RGB颜色空间实现人民币序列号识别含Matlab源码
  11. HackTheBox-Spider WP
  12. 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
  13. 谷歌面试题之扔鸡蛋的问题(蓝桥杯摔手机的问题)
  14. 写一篇简单的TileMap入门教程
  15. 用python全方位解析2019新冠疫情词云图
  16. JavaScript利用Date对象实现倒计时效果
  17. 请记住内核中这个勤劳的监测卫士---Watchdog(Soft lockup篇)
  18. EventBus基础
  19. ERP功能_财务管理_发票红,蓝字的区别
  20. pusher php,Laravel利用pusher推送消息的方法详解

热门文章

  1. socket利用bind函数绑定本地端口号和IP地址,一直提示错误,返回10049,
  2. seo站内优化的方法有哪些(站内优化和站外优化)
  3. Java日志框架 -- SLF4J日志门面(入门案例、SLF4J优点、SLF4J日志绑定、SL4J桥接旧的日志框架)
  4. slf4j logger
  5. Cda Level1学习轨迹
  6. linux没有浏览器如何卸载,在Ubuntu 20.04系统上安装及卸载Tor浏览器的方法
  7. NXP S32V APEX编程概述
  8. 2015年基于宏的恶意软件数量再次飙升
  9. 读鸟哥Linux私房菜知识点总结(20170712)
  10. 华为宣布将发布全新操作系统!任正非发话