处理手册(第二版)中有这样的示例 17-10:
PShape zig;
void setup() {
size(100, 100);
zig = createShape();
zig.beginShape();
zig.fill(0);
zig.noStroke();
zig.vertex(10, 0);
zig.vertex(100, 30);
zig.vertex(90, 70);
zig.vertex(100, 70);
zig.vertex(10, 90);
zig.vertex(50, 40);
zig.endShape();
zig.scale(0.7);
zig.translate(-50, -50);
}
void draw() {
background(204);
shape(zig, 50, 50);
zig.rotate(0.01);
}
书中随本示例提供的图像显示了围绕画布中心旋转的形状。
然而,当我运行确切的代码时,形状围绕画布左上角的 [0,0] 点旋转。
-50, -50 平移和 50, 50 坐标对我来说似乎暗示(基于我有限的理解)旋转应该以 [50, 50] 点为中心,但是当我运行代码?关于如何让形状绕其中心旋转有什么想法吗?
我的意思是特别使用 zig.rotate() 方法,我知道您可以将画布作为一个整体进行平移和旋转,但我想专门围绕其中心旋转该形状。
创建 PShapes 后可以更改原点吗?
谢谢!
我能够使用默认渲染器在 3.0a10 中重现这一点。如果我指定P2D
作为渲染器size(100,100,P2D)
, the PShape
正如预期的那样,绕中心点旋转。在版本 2.2.1 中指定 P2D 也有效。
所以我认为这看起来像是一个错误。也许值得在处理Github https://github.com/processing/processing/issues?
更新:似乎已经有一个对此的开放问题 https://github.com/processing/processing/issues/2783.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)