Keresés

Ú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