我有.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
是终点
我对如何使用这些函数绘制线条感到困惑。 所有文件链接正确。 感谢您的任何建议
答案 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]);
}