下側は、-y になるので、それも描きます。 for( x = -r; x <= r; x++ ) { y = sqrt(r * r + x * x) + 0.5; px = sx + x; py = sy - y; SDL_RenderDrawPoint(renderer, px, py); py = sy + y; SDL_RenderDrawPoint(renderer, px, py); } 結果は次のようになります。 円のようになりましたが、左右の部分がつながっていません。これは、x が 1 変化する際に左右に近い部分では、y が 1 より大きく変化しているからです。この場合は、y を基準に計算すれば良いことになります。 /* x を基準に点を描画 */ for( x = -r; x <= r; x++ ) { y = sqrt(r * r + x * x) + 0.5; px =