География - лучший географический портал. Сайты, учебные материалы по географии.

Проверка устойчивости тюбинговых обделок вертикальных стволов метрополитенов.

Страница 3

public

{ Public declarations }

end;

TPaintData = (isP0,isP2);

TDiagramArray = Array[TPaintData,1 5] of Double;

var

PLines : TDiagramArray;

DrawForm: TDrawForm;

implementation

{$R *.DFM}

procedure TDrawForm.FormActivate(Sender: TObject);

var

R: TRect;

MaxX, MinX: Double;

MaxY, MinY: Double;

Nx, Ny: Integer;

Kx, Ky: Double;

i: Byte;

PointMin, PointMax: Double;

procedure DrawLine(X0, k, b:Double);

begin

Canvas.MoveTo(R.Left+60+Round(Kx*X0),R.Bottom-30);

if k<0 then

Canvas.LineTo(R.Left+60,Round(R.Bottom - 33 -

(Ky*(b+(k*(10)/Kx)))))

else

Canvas.LineTo(R.Right-10,Round(R.Bottom - 33 -

(Ky*(-b+(k*((R.Right-R.Left-70)/Kx))))));

end;

begin

PLines[isP0,3] := 0;

PLines[isP2,3] := 0;

MaxX := 0.0;

MinX := 0.0;

MaxY := 0.0;

MinY := 0.0;

for i := 1 to 5 do begin

if PLines[isP0,i] > MaxX then MaxX := PLines[isP0,i];

if PLines[isP2,i] > MaxY then MaxY := PLines[isP2,i];

if PLines[isP0,i] < MinX then MinX := PLines[isP0,i];

if PLines[isP2,i] < MinY then MinY := PLines[isP2,i];

end;

if MaxX > 200 then Nx := 100 else Nx := 10;

MaxX := Round(MaxX/Nx)*Nx+Nx;

if MaxY > 200 then Ny := 100 else Ny := 10;

MaxY := Round(MaxY/Ny)*Ny+Ny;

with DrawForm do begin

Canvas.Pen.Color := clBlack;

R.Left := 10;

R.Top := 10;

R.Right := Width - 15;

R.Bottom := Height - 70;

Canvas.FrameRect(R);

Canvas.Brush.Color := clBtnFace;

Kx := (R.Right - R.Left - 80)/MaxX;

Ky := (R.Bottom - R.Top - 80)/MaxY;

{Ось Po}

Canvas.MoveTo(R.Left+10,R.Bottom-30);

Canvas.LineTo(R.Right-10,R.Bottom-30);

{Ось P2}

Canvas.MoveTo(R.Left+60,R.Top+30);

Canvas.LineTo(R.Left+60,R.Bottom-30);

i := 0;

while i*Nx<MaxX do begin

Inc(i);

Canvas.MoveTo(R.Left+60+Round(Kx*i*Nx),R.Bottom-33);

Canvas.LineTo(R.Left+60+Round(Kx*i*Nx),R.Bottom-27);

Canvas.TextOut(R.Left+50+Round(Kx*i*Nx), R.Bottom-20,

IntToStr(i*Nx));

end;

i := 0;

while i*Ny<MaxY do begin

Inc(i);

Canvas.MoveTo(R.Left+63,R.Bottom-30-Round(Ky*i*Ny));

Canvas.LineTo(R.Left+57,R.Bottom-30-Round(Ky*i*Ny));

Canvas.TextOut(R.Left+30, R.Bottom-35-Round(Ky*i*Ny),

IntToStr(i*Ny));

end;

if PLines[isP0,1] > PLines[isP0,4] then

PointMax := PLines[isP0,4]

else PointMax := PLines[isP0,1];

if PLines[isP0,2] > PLines[isP0,5] then

PointMin := PLines[isP0,2]

else PointMin := PLines[isP0,5];

if PointMin < 0 then PointMin := 0.0;

DrawLine(PLines[isP0,1],

-(PLines[isP2,1]/PLines[isP0,1]),PLines[isP2,1]);

DrawLine(PLines[isP0,2],

-(PLines[isP2,2]/PLines[isP0,2]),PLines[isP2,2]);

DrawLine(0,1,0);

DrawLine(PLines[isP0,4],

-(PLines[isP2,4]/PLines[isP0,4]),PLines[isP2,4]);

DrawLine(PLines[isP0,5],

-(PLines[isP2,5]/PLines[isP0,5]),PLines[isP2,5]);

Canvas.Brush.Color := clGreen;

Canvas.FloodFill(Round((((PointMax-PointMin)/2)*Kx)+R.Left+60),

R.Bottom-55, clBlack, fsBorder);

Canvas.Brush.Color := clBtnFace;

Canvas.TextOut(R.Right-80, R.Bottom-50, 'P0, TC/M*2');

Canvas.TextOut(R.Left+20, R.Top+10, 'P2, TC/M*2');

end;

end;

end.

unit Edittub;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,

Controls,Forms, Dialogs, DBFilter, DB, DBTables, Grids, DBGrids,

RXLookup, ExtCtrls, DBCtrls;

type

TEditDataForm = class(TForm)

Panel1: TPanel;

rxDBLookupCombo1: TrxDBLookupCombo;

TableSTUFF: TTable;

DataSourceSTUFF: TDataSource;

DBGrid1: TDBGrid;

DataSourceDATA: TDataSource;

TableDATA: TTable;

TableDATAMass: TFloatField;

TableDATAR_press: TFloatField;

TableDATAR_stretch: TFloatField;

TableDATAPuasson: TFloatField;

TableDATAR1: TFloatField;

TableDATARb: TFloatField;

TableDATAR: TFloatField;

TableDATAA: TFloatField;

TableDATAB: TFloatField;

Страницы: 1 2 3 4 5 6 7 8

Другие публикации

Центральная Азия
Наиболее характерной чертой Центральной Азии является сочетание расположенных на разных уровнях аридных равнин, котловин и плоскогорий, окруженных высокими хребтами. Только на наиболее увлажненных склонах гор северной экспозиции на границе с Россией растут леса, на ос ...

Особенности развития флоры, фауны и современный почвенно-растительный покров Азии
Несмотря на тесные территориальные связи Европы и Азии, формирование почвенного покрова, развитие растительного и животного мира обеих частей протекали во многих случаях неодинаково. Так, например, в северной Европе наиболее сильное влияние на всю ее современную приро ...

Разделы

Поиск