まぁ円の方程式を単調に解かずに、第1象限~第4象限がすべて点対称になっていることを利用しましょうって話。
(誰でもこれくらいはやるだろ。何で記事に載せる、とか言わないっ!)
単純計算で4倍弱の高速化です。
ほんとに高速化するなら、まず2乗して計算していくのをやめるべきですが…
int x,int y,int r,int c,int rr; //rは半径、cは色
rr=r*r; //予め二乗
for(int j=y-r;j< =y;j++){
for(int i=x-r;i<=x;i++){
if( (i-x)*(i-x) + (j-y)*(j-y) < rr ){
for(k=i;k
明日はDMA転送でも使ってみようかな…
画像全体を何ピクセルずらす、とかの処理に使えそうですし。
(↑文字列のスクロール処理とかに必要なので)