Изменение масштаба xx на графике с использованием Cairo и GTK + - PullRequest
0 голосов
/ 12 января 2020

Я кодирую симуляцию физической системы, созданной из GTK + и Cairo и запрограммированной в C. Я уже сделал код для масс и его движения, и теперь я хочу построить графики, которые отражают эти движения (например, графики r (t) и v (t)).

Нас спросили, после построения графики, чтобы иметь возможность масштабирования оси хх. Итак, я уже составил часть масштабирования, но теперь мне нужно настроить количество точек, которые графическое окно может отображать после масштабирования.

Итак, я объявил некоторые переменные:

  • math_size: максимальное количество записей в векторах plot_matrix_t [] и plot_matrix_y [];
  • p_m_t: для выделения позиции в векторе plot_matrix_y и выделения различных моментов времени в plot_matrix_t;
  • scale_xx: введенная пользователем шкала;
  • scale_init_xx: начальная шкала;

Вот некоторая часть кода (я не знаю, нужно ли вам больше, чем эта ):

for(j = 0; j < p_m_t; ++j) { cairo_line_to (cr, drawframe2_alloc.width / 10 + 6800 * plot_matrix_t[j] * (scale_xx/scale_init_xx), drawframe2_alloc.height / 2 + 150*(-plot_matrix_y[j])*(scale_yy/scale_init_yy) - ((origin_pos/10) - 0.5)*drawframe2_alloc.height); }

Буду признателен, если вы поможете мне в этой ситуации.

Большое спасибо,

Джон

...