使用processing.org Trig正确函数



这确实使我发疯,我知道我很愚蠢。这条线为什么不45度?

    size(800, 600);
    background (30);  
    stroke(255);
    float r = 100;
    float a= 20+   r * cos(radians(QUARTER_PI))   ;
    float b= 20+   r * sin(radians(QUARTER_PI))   ;
    line(20,20,a,b);

我已经从一个较大的项目中简化了此代码,如果我进行了很多迭代,则圆圈出现。我做了什么来制作角度尺度?

我将通过调试代码开始。由于要传递给line()的值,该行不是45度。通过打印ab的值,很明显,该线从坐标(20,20)绘制到大致(119,21)。因此,您正在告诉程序绘制一条直线。

print(a + "n");  // returns 119.99
print(b);         // returns 21.37

如果要绘制一个圆圈,为什么不使用ellipse()函数?


编辑:

您的代码问题是您正在传递到radians()函数中值QUARTER_PI,该值已经在弧度中。因此,您的问题可以通过这些方式解决:

// Pass in an amount of radians directly.
float r = 100;
float a = 20 + r * cos(QUARTER_PI);
float b = 20 + r * sin(QUARTER_PI);
line(20,20,a,b);

// Pass in degrees converted to radians.
float r = 100;
float a = 20 + r * cos(radians(45));
float b = 20 + r * sin(radians(45));
line(20,20,a,b);

最新更新