Processing 教程(7) - 平移、旋转、放缩
首先定义一些辅助线函数,并且测试;
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) - 平移、旋转、放缩相关推荐
- Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)
Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 目录 Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 前言 简单的平移.旋转和放缩 其他元素的一些基本使用 qm ...
- 20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场
20P46 Premiere预设800种干扰缩放平移旋转分割拉伸全景透视扭曲炫光视频无缝转场 模版信息: 适用软件:Premiere Pro CC 2015.3 或更高版本 使用插件:无需外置插件 分 ...
- 三维空间中的几何变换-平移旋转缩放
前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...
- Unity 触屏手势控制Camera平移旋转缩放
Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...
- HTML5 Canvas平移,放缩,旋转演示
HTML5 Canvas中提供了实现图形平移,旋转,放缩的API. 平移(translate) 平移坐标translate(x, y)意思是把(0,0)坐标平移到(x, y),原来的(0,0)坐标则变 ...
- Unity矩阵平移旋转缩放Matrix4x4
Unity中的矩阵(Matrix4x4) 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵,所以在这里分享下基础的矩阵案例旋转.平移.缩放.(注意这里本文中的transform组件式基于unity ...
- OpenCV——图像的平移旋转
1.学习图像数据格式Mat 像素就是把图形分割成很多大小相等的小正方形,其中每一个都是一个像素.我们常见的800*600的图形,800代表宽度,600代表高度. 灰度图像就是黑白灰,只有这三种颜色,其 ...
- python处理svg 平移 旋转_d3.js封装文本实现自动换行和旋转平移等功能
我们下面话不多说,本文主要介绍的是利用D3.js封装文本实现自动换行功能的步骤,下面来一起看看吧. 一.引用 multext.js 文件 multext.js function appendMulti ...
- C# 图片盖章功能实现,支持拖拽-旋转-放缩-保存
实现图片盖章功能,在图片上点击,增加"图章"小图片,可以拖拽"图章"到任意位置,也可以点击图章右下角园框,令图片跟着鼠标旋转和放缩. 操作方法:1.点击增加&q ...
最新文章
- C什么k什么_cssci跟c刊有什么区别
- openssl java使用手册_openssl使用手册
- 三分钟带你对 Softmax 划重点
- 图形化代码阅读工具——Scitools Understand
- 题目: javaweb前端素材管理系统(附免费下载源码链接)
- 改变窗口的外观和大小
- Yum本地Rpm库设置
- 【Java开发工具】下载安装eclipse并中文配置教程(所以操作系统通用)
- AutoCAD二次开发学习文档
- 【人民币识别】基于RGB颜色空间实现人民币序列号识别含Matlab源码
- HackTheBox-Spider WP
- 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
- 谷歌面试题之扔鸡蛋的问题(蓝桥杯摔手机的问题)
- 写一篇简单的TileMap入门教程
- 用python全方位解析2019新冠疫情词云图
- JavaScript利用Date对象实现倒计时效果
- 请记住内核中这个勤劳的监测卫士---Watchdog(Soft lockup篇)
- EventBus基础
- ERP功能_财务管理_发票红,蓝字的区别
- pusher php,Laravel利用pusher推送消息的方法详解