void Tfrm_BelongFunction::DrawFunction(TCanvas*m_canvas,TRect&m_rect) { TPenStyle style = m_canvas->Pen->Style; TColor color = m_canvas->Pen->Color; m_canvas->Pen->Style = psSolid; m_canvas->Pen->Color =clBlue; if(begin==end) return; AnsiString str = m_strExpress+"[-10,10]"; DrawFunction(m_canvas,m_rect,str); ////////////////////////////// // int sizegrid = 30; double dis = (end-begin)/M; for(double i=0;i<=M;i++) { AnsiString str; str = FloatToStr(begin+dis*i); str = str.FormatFloat("0.00",begin+dis*i); m_canvas->TextOutA(m_rect.Left+i*sizegrid-5,m_rect.Bottom+5,str); } m_canvas->Pen->Style = style; m_canvas->Pen->Color = color; }
void NervStandardPanel::CaptionElements::GenerateButton(CaptionElement& button, NervMemDc& in_dc, void(*DrawFunction)(NervMemDc&,NervRect&), void(*DrawHighlightedFunction)(NervMemDc&, NervRect&)) { button.bitmap_normal = NervGdiBitmap::Create(button_size_x, button_size_y); button.rect = { 0, 0, button_size_x, button_size_y }; in_dc.BindBitmap(button.bitmap_normal); DrawFunction(in_dc,button.rect); in_dc.UnbindBitmap(); button.bitmap_highlighted = NervGdiBitmap::Create(button_size_x, button_size_y); button.rect = { 0, 0, button_size_x, button_size_y }; in_dc.BindBitmap(button.bitmap_highlighted); DrawHighlightedFunction(in_dc, button.rect); in_dc.UnbindBitmap(); }
//--------------------------------------------------------------------------- void Tfrm_BelongFunction::RefreshChart() { bmp->Canvas->Brush->Color = clWhite; bmp->Canvas->FillRect(pb_function->ClientRect); bmp->Canvas->CopyMode= cmSrcCopy; TRect rect; rect.Left = pb_function->ClientRect.Left+25; rect.Right = pb_function->ClientRect.Right-10; rect.Top = pb_function->ClientRect.Top+10; rect.Bottom = pb_function->ClientRect.Bottom-20; charrect = rect; DrawGrid(bmp->Canvas,rect); DrawFunction(bmp->Canvas,rect); pb_function->Canvas->CopyRect(pb_function->ClientRect,bmp->Canvas,pb_function->ClientRect); }
void Display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushMatrix(); glTranslatef(0.0f, 0.0f, distance); glRotatef(-rotatex, 1.0f, 0.0, 0.0f); glRotatef(-rotatey, 0.0f, 1.0f, 0.0f); DrawFunction(); glPopMatrix(); glutSwapBuffers(); }
void FullLine::Draw(Mat &image) { DrawFunction(image, currentFunction); DrawEndsInColor(image); circle(image, Point2f(GetLanePositionAt(image.rows - 1), image.rows - 1), 2, CV_RGB(0, 0, 255), -1); }
void menuModelExpoOne(uint8_t event) { if (event == EVT_KEY_LONG(KEY_MENU)) { pushMenu(menuChannelsView); killEvents(event); } ExpoData *ed = expoAddress(s_currIdx); putsMixerSource(7*FW+FW/2, 0, MIXSRC_FIRST_INPUT+ed->chn, 0); SUBMENU(STR_MENUINPUTS, EXPO_FIELD_MAX, {0, 0, 0, ed->srcRaw >= MIXSRC_FIRST_TELEM ? (uint8_t)0 : (uint8_t)HIDDEN_ROW, 0, 0, CASE_CURVES(CURVE_ROWS) CASE_FLIGHT_MODES((MAX_FLIGHT_MODES-1) | NAVIGATION_LINE_BY_LINE) 0 /*, ...*/}); SET_SCROLLBAR_X(EXPO_ONE_2ND_COLUMN+10*FW); int8_t sub = m_posVert; coord_t y = MENU_HEADER_HEIGHT + 1; for (unsigned int k=0; k<NUM_BODY_LINES; k++) { int i = k + s_pgOfs; for (int j=0; j<=i; ++j) { if (j<(int)DIM(mstate_tab) && mstate_tab[j] == HIDDEN_ROW) { ++i; } } LcdFlags attr = (sub==i ? (s_editMode>0 ? BLINK|INVERS : INVERS) : 0); switch(i) { case EXPO_FIELD_INPUT_NAME: editSingleName(EXPO_ONE_2ND_COLUMN, y, STR_INPUTNAME, g_model.inputNames[ed->chn], sizeof(g_model.inputNames[ed->chn]), event, attr); break; case EXPO_FIELD_NAME: editSingleName(EXPO_ONE_2ND_COLUMN, y, STR_EXPONAME, ed->name, sizeof(ed->name), event, attr); break; case EXPO_FIELD_SOURCE: lcd_putsLeft(y, NO_INDENT(STR_SOURCE)); putsMixerSource(EXPO_ONE_2ND_COLUMN, y, ed->srcRaw, STREXPANDED|attr); if (attr) ed->srcRaw = checkIncDec(event, ed->srcRaw, INPUTSRC_FIRST, INPUTSRC_LAST, EE_MODEL|INCDEC_SOURCE|NO_INCDEC_MARKS, isInputSourceAvailable); break; case EXPO_FIELD_SCALE: lcd_putsLeft(y, STR_SCALE); putsTelemetryChannelValue(EXPO_ONE_2ND_COLUMN, y, (ed->srcRaw - MIXSRC_FIRST_TELEM)/3, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr); if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL); break; case EXPO_FIELD_WEIGHT: lcd_putsLeft(y, STR_WEIGHT); ed->weight = GVAR_MENU_ITEM(EXPO_ONE_2ND_COLUMN, y, ed->weight, MIN_EXPO_WEIGHT, 100, LEFT|attr, 0, event); break; case EXPO_FIELD_OFFSET: lcd_putsLeft(y, NO_INDENT(STR_OFFSET)); ed->offset = GVAR_MENU_ITEM(EXPO_ONE_2ND_COLUMN, y, ed->offset, -100, 100, LEFT|attr, 0, event); break; #if defined(CURVES) case EXPO_FIELD_CURVE: lcd_putsLeft(y, STR_CURVE); editCurveRef(EXPO_ONE_2ND_COLUMN, y, ed->curve, event, attr); break; #endif #if defined(FLIGHT_MODES) case EXPO_FIELD_FLIGHT_MODES: ed->flightModes = editFlightModes(EXPO_ONE_2ND_COLUMN, y, event, ed->flightModes, attr); break; #endif case EXPO_FIELD_SWITCH: ed->swtch = switchMenuItem(EXPO_ONE_2ND_COLUMN, y, ed->swtch, attr, event); break; case EXPO_FIELD_SIDE: ed->mode = 4 - selectMenuItem(EXPO_ONE_2ND_COLUMN, y, STR_SIDE, STR_VSIDE, 4-ed->mode, 1, 3, attr, event); break; case EXPO_FIELD_TRIM: uint8_t not_stick = (ed->srcRaw > MIXSRC_Ail); int8_t carryTrim = -ed->carryTrim; lcd_putsLeft(y, STR_TRIM); lcd_putsiAtt(EXPO_ONE_2ND_COLUMN, y, STR_VMIXTRIMS, (not_stick && carryTrim == 0) ? 0 : carryTrim+1, m_posHorz==0 ? attr : 0); if (attr) ed->carryTrim = -checkIncDecModel(event, carryTrim, not_stick ? TRIM_ON : -TRIM_OFF, -TRIM_AIL); break; } y += FH; } DrawFunction(expoFn); int x512 = getValue(ed->srcRaw); if (ed->srcRaw >= MIXSRC_FIRST_TELEM) { putsTelemetryChannelValue(LCD_W-8, 6*FH, (ed->srcRaw - MIXSRC_FIRST_TELEM) / 3, x512, 0); if (ed->scale > 0) x512 = (x512 * 1024) / convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale); } else { lcd_outdezAtt(LCD_W-8, 6*FH, calcRESXto1000(x512), PREC1); } x512 = limit(-1024, x512, 1024); int y512 = expoFn(x512); y512 = limit(-1024, y512, 1024); lcd_outdezAtt(LCD_W-8-6*FW, 1*FH, calcRESXto1000(y512), PREC1); x512 = X0+x512/(RESX/WCHART); y512 = (LCD_H-1) - ((y512+RESX)/2) * (LCD_H-1) / RESX; lcd_vline(x512, y512-3, 3*2+1); lcd_hline(x512-3, y512, 3*2+1); }