Processing 学习日记六 平移、旋转和缩放 0131

Processing 学习日记六 平移、旋转和缩放 0131

首页模拟经营天天吃回转更新时间:2024-05-09
一、平移

translate(x, y)函数用于改变坐标系,使之向左、向右、向上或者向下。多个translate()函数,原点的坐标是累加的。例如:

void setup() { size(120, 120); } void draw() { translate(mouseX, mouseY); rect(0, 0, 30, 30); translate(35, 10);//第一个 rect(0, 0, 15, 15); translate(35, 10);//第二个 rect(0, 0, 15, 15); //这个矩形被移动了 mouseX 35和 mouseY 10的距离。 }

如果两个图形想要独立变换,可以使用pushMatrix()和popMatrix()函数。当pushMatrix()函数运行的时候,它保存一个当前坐标系的备份,然后在调用popMatrix()函数之后还原。例如:

void setup() { size(120, 120); } void draw() { pushMatrix(); translate(mouseX, mouseY); rect(0, 0, 30, 30); popMatrix(); translate(35, 10); rect(0, 0, 15, 15);//位置不变 }二、旋转

rotate(A)函数用于沿原点旋转整个坐标系。它有一个参数,是要旋转的角度(用弧度制表示)。

三、缩放

scale()函数可延展屏幕中的坐标。scale(1.5)使得每一个物体都是原来尺寸的150%,scale(0.5)使得每个物体变成原来尺寸的一半。

注意:scale()方法会影响描边粗细。为了图形缩放中保持一个一致的描边粗细,需要用所期望的描边粗细除以一个标量值。

void setup() { size(120, 120); } void draw() { translate(mouseX, mouseY); float scalar = mouseX / 60.0;//定义一个标量值 scale(scalar); strokeWeight(1.0 / scalar); rect(-15, -15, 30, 30); }

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved