Exemplo n.º 1
0
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;

}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
//---------------------------------------------------------------------------
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);
}
Exemplo n.º 4
0
Arquivo: LAB7.cpp Projeto: ntlone/Lab7
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();
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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);
}