//Draws arrow at new angle void DrawArrow(float radAngle) { //Erase old copy DrawPoly(4, arrow, BLACK); //Recalculate new rotated angle ResetArrow(); RotatePoly(4, arrow, arrowX, arrowY, radAngle); //Draw new arrow DrawPoly(4, arrow, YELLOW); }
void GUI_Release(){ // create GUI static int i, j; //indexes //if z-index == 0 eq hide for(j = 1; j < MAX_Z_INDEX; j++ ){ for(i = 0; i < MAX_OBJECTS_Q; i++){ if(GUI_Objects[i].z_index == j){ if(GUI_Objects[i].existance){ LCD_SetColorPixel(GUI_Objects[i].color); // set the font, color of font and the color of line switch(GUI_Objects[i].type){ case LINE_TYPE: LCD_DrawLine(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2], GUI_Objects[i].params[3]); break; case VERTICAL_LINE_TYPE: break; case HORIZONTAL_LINE_TYPE: DrawFastLineHorizontal(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case POLYGON_TYPE: break; case TEXT_STRING: LCD_InitParams(0, GUI_Objects[i].params[6], GUI_Objects[i].color, (sFONT*) GUI_Objects[i].params[5]); LCD_DisplayStringAt(GUI_Objects[i].params[0], GUI_Objects[i].params[1], (uint8_t*)GUI_Objects[i].params[2], (Text_AlignModeTypdef) GUI_Objects[i].params[3], (uint8_t)GUI_Objects[i].params[4]); break; case CIRCLE_TYPE: LCD_DrawCircle(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case FILLED_CIRCLE_TYPE: LCD_DrawFullCircle(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case FILLED_RECT_TYPE: LCD_FillRect(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2], GUI_Objects[i].params[3]); break; case RECT_TYPE: LCD_DrawRect((uint16_t)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1], (uint16_t)GUI_Objects[i].params[2], (uint16_t)GUI_Objects[i].params[3]); break; case IMAGE_FAST_FILL: LCD_Fill_Image((ImageInfo *)GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case IMAGE_WITH_TRANSP: LCD_Fill_ImageTRANSP((ImageInfo *)GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case FILLED_TRIANGLE: LCD_FillTriangle(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2], GUI_Objects[i].params[3], GUI_Objects[i].params[4], GUI_Objects[i].params[5]); break; case FILLED_POLY: LCD_FillPolygon((pPoint)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1]); break; case POLY_TYPE: LCD_DrawPolygon((pPoint)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1]); break; case ROTATING_FILLED_POLY_TYPE: StorePoly((pPoint)(GUI_Objects[i].params[0]),(uint16_t)(GUI_Objects[i].params[1])); RotatePoly((pPoint)(GUI_Objects[i].params[0]), (uint16_t)(GUI_Objects[i].params[1]),(pPoint)GUI_Objects[i].params[2], GUI_Objects[i].params[3]); LCD_FillPolygon((pPoint)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1]); RestorePoly((pPoint)(GUI_Objects[i].params[0]),(uint16_t)(GUI_Objects[i].params[1])); break; } } } } } }