2012-01-08 10 views
-4

開発者の仕事のためのテストでは、わからなかったこの問題を解決するように求められました。誰かが私を助けてくれますか?円の境界を描きますか?

void draw(int x, int y)を使用して点線の円の境界線を描画し、1点を描画します。式x + y = rを使用してください。あなたはsqrtメソッドを使用できますが、sincosまたはtanなど

Void DrawCircle(int centerX, int centerY, int radius) {…} 

PSを使用していない:これは、すべての大学の割り当てではありませんので、ご返信ください。

+4

ジョブテストの場合は、自分で解決する必要があります。 –

+0

インタビューが終わって知識を得ることだけを求めているのなら、それは大丈夫です。 –

+1

http://ja.wikipedia.org/wiki/Midpoint_circle_algorithm – Rotem

答えて

2

あなたの問題を解決できるクイックコードを書いたが、テストしなかった。

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++; 
    } 
} 
0

ここを生成しますサークルの境界上のドット(点の無限の数、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にとっては良いスタートです。

+0

これは、*半* - 円の値を印刷します。 @ M.Ivanovの答えのように、負の平方根も表示する必要があります。 – Dan

関連する問題