gpt4 book ai didi

java - 线路旋转: Processing

转载 作者:行者123 更新时间:2023-12-02 06:15:00 25 4
gpt4 key购买 nike

下面给出的代码用于围绕窗口中心旋转一条线。问题是程序的输出很奇怪。我哪里错了?我包含代码和不同的输出来说明问题。

void setup()
{
size(500,500);
translate(width/2, height/2);
line(0,0,200,0);
line(0,0,0,200);
line(0,0,-200,0);
line(0,0,0,-200);
pushMatrix();
float x=200*cos(degrees(30));
float y=200*sin(degrees(30));
line(0,0,x,y);
popMatrix();
}

enter image description here

当将角度更改为 45 度时,我得到:

enter image description here当我将角度更改为 60 时,我得到:

enter image description here

这里的角度如何?

最佳答案

您使用了错误的函数来获取弧度。

<强> radians(angle) 转换度数 --> 弧度;

<强> degrees(angle) 转换弧度 --> 度。

<小时/>

下面的代码运行良好:

float x, y, radius;

void setup () {
size(500, 500);
radius = 200;
}

void draw () {
background(255);

pushMatrix();
translate(width/2, height/2);
line(-200, 0, 200, 0);
line(0, -200, 0, 200);

x = radius*cos(radians(30));
y = radius*sin(radians(30));

line(0, 0, x, y);
popMatrix();
}
<小时/>

让我澄清另一件事:

Transformations are cumulative and apply to everything that happens after and subsequent calls to the function accumulates the effect. [...] If translate() or rotate() is called within draw(), the transformation is reset when the loop begins again. – P5 Reference

pushMatrix() 和 popMatrix() 对于封装您不想应用于整个代码的矩阵转换非常有用。它们在您的示例中毫无用处。

关于java - 线路旋转: Processing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21570215/

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