这确实使我发疯,我知道我很愚蠢。这条线为什么不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度。通过打印a
和b
的值,很明显,该线从坐标(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);