Читайте данную работу прямо на сайте или скачайте

Скачайте в формате документа WORD


Кадрирование, диаграмма и график. Геометрическое моделирование

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Buttons, StdCtrls, Spin, ExtCtrls;

type

TForm1 = class(TForm)

SpinEdit2: TSpinEdit;

SpinEdit3: TSpinEdit;

SpinEdit4: TSpinEdit;

SpinEdit5: TSpinEdit;

SpeedButton1: TSpeedButton;

SpinEdit1: TSpinEdit;

procedure SpeedButton1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

k3,k2,max,sum,i,xx:integer;

s,ss:array[1..5]of integer;

pr:extended;

r1,r2,r3,r4,r5:trect;

implementation

{$R *.DFM}

procedure p1а ;

begin

form1.refresh;

form1.canvas.pen.width:=2;

form1.canvas.pen.color:=clblack;

for i:=0 to 627 do

begin

if i=ss[1] thenа form1.canvas.pen.color:=clred;

if i=(ss[1]+ss[2]) thenа form1.canvas.pen.color:=clblue;

if i=(ss[1]+ss[2]+ss[3]) thenа form1.canvas.pen.color:=clgreen;

if i=(ss[1]+ss[2]+ss[3]+ss[4]) thenа form1.canvas.pen.color:=clwhite;

form1.canvas.moveto(75,75);

form1.canvas.lineto(trunc(75+60*cos(i/100)),trunc(75+60*sin(i/100)));

end;

{-------- линейный график --------------}

form1.canvas.pen.width:=1;

form1.canvas.moveto(200,20);

form1.canvas.lineto(200,150);

form1.canvas.lineto(400,150);

form1.canvas.moveto(200,150);

xx:=240;

for i:=1 to 5 do

begin

form1.canvas.lineto(xx,(150-s[i]*k2));

xx:=xx+40;

end;

{--------- гистограмма ------------}

form1.canvas.pen.width:=2;

form1.canvas.moveto(48,190);

form1.canvas.lineto(48,402);

form1.canvas.lineto(402,402);

r1:=rect(50,400,120,(400-s[1]*k3));

r2:=rect(120,400,190,(400-s[2]*k3));

r3:=rect(190,400,260,(400-s[3]*k3));

r4:=rect(260,400,330,(400-s[4]*k3));

r5:=rect(330,400,400,(400-s[5]*k3));

form1.canvas.brush.color:=clblack;

form1.canvas.fillrect(r1);

form1.canvas.brush.color:=clred;

form1.canvas.fillrect(r2);

form1.canvas.brush.color:=clblue;

form1.canvas.fillrect(r3);

form1.canvas.brush.color:=clgreen;

form1.canvas.fillrect(r4);

form1.canvas.brush.color:=clwhite;

form1.canvas.fillrect(r5);

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

s[1]:=SpinEdit1.value;

s[2]:=SpinEdit2.value;

s[3]:=SpinEdit3.value;

s[4]:=SpinEdit4.value;

s[5]:=SpinEdit5.value;

sum:=0;

for i:=1 to 5 do

sum:=sum+s[i];

pr:=628/sum;

for i:=1 to 5 do

ss[i]:=trunc(s[i]*pr);

max:=0;

for i:=1 to 5 do if s[i]>=max then max:=s[i];

k2:=trunc(140/max);

k3:=trunc(200/max);

p1; { процедура которая может все }

end;

end.