Algorithms DDA Algoritmasi Posted on March 4, 2017January 17, 2020 by damrakoc Genelde oyunlarda çigzi çizmek icin kullanılır. X Y kordinatında gideceği kordinatın kac adım istiyosanız o kordinatı bulur. struct NMOVE { float X; float Y; float dist; }; NMOVE DDA(float xa, float ya, float xb, float yb, int step) { float dx = xb - xa, dy = yb - ya, steps, DisX, DisY; float xIncrement, yIncrement, x = xa, y = ya; if (abs(dx) > abs(dy)) steps = abs(dx); else steps = abs(dy); xIncrement = dx / steps; yIncrement = dy / steps; for (int k = 0; k < step; k++) { // if(x<xb&&y<yb){ x += xIncrement; y += yIncrement; // } } NMOVE Mret; Mret.X = x; Mret.Y = y; DisX = x - xb; DisY = y - yb; Mret.dist = sqrt(DisX * DisX + DisY * DisY); return Mret; } 123456789101112131415161718192021222324252627282930313233343536 struct NMOVE { float X; float Y; float dist;}; NMOVE DDA(float xa, float ya, float xb, float yb, int step) { float dx = xb - xa, dy = yb - ya, steps, DisX, DisY; float xIncrement, yIncrement, x = xa, y = ya; if (abs(dx) > abs(dy)) steps = abs(dx); else steps = abs(dy); xIncrement = dx / steps; yIncrement = dy / steps; for (int k = 0; k < step; k++) { // if(x<xb&&y<yb){ x += xIncrement; y += yIncrement; // } } NMOVE Mret; Mret.X = x; Mret.Y = y; DisX = x - xb; DisY = y - yb; Mret.dist = sqrt(DisX * DisX + DisY * DisY); return Mret;} Post Views: 1,520