У меня есть старый код, который использует библиотеку cairo для рисования png и вызова следующей функции. Я не мог понять следующий код. Я знаю, что это вопрос, который взял какой-то код и задал вопрос. Но здорово, если кто-нибудь предоставит.Cairo library: cairo_line_to Функция
#define IMAGE_SIZE_W 1024
#define IMAGE_SIZE_H 768
#define GRAPH_MARGIN_L 48
#define GRAPH_MARGIN_R 21
#define GRAPH_MARGIN_B 27
#define GRAPH_MARGIN_T 22
#define GRAPH_SIZE_W (IMAGE_SIZE_W-(GRAPH_MARGIN_L+GRAPH_MARGIN_R))
#define GRAPH_SIZE_H (IMAGE_SIZE_H-(GRAPH_MARGIN_B+GRAPH_MARGIN_T))
#define SCALE_TO_CANVAS(v,low,high,fws,margin,a,b) (((a+b*((v-low)/(high-low)))*fws)+margin)
#define SCALE_TO_CANVAS_Y(v,low,high) SCALE_TO_CANVAS(v,low,high,GRAPH_SIZE_H,GRAPH_MARGIN_T,1,-1)
#define SCALE_TO_CANVAS_X(v,low,high) SCALE_TO_CANVAS(v,low,high,GRAPH_SIZE_W,GRAPH_MARGIN_L,0,1)
void line_to_point(cairo_t *cr,float x, float y){
cairo_line_to(cr,x,y);
}
void move_to_point(cairo_t *cr,float x, float y){
cairo_move_to(cr,x,y);
}
Имеются данные по x и y и построены графики x и y. Функция абонент /* счетчик числа х и у ряда
for(i = 0; i< counter; i++)
{
move_to_point(cr,SCALE_TO_CANVAS_X(xvals[i-1],lowX,highX),SCALE_TO_CANVAS_Y(yvals[i-1],lowY,highY));
line_to_point(cr,SCALE_TO_CANVAS_X(x,lowX,highX),SCALE_TO_CANVAS_Y(y,lowY,highY));
}
чем после того, как он вызывает write_png, который является своего рода прямой функции.
Если вы посмотрите, SCALE_TO_CANVAS выполнил много расчетов, которые я не могу понять. cairo_line_to x и y изменили значение и построили его.
Действительно, я не мог понять о математике, а также действительно почему мы это делаем. – user765443
Пытался объяснить математику («Mathmagics») и почему («Чтобы отобразить диапазон входных данных в доступное пространство для отображения») , –
Большое спасибо за предоставленную информацию. Я провожу половину дня, но ничего не понимаю. Это код, написанный одним человеком, который покинул организацию. Можете ли вы дать некоторую учебную информацию для лучшего понимания. Каков этот подход. почему мы это делаем. – user765443