void drawAdjustPoint(u16 x, u16 y) { lcd_draw_line(x-12, y, x+13, y, RED);//横线 lcd_draw_line(x, y-12, x, y+13, RED);//竖线 lcd_draw_point(x+1, y+1, RED); lcd_draw_point(x-1, y+1, RED); lcd_draw_point(x+1, y-1, RED); lcd_draw_point(x-1, y-1, RED); lcd_draw_circle(x, y, 6, RED);//画中心圈 }
void graphics_background_clean(void) { graphics_location clean_index_x=0,clean_index_y=0; for (;clean_index_y<SCREEN_LONGITUDINAL_PIXEL;++clean_index_y) { for (clean_index_x=0;clean_index_x<SCREEN_HORIZONTAL_PIXEL;++clean_index_x) { lcd_draw_point(clean_index_x,clean_index_y,DEFAULT_BACKGROUND_COLOR); } } }
static void graphics_draw_bitmap_24(bitmap_data bitmap_data,graphics_location draw_point_x,graphics_location draw_point_y) { unsigned long draw_index=0; unsigned long draw_control_x=0; unsigned long draw_control_y=*(unsigned long*)(bitmap_data+18); unsigned long picture_width=*(unsigned long*)(bitmap_data+22); unsigned long image_scan_point=(unsigned long)bitmap_data+*(unsigned long*)(bitmap_data+10); for (;draw_control_y>0;--draw_control_y) { for (draw_control_x=0;draw_control_x<picture_width;++draw_control_x,draw_index+=3) { lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,graphics_24bit_to_16bit(*(color*)(image_scan_point+draw_index))); } } }
static void graphics_draw_bitmap_4(bitmap_data bitmap_data,graphics_location draw_point_x,graphics_location draw_point_y) { unsigned long draw_index=0; unsigned long draw_control_x=0; unsigned long draw_control_y=*(unsigned long*)(bitmap_data+18)+draw_point_y; unsigned long picture_width=*(unsigned long*)(bitmap_data+22); unsigned long image_scan_point=(unsigned long)bitmap_data+*(unsigned long*)(bitmap_data+10); unsigned long scan_point=0; color output_color=0; rgb_quad quad_list[16]={0}; memcpy(&quad_list,bitmap_data+BITMAP_HEADER_LENGTH+BITMAP_INFORMATION_LENGTH,RBG_QUAD_LENGTH*16); for (;draw_control_y>0;--draw_control_y,draw_index+=2) { for (draw_control_x=0;draw_control_x<picture_width;draw_control_x+=2,++draw_index) { scan_point=(*(char*)(image_scan_point+draw_index) & 0xF0)>>4; output_color=((quad_list[scan_point].red & 0x1F)<<11)+((quad_list[scan_point].green & 0x3F)<<5)+(quad_list[scan_point].blue & 0x1F); lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,output_color); scan_point=*(char*)(image_scan_point+draw_index) & 0xF; output_color=((quad_list[scan_point].red & 0x1F)<<11)+((quad_list[scan_point].green & 0x3F)<<5)+(quad_list[scan_point].blue & 0x1F); lcd_draw_point(draw_control_x+draw_point_x+1,draw_control_y+draw_point_y,output_color); } } }
static void graphics_draw_bitmap_2(bitmap_data bitmap_data,graphics_location draw_point_x,graphics_location draw_point_y) { // WARNING! 这个函数还有错误.. unsigned long draw_index=0; unsigned long draw_control_x=0; unsigned long draw_control_y=*(unsigned long*)(bitmap_data+18); unsigned long picture_width=*(unsigned long*)(bitmap_data+22); unsigned long image_scan_point=(unsigned long)bitmap_data+*(unsigned long*)(bitmap_data+10); while (draw_control_y>0) { lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x80)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x40)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x20)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x10)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x8)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x4)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x2)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } lcd_draw_point(draw_control_x+draw_point_x,draw_control_y+draw_point_y,((*(color*)(image_scan_point+draw_index) & 0x1)?white:black)); ++draw_control_x; if (draw_control_x==picture_width) { draw_control_x=0; --draw_point_y; if (draw_point_y==0) return; } ++draw_index; } }