Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
opisanie.doc
Скачиваний:
7
Добавлен:
30.04.2019
Размер:
4.16 Mб
Скачать
  1. Заключение

О сновная цель данного проекта – защитить живую природу от действия гамма-излучениня.

Для этих целей

  • Рассмотрены физические основы создания интеллектуального гамма-рефрактивного материала;

  • Предложена модель расчета роста материала методом фракталов;

  • Предложена конструкция защитных сооружений для АЭС.

Как было показано выше, даже локальное загрязнение может привести к мутагенным изменениям какого-либо вида биосистемы. Как известно, генетические изменения являются необратимыми. Изменения одного вида могут привести к изменениям других, и биосистема на Земле изменится до неузнаваемости.

Как правило, в случае радикальных угроз предлагаются методы развития подземных цивилизаций или фантастические проекты переселения человека на Луну, Марс или иные планеты, страшно представить, что ожидает его в этих поистине не человеческих условиях. Можно ли создать искусственно то, что на Земле происходило в течение миллионов лет?

В данном проекте предлагается направить усилия Человека Разумного на сохранение нашей уникальной планеты.

Создать интеллектуальный материал для защиты от радиоактивных излучений – это защитить Человека, Биосферу, а также все самое лучшее, что создано на Земле им, Homo Sapiens.

Для России эта цель является важной вдвойне. На ее огромных просторах еще сохранились источники чистой пресной воды, нетронутые леса, места обитания животных, птиц, рыб. В России есть и люди, которые могут это осуществить.

Может быть, не иные планеты, а именно ее огромные пространства и будут тем Ноевым ковчегом, который не позволит исчезнуть жизни на Земле.

Приложение № 1. Программа построения самособирающегося материала методом фрактала, написана на языке Delphi.

unit ufmMain;

interface

uses

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

Dialogs, ComCtrls, ExtCtrls, StdCtrls, XPMan, Math;

type

TfrmMain = class(TForm)

Pages: TPageControl;

tsSierpinski: TTabSheet;

shpSierpinski: TShape;

GroupBox1: TGroupBox;

UpDown1: TUpDown;

txtSierpinskiIter: TEdit;

StaticText1: TStaticText;

cmdDrawSierpinski: TButton;

imgSierpinski: TImage;

tsKoch: TTabSheet;

shpKoch: TShape;

imgKoch: TImage;

GroupBox2: TGroupBox;

UpDown2: TUpDown;

txtKochIter: TEdit;

StaticText2: TStaticText;

cmdDrawKoch: TButton;

GroupBox3: TGroupBox;

rbKochCurve: TRadioButton;

rbKochSnowflake: TRadioButton;

rbKochKross: TRadioButton;

tsPifagorTree: TTabSheet;

shpPifagor: TShape;

imgPifagor: TImage;

GroupBox4: TGroupBox;

UpDown3: TUpDown;

txtPifagorIter: TEdit;

StaticText3: TStaticText;

cmdDrawPifagor: TButton;

GroupBox5: TGroupBox;

txtLeftAngle: TEdit;

StaticText4: TStaticText;

txtRightAngle: TEdit;

StaticText5: TStaticText;

txtStartLen: TEdit;

UpDown4: TUpDown;

StaticText6: TStaticText;

StaticText7: TStaticText;

UpDown5: TUpDown;

txtBoundLen: TEdit;

StaticText8: TStaticText;

txtDecrement: TEdit;

StaticText9: TStaticText;

txtBeginAngle: TEdit;

chkUseBoundLen: TCheckBox;

UpDown6: TUpDown;

UpDown7: TUpDown;

UpDown8: TUpDown;

procedure cmdDrawSierpinskiClick(Sender: TObject);

procedure tsSierpinskiShow(Sender: TObject);

procedure tsSierpinskiResize(Sender: TObject);

procedure cmdDrawKochClick(Sender: TObject);

procedure tsKochResize(Sender: TObject);

procedure tsKochShow(Sender: TObject);

procedure FormResize(Sender: TObject);

procedure tsPifagorTreeShow(Sender: TObject);

procedure cmdDrawPifagorClick(Sender: TObject);

procedure chkUseBoundLenClick(Sender: TObject);

procedure txtStartLenKeyPress(Sender: TObject; var Key: Char);

procedure txtBeginAngleKeyPress(Sender: TObject; var Key: Char);

procedure txtDecrementKeyPress(Sender: TObject; var Key: Char);

procedure txtKochIterKeyPress(Sender: TObject; var Key: Char);

procedure UpDown4ChangingEx(Sender: TObject; var AllowChange: Boolean;

NewValue: Smallint; Direction: TUpDownDirection);

private

{ Private declarations }

public

Bitmap: TBitmap;

LA, RA, BL, DE: Real;

procedure rotate (var x, y: Real; x0, y0, u: Real);

procedure serp_tr (x1, y1, x2, y2, x3, y3: Real);

procedure serp_draw (x1, y1, x2, y2, x3, y3: Real; n: Integer);

procedure koch_step (var x, y: Real; l, u: Real; t: Integer);

procedure koch_draw (x, y, l, u: Real; t: Integer);

procedure pif_line (x, y: Real; l, u: real);

procedure pif_draw (x, y: Real; l, u: real; t: Integer);

end;

var

frmMain: TfrmMain;

implementation

procedure TfrmMain.FormResize(Sender: TObject);

begin Tag := 1; end;

function parse (txt: string): Real;

var

p: Integer;

Code: Integer;

Value: Integer;

l, r: string;

ln, rn: Real;

begin

p := Pos('/', txt);

if p < 2 then begin

Val(txt, Value, Code);

if Code <> 0 then

parse := NaN

else parse := Value;

Exit;

end else begin

l := Copy(txt, 1, p-1);

r := Copy(txt, p+1, Length(txt)-p);

Val(l, Value, Code);

if Code <> 0 then begin

parse := NaN;

Exit;

end;

ln := Value;

Val(r, Value, Code);

if Code <> 0 then begin

parse := NaN;

Exit;

end;

rn := Value;

parse := ln/rn;

end;

end;

procedure TfrmMain.tsPifagorTreeShow(Sender: TObject);

begin

if Tag = 1 then

begin

cmdDrawPifagor.Click;

Tag := 0;

end;

end;

procedure TfrmMain.pif_line (x, y: Real; l, u: real);

begin

Bitmap.Canvas.MoveTo(Trunc(x), Trunc(y));

Bitmap.Canvas.LineTo(Trunc(x+l*cos(u)), Trunc(y-l*sin(u)));

end;

procedure TfrmMain.pif_draw (x, y: Real; l, u: real; t: Integer);

begin

if (not chkUseBoundLen.Checked) and (t = 0) then Exit;

if (l > BL) then begin

l := l * DE;

pif_line(x, y, l, u);

x := x + l * cos(u);

y := y - l * sin(u);

pif_draw(x, y, l, u + LA, t-1);

pif_draw(x, y, l, u - RA, t-1);

end;

end;

procedure TfrmMain.cmdDrawPifagorClick(Sender: TObject);

var

x, y: Real;

l, u: Real;

R, a: Real;

x0, y0: Real;

Code: Integer;

Value: Integer;

StartLen: Integer;

SA: Real;

begin

DecimalSeparator := '.';

try

DE := StrToFloat(txtDecrement.Text);

except

on EConvertError do begin

ShowMessage('Неверно введено значение!');

txtDecrement.SetFocus;

Exit;

end;

end;

try

SA := StrToFloat(txtBeginAngle.Text);

SA := SA / 180 * pi;

except

on EConvertError do begin

ShowMessage('Неверно введено значение!');

txtBeginAngle.SetFocus;

Exit;

end;

end;

try

LA := StrToFloat(txtLeftAngle.Text);

LA := LA / 180 * pi;

except

on EConvertError do begin

ShowMessage('Неверно введено значение!');

txtLeftAngle.SetFocus;

Exit;

end;

end;

try

RA := StrToFloat(txtRightAngle.Text);

RA := RA / 180 * pi;

except

on EConvertError do begin

ShowMessage('Неверно введено значение!');

txtRightAngle.SetFocus;

Exit;

end;

end;

Val(txtStartLen.Text, StartLen, Code);

Val(txtBoundLen.Text, BL, Code);

if (not chkUseBoundLen.Checked) then

BL := 0

else begin

if BL = 0 then BL := 0.1;

end;

Val(txtPifagorIter.Text, Value, Code);

Bitmap := TBitmap.Create;

Bitmap.Width := imgPifagor.Width;

Bitmap.Height := imgPifagor.Height;

x := Bitmap.Width/2 - 1;

y := Bitmap.Height - 1;

pif_draw(x, y, StartLen, SA, Value);

imgPifagor.Picture.Bitmap.Assign(Bitmap);

Bitmap.Destroy;

end;

procedure TfrmMain.chkUseBoundLenClick(Sender: TObject);

begin

StaticText7.Enabled := not StaticText7.Enabled;

txtBoundLen.Enabled := not txtBoundLen.Enabled;

StaticText3.Enabled := not StaticText3.Enabled;

txtPifagorIter.Enabled := not txtPifagorIter.Enabled;

UpDown3.Enabled := not UpDown3.Enabled;

UpDown5.Enabled := not UpDown5.Enabled;

cmdDrawPifagor.Click;

end;

{$R *.dfm}

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]