这真让我疯了,我知道我在某种程度上是愚蠢的。为什么这条线不是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);
我已经从一个更大的项目中简化了这个代码,如果我做了很多迭代,那么圆圈会出现。我做了什么来制作角度尺?
答案 0 :(得分:0)
我会从调试代码开始。该行不是45度,因为值传递给line()
。通过打印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);