在开发人员工作测试中,我被要求解决这个我不知道的问题。请有人帮助我。画一个圆形边界?
使用void draw(int x, int y)
绘制虚线圆边界绘制一个点。使用公式x + y = r。您可以使用sqrt
方法,但不使用sin
,cos
或tan
等
Void DrawCircle(int centerX, int centerY, int radius) {…}
PS:这是不是在所有大学的分配,所以请回复。
在开发人员工作测试中,我被要求解决这个我不知道的问题。请有人帮助我。画一个圆形边界?
使用void draw(int x, int y)
绘制虚线圆边界绘制一个点。使用公式x + y = r。您可以使用sqrt
方法,但不使用sin
,cos
或tan
等
Void DrawCircle(int centerX, int centerY, int radius) {…}
PS:这是不是在所有大学的分配,所以请回复。
我写了一个快速代码,可以解决您的问题,但没有测试过它。
void DrawCircle(int centerX, int centerY, int radius)
{
int x,y;
x=-radius;
while(x < radius)
{
y=sqrt(radius*radius-x*x);
draw(x+centerX,y+centerY);
y=-y;
draw(x+centerX,y+centerY);
x++;
}
}
下面是找到你的圈子的边界点的功能(有无限多点,小dDensity
,越点你会得到。)
double dDensity = 1.0;
double y, x;
for (x = -radius; x <= radius; x += dDensity)
{
y = sqrt(-pow(x, 2.0f) + pow(r, 2.0f))
Console.WriteLine("(" + (x+centerX).ToString() + ","
+ (y+centerY).ToString() + ")");
}
这将产生你圆所包含的点。
“画”一个圆圈是一个不同的问题,但这对你来说是一个好的开始IMO。
这将只打印*半*圆的值。您还必须打印@ M.Ivanov的答案中的负平方根! – Dan 2012-01-08 17:46:47
如果是工作测试,那么你应该自己解决。 – 2012-01-08 12:42:59
如果面试结束了,你只是想要获得知识,那么就没关系。否则自行解决。 – 2012-01-08 12:50:25
http://en.wikipedia.org/wiki/Midpoint_circle_algorithm – Rotem 2012-01-08 12:50:38