亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? graph2d.cpp

?? C++ Math Lib. C++ Builder must use.
?? CPP
字號:
//---------------------------------------------------------------------------
// N.V.Shokhirev
// created:  20041020
// modified: 20051020
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Graph2D.h"
#include <math.h>
#include "MatUtils.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

AnsiString FloatToStr(double x) { AnsiString s = x;  return s; };

// Minimal necessary number of decimals for labeling the interval [Xmin, Xmax]
int MinDec(double Xmin, double Xmax)
{
  return ( 1 + round0(-log10(fabs(Xmax-Xmin)/max1(fabs(Xmax),fabs(Xmin)))) );
};

// Compact output of real numbers
String CompactFloatToStr(double z, int decimals)
{
const double eps = 1.0e-8;
  double x;
  int exponent;
  String s, ss, result;

  if (z < 0.0) { s = "-"; }
  else { s = " "; };

  x = fabs(z);
  if (x < eps) { result = s+"0.0"; }
  else
  {
    exponent = floor(log10(x));
    x = pow10(-decimals)*round1(x*pow10(decimals-exponent));

    if (x >9.999)
    {
      x = 0.1*x;
      exponent++;
    };
    ss = IntToStr(exponent);

    if (exponent < 0) { ss = "e"+ss; }
    else { ss = "e+"+ss; };

    result = s+FloatToStr(x)+ss;
  };
  return result;
};

void SetLim(double& x1,double& x2)
{
  double xmax = max1( abs(x1), abs(x2) );

  if ( xmax < SafeMinReal ) // x1 = x2 = 0
  {
     x2 = x1 +1.0;
     return;
  }
//  if ( (x2-x1) < SafeMacheps*xmax ) // x1 = x2
  if ( (x2-x1) < xmax/1024.0 ) // x1 = x2
  {
    x1 -= xmax/1024.0;
    x2 += xmax/1024.0;
  };
};


__fastcall PlotBox2D::PlotBox2D(Classes::TComponent* Owner): TPaintBox(Owner)
{
//  Parent := aParent;
  Align = alClient;
  FrameColor = clBlack;
  XCaption = true;
  YCaption = true;
  NXTicks = 3;
  NYTicks = 3;
  XTitle = "X Axis";
  YTitle = "Y Axis";
  XYRatio = -1.0;
  SetLimits(0.0,1.0,0.0,1.0);
}

double PlotBox2D::Xi2r( int iX)
{
  double X;
  X = double(iX);
  return (X*(fXmax-fXmin)- rLdW*fXmax-rRdW*fXmin+ rW*fXmin)/(rW-rLdW-rRdW);
};

double PlotBox2D::Yi2r( int iY)
{
  double Y;
  Y = double(iY);
  return (Y*(fYmax - fYmin)-rH*fYmax+rBdH*fYmax+rTdH*fYmin)/(rBdH+rTdH-rH);
};

void PlotBox2D::SetLimits(double Xmin, double Xmax, double Ymin, double Ymax)
{
  fXmin = Xmin;
  fXmax = Xmax;
  fYmin = Ymin;
  fYmax = Ymax;

  SetLim(fXmin, fXmax);
  SetLim(fYmin, fYmax);

  XDec = MinDec(fXmin, fXmax);
  YDec = MinDec(fYmin, fYmax);
};

void PlotBox2D::Circle( double x, double y, int r)
{
  this->Canvas->Ellipse(Xr2i(x)-r, Yr2i(y)-r, Xr2i(x)+r, Yr2i(y)+r);
};

void PlotBox2D::MoveToF(double x, double y)
{
  this->Canvas->MoveTo(Xr2i(x), Yr2i(y));
};

void PlotBox2D::LineToF(double x, double y)
{
  this->Canvas->LineTo(Xr2i(x), Yr2i(y));
};

void PlotBox2D::LineF(double x1, double y1, double x2, double y2)
{
  this->Canvas->MoveTo(Xr2i(x1), Yr2i(y1));
  this->Canvas->LineTo(Xr2i(x2), Yr2i(y2));
};

void PlotBox2D::RectangleF(double x1, double y1, double x2, double y2)
{
  this->Canvas->Rectangle(Xr2i(x1), Yr2i(y1),Xr2i(x2), Yr2i(y2));
};

void PlotBox2D::PlotFrame()
{
  // FrameOffsets
  int FTdH, FBdH, FLdW, FRdW;

  int H;     // Text height
  int HalfH; // H / 2
  int W;    // All other spaces
  int WY;   // Y-Label width
  int WX;   // X-Label Half-width

  int iX, iY, iHm, iWm, i, d, ws;
  double x,  y, PPUx, PPUy;
  String s;


  this->Canvas->Brush->Color = clWhite;
  this->Canvas->FillRect(Rect(0,0,Width-1,Height-1));
  rH = Height;
  rW = Width;

  H = this->Canvas->TextHeight("H");
  HalfH = H / 2;
  W = this->Canvas->TextWidth("H");

  this->Canvas->Pen->Color = FrameColor;
  WX = 0; // Half X Label Width
  BdH = W+W;
  if (XCaption)
  {
    for (i = 1; i <= NXTicks; i++)
    {
      x = fXmin +double(i-1)*(fXmax-fXmin)/double(NXTicks-1);
      s = CompactFloatToStr(x,XDec);
      ws = this->Canvas->TextWidth(s) / 2;
      if (ws > WX) WX = ws;
    };
    BdH = BdH + H+H + W+W+W;
  };

  WY = 0; // Y Label width
  TdH = W+W;
  LdW = W+W;
  if (YCaption)
  {
    for (i = 1; i <= NYTicks; i++)
    {
      y = fYmin +(i-1)*(fYmax-fYmin)/(NYTicks-1);
      s = CompactFloatToStr(y,YDec);
      ws = this->Canvas->TextWidth(s);
      if (ws > WY) WY = ws;
    };
    TdH = TdH + H+W;
    LdW = LdW + WY + W+W;
  };
  // Adjustment
  RdW = max0(W+W,WX+W);
  LdW = max0(LdW,WX+W);
  // Adjustment for X/Y ratio
  if (XYRatio > 0.0)
  {
    iWm = Width - LdW - RdW;
    PPUx = iWm;
    PPUx = PPUx/(fXmax - fXmin); // Pixes Per Unit
    iHm = Height - TdH - BdH;
    PPUy = iHm; 
    PPUy = PPUy/(fYmax - fYmin); // Pixes Per Unit
    if (PPUx > PPUy*XYRatio)
    {
      PPUx = PPUy*XYRatio;
      d = (iWm - round0(PPUx*(fXmax-fXmin))) / 2;
      LdW = LdW + d;
      RdW = RdW + d;
    }
    else
    {
      PPUy = PPUx/XYRatio;
      d = (iHm - round0(PPUy*(fYmax-fYmin))) / 2;
      TdH = TdH + d;
      BdH = BdH + d;
    };
  };
  // Frame Offsets
  FTdH = TdH - W;
  FBdH = BdH - W;
  FLdW = LdW - W;
  FRdW = RdW - W;
  rTdH = TdH;
  rBdH = BdH;
  rLdW = LdW;
  rRdW = RdW;
  // Draw Frame
  this->Canvas->MoveTo(   FLdW,    FTdH);
  this->Canvas->LineTo(Width-FRdW,    FTdH); // Top
  this->Canvas->LineTo(Width-FRdW, Height-FBdH); // Right
  this->Canvas->LineTo(   FLdW, Height-FBdH); // Bottom
  this->Canvas->LineTo(   FLdW,    FTdH); // Left

  if (YCaption)
  {
    d = this->Canvas->TextWidth(YTitle) / 2;
    this->Canvas->TextOut(max0(W, FLdW-d), max0(W,FTdH-W-H), YTitle);

    for (i = 1; i <= NYTicks; i++)
    {
      y = fYmin +(i-1)*(fYmax-fYmin)/(NYTicks-1);
      iY = Yr2i(y);
      s = CompactFloatToStr(y,YDec);
      this->Canvas->TextOut(FLdW-W-W-WY,iY-HalfH, s);
    };
    for (i = 1; i <= NYTicks; i++)
    {
      y = fYmin +(i-1)*(fYmax-fYmin)/(NYTicks-1);
      iY = Yr2i(y);
      this->Canvas->MoveTo(FLdW,iY);   // Y-Ticks
      this->Canvas->LineTo(FLdW-W,iY);
    };
  };

  if (XCaption)
  {
    d = this->Canvas->TextWidth(XTitle) / 2;
    i = min0(Width-FRdW+d,Width-H);
    this->Canvas->TextOut(max0(i-d-d,W), Height-FBdH+W+W+W+H, XTitle);
    for (i = 1; i <= NXTicks; i++)
    {
      x = fXmin +(i-1)*(fXmax-fXmin)/(NXTicks-1);
      iX = Xr2i(x);
      s = CompactFloatToStr(x,XDec);
      d = this->Canvas->TextWidth(s) / 2;
      this->Canvas->TextOut(iX-d,Height-FBdH+W+W, s);
      this->Canvas->MoveTo(iX,Height-FBdH);   // X-Ticks
      this->Canvas->LineTo(iX,Height-FBdH+W);
    };
  };
};

void PlotBox2D::SetXmin(double Value)
{
  fXmin = Value;
};

void PlotBox2D::SetXmax(double Value)
{
  fXmax = Value;
};

void PlotBox2D::SetYmin(double Value)
{
  fYmin = Value;
};

void PlotBox2D::SetYmax(double Value)
{
  fYmax = Value;
};

double PlotBox2D::GetXmax()
{
  return fXmax;
};

double PlotBox2D::GetXmin()
{
  return fXmin;
};

double PlotBox2D::GetYmin()
{
  return fYmin;
};

double PlotBox2D::GetYmax()
{
  return fYmax;
};

int PlotBox2D::Yr2i(double Y)
{
  return round0( (Y*(rBdH+rTdH-rH)+rH*fYmax-rBdH*fYmax-rTdH*fYmin)/
                                                                (fYmax-fYmin) );
};

int PlotBox2D::Xr2i(double X)
{
  return round0( (X*(rW-rLdW-rRdW)+rLdW*fXmax+rRdW*fXmin- rW*fXmin)/
                                                                (fXmax-fXmin) );
};

int PlotBox2D::GetPenWidth()
{
  return (this->Canvas->Pen->Width);
};
void PlotBox2D::SetPenWidth(int Value)
{
  this->Canvas->Pen->Width = Value;
};

TColor PlotBox2D::GetPenColor()
{
  return (this->Canvas->Pen->Color);
};

TColor PlotBox2D::GetBrushColor()
{
  return (this->Canvas->Brush->Color);
};

void PlotBox2D::SetPenColor(  TColor Value)
{
  this->Canvas->Pen->Color = Value;
};

void PlotBox2D::SetBrushColor(TColor Value)
{
  this->Canvas->Brush->Color = Value;
};

void PlotBox2D::PlotArrays(FArr1D& x, FArr1D& y, TColor color)

{
  double x1, x2, y1, y2;
  TColor oldcolor = color;
  this->SetPenColor(color);
  for (int i = x.L1(); i < x.H1(); i++)
  {
    x1 = x(i);   y1 = y(i);
    x2 = x(i+1); y2 = y(i+1);
    this->LineF(x1,y1,x2,y2);
  };
  this->SetPenColor(oldcolor);
};

void PlotBox2D::PlotArray(FArr1D& y, TColor color)
{
  double x1, x2, y1, y2;
  TColor oldcolor = color;
  this->SetPenColor(color);
  for (int i = y.L1(); i < y.H1(); i++)
  {
    x1 = double(i);   y1 = y(i);
    x2 = double(i+1); y2 = y(i+1);
    this->LineF(x1,y1,x2,y2);
  };
  this->SetPenColor(oldcolor);
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久99精品一区| 不卡av电影在线播放| 欧美精品123区| 日精品一区二区| 在线观看91av| 久久激情五月激情| 国产女人18水真多18精品一级做| 国产成人av一区二区| 国产精品久久久久aaaa| 色婷婷av一区二区三区之一色屋| 一区二区三区不卡视频| 欧美日韩黄色一区二区| 免费三级欧美电影| 久久九九国产精品| 在线日韩一区二区| 五月天欧美精品| www久久久久| 色综合久久久久久久久| 偷拍一区二区三区四区| 久久综合九色综合欧美98| 不卡的av电影| 蜜臂av日日欢夜夜爽一区| 久久久蜜桃精品| 色婷婷综合视频在线观看| 青青青伊人色综合久久| 欧美极品美女视频| 欧美日韩中文国产| 国产传媒欧美日韩成人| 亚洲在线观看免费视频| 亚洲精品一线二线三线| 99精品黄色片免费大全| 裸体歌舞表演一区二区| 亚洲欧洲日产国产综合网| 欧美一区午夜精品| av亚洲精华国产精华| 久久精品久久99精品久久| 国产精品看片你懂得| 欧美一区二区视频免费观看| 国产精品一区三区| 午夜精品久久久久久| 国产精品久久99| 日韩三区在线观看| 色爱区综合激月婷婷| 国产成人一区在线| 无码av免费一区二区三区试看| 亚洲国产精品二十页| 欧美大白屁股肥臀xxxxxx| 91国内精品野花午夜精品| 精品一区二区三区在线播放视频| 夜夜嗨av一区二区三区四季av| 久久综合丝袜日本网| 欧美日韩久久久久久| 丁香婷婷综合激情五月色| 久久成人综合网| 午夜私人影院久久久久| 中文字幕字幕中文在线中不卡视频| 日韩精品一区在线| 91精品久久久久久久91蜜桃| 日本乱码高清不卡字幕| 99久久综合精品| 国产乱人伦偷精品视频免下载| 丝袜美腿亚洲一区二区图片| 亚洲精品一卡二卡| 中文字幕一区二| 国产精品情趣视频| 久久精品视频网| 国产亚洲欧洲一区高清在线观看| 日韩欧美一级二级| 日韩三级视频中文字幕| 欧美一区二区三区思思人| 欧美性生活影院| 欧美专区在线观看一区| 色婷婷久久久综合中文字幕 | 国产喂奶挤奶一区二区三区| 日韩欧美区一区二| 欧美大片一区二区| 精品国产第一区二区三区观看体验| 在线91免费看| 337p亚洲精品色噜噜狠狠| 欧美日韩精品一区二区三区蜜桃| 欧美视频在线一区二区三区| 欧美日韩高清在线播放| 91精品国产高清一区二区三区| 欧美猛男gaygay网站| 欧美日韩久久一区二区| 91精品国产入口| 欧美xfplay| 欧美激情艳妇裸体舞| 最好看的中文字幕久久| 亚洲男同性视频| 亚洲一区二区在线观看视频| 91日韩在线专区| 在线看国产一区| 欧美成人官网二区| 欧美mv和日韩mv的网站| 日韩欧美精品在线视频| 久久亚洲一区二区三区四区| 精品欧美乱码久久久久久| 国产欧美日本一区视频| 亚洲精品欧美专区| 亚洲高清免费观看高清完整版在线观看| 亚洲国产精品久久人人爱蜜臀| 视频在线观看国产精品| 国精产品一区一区三区mba视频| 国产乱人伦偷精品视频免下载 | 亚洲视频香蕉人妖| 性欧美疯狂xxxxbbbb| 久久99精品久久久久久动态图 | 精品国产sm最大网站免费看| 久久精品日韩一区二区三区| 国产精品传媒在线| 日韩不卡一区二区三区| 国内外成人在线| 色综合天天综合色综合av| 欧美片网站yy| 国产日产欧美一区二区视频| 亚洲少妇30p| 青青草精品视频| 高清成人免费视频| 欧美精品自拍偷拍| 中文字幕一区二区三区av| 日本特黄久久久高潮| 成人精品国产一区二区4080| 欧美精品99久久久**| 国产精品丝袜黑色高跟| 毛片不卡一区二区| 色综合天天综合网国产成人综合天 | 一本色道久久综合亚洲aⅴ蜜桃| 91精品国产一区二区| 国产精品进线69影院| 日本视频免费一区| 91久久精品一区二区三| 久久久精品国产免大香伊| 亚洲欧美日韩国产手机在线| 久久成人综合网| 欧美乱熟臀69xxxxxx| 国产精品九色蝌蚪自拍| 韩国女主播成人在线| 欧美日韩一区二区三区不卡 | 91色porny蝌蚪| 久久久久久久久久久久电影 | 国产乱码精品一区二区三| 欧美亚洲国产bt| 亚洲欧美区自拍先锋| 国产在线视频一区二区| 欧美夫妻性生活| 夜夜操天天操亚洲| 99精品黄色片免费大全| 久久久久九九视频| 免费高清在线一区| 91精品国产综合久久国产大片| 亚洲人成电影网站色mp4| 丁香婷婷综合网| 国产三区在线成人av| 久久精品国产网站| 欧美一级黄色片| 丝袜美腿成人在线| 欧美三级韩国三级日本三斤 | 中文字幕av资源一区| 国产精品自在在线| 精品日产卡一卡二卡麻豆| 日av在线不卡| 欧美一区二区三区小说| 石原莉奈在线亚洲二区| 欧美日本不卡视频| 午夜精品久久久久久久久| 在线观看日韩电影| 亚洲国产精品欧美一二99| 欧美日韩一区二区三区免费看| 亚洲图片自拍偷拍| 欧美日韩高清在线| 青娱乐精品视频在线| 精品国产免费人成在线观看| 久久97超碰色| 久久精品男人的天堂| 国产福利一区二区| 国产精品成人免费精品自在线观看 | 99国产精品99久久久久久| 国产精品久久久久aaaa| 91丨porny丨最新| 亚洲精品va在线观看| 在线观看av一区二区| 天天操天天综合网| 欧美不卡一区二区| 成人午夜私人影院| 亚洲自拍偷拍图区| 欧美一级免费观看| 国产精品影视在线| 亚洲人成人一区二区在线观看| 欧美日韩在线免费视频| 琪琪久久久久日韩精品| 国产亚洲成av人在线观看导航| 成人黄动漫网站免费app| 亚洲激情综合网| 91精品国产入口| 成人av电影免费观看| 亚洲成va人在线观看| 久久天天做天天爱综合色| av午夜一区麻豆| 免费视频一区二区|