如何使用此库在我的C文件中绘制地图?

时间:2015-05-19 11:59:40

标签: c pointers

我有.a和.h文件,其中包含我需要绘制的地图(只是一些行),并且该头文件中有三个函数:

1- unsigned char get_line_count(void); 返回此库中的行数

2- unsigned int* malloc_lines(unsigned int size); 它输入我需要为地图分配的内存大小,并返回指向已分配内存块的指针

3- void copy_lines(unsigned int* lines); 它输入指向前一个方法得到的内存块的指针 此函数将程序存储器(PROGMEM)中的映射库数据复制到输入参数指向的内存中。

我从图书馆获得的行格式如下:

int lines[] = {
    line_0_x0, line_0_y0, line_0_x1, line_0_y1,
    line_1_x0, line_1_y0, line_1_x1, line_1_y1,
    ...
    line_n_x0, line_n_y0, line_n_x1, line_n_y1,};

我的c文件中有一个draw_line方法:draw_line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,); x1,y1是起点,x2,y2是终点

我对如何使用这些函数绘制线条感到困惑。 所有文件链接正确。 感谢您的任何建议

1 个答案:

答案 0 :(得分:2)

我不确定能找到你:

Line 0 = draw_line( lines[0], lines[1], lines[2], lines[3]);
Line 1 = draw_line( lines[4], lines[5], lines[6], lines[7]);
...
Line N = draw_line( lines[N*4], lines[(N*4)+1], lines[(N*4)+2], lines[(N*4)+3]);

那么如果我理解的话

int i=0;
int N = get_line_count();
unsigned int *lines = malloc_lines(N);
copy_lines(lines);

for (i=0; i<N; i+=4)
{
   draw_line( lines[i], lines[i+1], lines[i+2], lines[i+3]);
}