Új hozzászólás Aktív témák
-
EQMontoya
veterán
válasz mrhitoshi #3048 üzenetére
Nem fogtam fel teljesen a kódot, de ha jól értem a ciklust, csak akkor áll le a program, ha x==s && y==0 állapot áll fenn egyszerre. (legalábbis egymás epszilon sugarú környezetében van)
Valószínűleg ez nem teljesül valamilyen számítási hiba miatt soha.
Az 1g ram pedig azért van, mert mindig eltárolod az eredményt, de a végtelenségig tárolgatsz.
Valamelyik képleted lesz rossz, ennek pillanatok alatt kellene lefutnia.Erre a részre gondolok:
for (t = 0; 1; t += TIME_STEP)
{
x = get_x(type, v_0, t, alfa, k, m);
y = get_y(type, v_0, t, alfa, k, m);
//A MARGIN szerepe, hogy hova kerüljön a koordináta rendszer, margóként szolgál, és a SIZE adja meg a nagyságát.
draw_x = (int)round(SIZE * (x / s)) + MARGIN;
draw_y = (int)round(fabs(SIZE * (y / max_y) - SIZE)) + MARGIN;
graph_x = (int)round((x / s) * GRAPH);
graph_y = (int)round((y / max_y) * GRAPH);
graph_set(&graph, graph_x, graph_y);
//Itt kapja meg a koordinátákat az .svg fájloknak megfelelő stílusban.
fprintf(f, "%s %d %d ", (t == 0 ? "M" : "L"), draw_x, draw_y);
if (comp(x, s) && comp(y, 0))
{
graph_draw(&graph);
break;
}
}[ Szerkesztve ]
Same rules apply!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen