Merhaba,
Bir sürü deneme yaptım ama tam olarak beceremiyorum. İlk aklıma gelen, bayrak çiziminde olduğu gibi, içi dolu iki çemberi (circle) sahneye almak ve beyaz olanını sabit tutup diğerinin x/y değeri ile çapını büyütmek. Sizce başka yöntem var mı?
Aslında üç noktalı eğriyi (curve) de denedim olmadı. Sanki onunla tüm evreleri tıpkı bir gitar telinin sağa sola yaylanması gibi yapabileceğimi zannediyorum. Ama kesme (cutting) işlemi düşündürdüğü gibi elimdeki Bézier Curve algoritması iyi çalışmıyor. Örneğin a noktası kuzey, b noktası güneye bakıyorsa eğer eğri açısını veren nokta sağındaysa (diyelim ki!) çalışıyor ama soluna geçtiğinde çalışmıyor. O yüzde a ile b yer değiştirmek ya da döndürülmek zorunda kalıyorum. Çok kafa yediritdiği için bu yöntemden uzaklaşmak zorunda kaldım...:(
Şu küçük bir deneme kodu belki başlangıç için yararlı olabilir:
''**import **'sdlmini (https://raw.github.com/salihdb/SDLbindings/master/sdlmini.d); // <-- ilinti yoksa tıkla ve çek'
enum { delay = 1000,
width = 50
}
void main() {
int xy = width, r = width-10;
int xSay; // animation frame
with( new draw(600, 600, "Hilal v0.1") ){
do {
setBackground(clr.black);
yuvarlak (width, width, width-10);
//xy++; /*
switch(xSay) {
case 0: xy++; break;
case 1: r+=1; xy+=1; break;
case 2: r+=2; xy+=1; break;
case 3: r+=3; xy+=1; break;
case 4: r+=4; xy+=1; break;
case 5: r+=5; xy+=-1; break;
case 6: r+=6; xy+=-1; break;
case 7: r+=7; xy+=-1; break;
case 8: r+=8; xy+=-1; break;
case 9: r+=9; xy+=-1; break;
default: r+=10; xy+=-2;
}
xSay++; //* Deneme 3 */
yuvarlak (xy, xy, r, clr.black);
SDL_Flip (scr);
SDL_Delay (delay);
} while( keyEvent(1) );
}
SDL_Quit();
}
Teşekkürler...
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]