gpt4 book ai didi

processing - 如何围绕中心旋转 PShape?

转载 作者:行者123 更新时间:2023-12-03 11:15:22 26 4
gpt4 key购买 nike

Processing 手册(第二版)中的示例 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);
}

本书中与此示例配套的图像显示了围绕 Canvas 中心旋转的形状。

但是,当我运行该代码时,形状会围绕 Canvas 左上角的 [0,0] 点旋转。

-50, -50 平移和 50, 50 坐标对我来说似乎暗示(基于我有限的理解)旋转应该以 [50, 50] 点为中心,但这并不适用当我运行代码时?关于如何让形状围绕其中心旋转有什么想法吗?我的意思是特别使用 zig.rotate() 方法,我知道你可以将 Canvas 作为一个整体进行平移和旋转,但我想专门围绕它的中心旋转这个形状。创建 PShapes 后可以更改原点吗?谢谢!

最佳答案

我能够使用默认渲染器在 3.0a10 中重现这一点。如果我将 P2D 指定为渲染器 size(100,100,P2D)PShape 将按预期围绕中心点旋转。在版本 2.2.1 中指定 P2D 也有效。

所以我认为这看起来像一个错误。也许值得在 Processing Github 上开一个问题?

更新:似乎已经有一个 open issue for this .

关于processing - 如何围绕中心旋转 PShape?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com