Добавлен новый модуль TurtleWPF.pas
Добавлен модуль МозаикаABC.pas В NUnitABC в InitPABCSystem добавлена установка кодировки В Robot добавлено 5 задач на break
This commit is contained in:
parent
23635ace40
commit
9e89da9b32
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
|||
public const string Major = "3";
|
||||
public const string Minor = "8";
|
||||
public const string Build = "3";
|
||||
public const string Revision = "3226";
|
||||
public const string Revision = "3233";
|
||||
|
||||
public const string MainVersion = Major + "." + Minor;
|
||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
%COREVERSION%=3
|
||||
%REVISION%=3226
|
||||
%MINOR%=8
|
||||
%REVISION%=3233
|
||||
%COREVERSION%=3
|
||||
%MAJOR%=3
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
3.8.3.3226
|
||||
3.8.3.3233
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
!define VERSION '3.8.3.3226'
|
||||
!define VERSION '3.8.3.3233'
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
GraphABCHelper,
|
||||
GraphWPFBase,
|
||||
Graph3D,
|
||||
GraphWPF, Turtle,
|
||||
GraphWPF, Turtle, TurtleWPF,
|
||||
WPFObjects,
|
||||
NumLibABC,
|
||||
IniFile, PointerTools, PointRect, PT4, PT4MakerNetX, Robot, RobotField,
|
||||
|
|
|
|||
|
|
@ -138,6 +138,7 @@
|
|||
File ..\bin\Lib\School.pcu
|
||||
File ..\bin\Lib\SF.pcu
|
||||
File ..\bin\Lib\Turtle.pcu
|
||||
File ..\bin\Lib\TurtleWPF.pcu
|
||||
File ..\bin\Lib\LightPT.pcu
|
||||
File ..\bin\Lib\Tasks.pcu
|
||||
File ..\bin\Lib\TwoPanelsWindow.pcu
|
||||
|
|
@ -146,13 +147,14 @@
|
|||
File ..\bin\Lib\XLSX.pcu
|
||||
File ..\bin\Lib\Мозаика.pcu
|
||||
|
||||
|
||||
File ..\bin\Lib\PABCRtl.dll
|
||||
File ..\bin\Lib\HelixToolkit.Wpf.dll
|
||||
File ..\bin\Lib\HelixToolkit.dll
|
||||
File ..\bin\Lib\nunit.framework.dll
|
||||
File ..\bin\Lib\InteractiveDataDisplay.WPF.dll
|
||||
|
||||
File ..\bin\Lib\turtle.png
|
||||
|
||||
${AddFile} "__RedirectIOMode.pcu"
|
||||
${AddFile} "__RunMode.pcu"
|
||||
${AddFile} "ABCButtons.pcu"
|
||||
|
|
@ -217,6 +219,7 @@
|
|||
${AddFile} "School.pcu"
|
||||
${AddFile} "SF.pcu"
|
||||
${AddFile} "Turtle.pcu"
|
||||
${AddFile} "TurtleWPF.pcu"
|
||||
${AddFile} "LightPT.pcu"
|
||||
${AddFile} "Tasks.pcu"
|
||||
${AddFile} "TwoPanelsWindow.pcu"
|
||||
|
|
@ -225,6 +228,7 @@
|
|||
${AddFile} "XLSX.pcu"
|
||||
${AddFile} "Мозаика.pcu"
|
||||
|
||||
${AddFile} "turtle.png"
|
||||
|
||||
${AddFile} "PABCRtl.dll"
|
||||
${AddFile} "HelixToolkit.Wpf.dll"
|
||||
|
|
@ -314,6 +318,7 @@
|
|||
File ..\bin\Lib\School.pas
|
||||
File ..\bin\Lib\SF.pas
|
||||
File ..\bin\Lib\Turtle.pas
|
||||
File ..\bin\Lib\TurtleWPF.pas
|
||||
File ..\bin\Lib\LightPT.pas
|
||||
File ..\bin\Lib\Tasks.pas
|
||||
File ..\bin\Lib\TwoPanelsWindow.pas
|
||||
|
|
@ -387,6 +392,7 @@
|
|||
${AddFile} "School.pas"
|
||||
${AddFile} "SF.pas"
|
||||
${AddFile} "Turtle.pas"
|
||||
${AddFile} "TurtleWPF.pas"
|
||||
${AddFile} "LightPT.pas"
|
||||
${AddFile} "Tasks.pas"
|
||||
${AddFile} "TwoPanelsWindow.pas"
|
||||
|
|
|
|||
|
|
@ -96,6 +96,8 @@ type
|
|||
th: real := 1;
|
||||
fx,fy: real;
|
||||
rc: boolean := false;
|
||||
public
|
||||
///--
|
||||
function PenConstruct: GPen;
|
||||
begin
|
||||
Result := new GPen(GetBrush(c),th);
|
||||
|
|
@ -110,6 +112,7 @@ type
|
|||
Result.StartLineCap := PenLineCap.Flat;
|
||||
Result.EndLineCap := PenLineCap.Flat;
|
||||
end;
|
||||
Result.Freeze;
|
||||
end;
|
||||
public
|
||||
/// Цвет пера
|
||||
|
|
|
|||
|
|
@ -410,6 +410,12 @@ begin
|
|||
RegisterTask('pp7',pp7);
|
||||
RegisterTask('pp8',pp8);
|
||||
|
||||
RegisterTask('br1',br1);
|
||||
RegisterTask('br2',br2);
|
||||
RegisterTask('br3',br3);
|
||||
RegisterTask('br4',br4);
|
||||
RegisterTask('br5',br5);
|
||||
|
||||
RegisterTask('examen1',examen1);
|
||||
RegisterTask('examen2',examen2);
|
||||
RegisterTask('examen3',examen3);
|
||||
|
|
@ -420,6 +426,7 @@ begin
|
|||
RegisterTask('examen8',examen8);
|
||||
RegisterTask('examen9',examen9);
|
||||
RegisterTask('examen10',examen10);
|
||||
|
||||
end;
|
||||
|
||||
procedure Task(name: string);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -169,13 +169,13 @@ type
|
|||
ob: FrameworkElement;
|
||||
gr: Grid; // Grid связан только с текстом
|
||||
t: TextBlock;
|
||||
ChildrenWPF := new List<ObjectWPF>;
|
||||
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
|
||||
protected
|
||||
transfgroup: TransformGroup;
|
||||
rot: RotateTransform;
|
||||
sca: ScaleTransform;
|
||||
transl: TranslateTransform;
|
||||
|
||||
ChildrenWPF := new List<ObjectWPF>;
|
||||
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
|
||||
public
|
||||
/// Направление движения по оси X. Используется методом Move
|
||||
auto property Dx: real;
|
||||
|
|
@ -1233,7 +1233,7 @@ type
|
|||
// -----------------------------------------------------
|
||||
/// Класс графических объектов "Рисунок"
|
||||
PictureWPF = class(ObjectWPF)
|
||||
private
|
||||
protected
|
||||
function CreateBitmapImage(fname: string) := new BitmapImage(new System.Uri(fname,System.UriKind.Relative));
|
||||
procedure Rest(x,y,w,h: real; b: BitmapImage);
|
||||
begin
|
||||
|
|
@ -1244,6 +1244,7 @@ type
|
|||
|
||||
InitOb(x,y,w,h,im);
|
||||
end;
|
||||
private
|
||||
procedure InitOb3(x,y,w,h: real; fname: string);
|
||||
begin
|
||||
var b := CreateBitmapImage(fname);
|
||||
|
|
|
|||
BIN
TestSuite/CompilationSamples/turtle.png
Normal file
BIN
TestSuite/CompilationSamples/turtle.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
|
|
@ -53,7 +53,7 @@ namespace VisualPascalABC
|
|||
try
|
||||
{
|
||||
WebClient client = new WebClient();
|
||||
newVersion = client.DownloadString("http://pascalabc.net/downloads/pabcversion.txt").Trim();
|
||||
newVersion = client.DownloadString("https://pascalabc.net/downloads/pabcversion.txt").Trim();
|
||||
curVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
if ((new Version(curVersion)).CompareTo(new Version(newVersion)) == -1)
|
||||
status = 0;
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ namespace VisualPascalABC
|
|||
try
|
||||
{
|
||||
WebClient client = new WebClient();
|
||||
newVersion = client.DownloadString("http://pascalabc.net/downloads/pabcversion.txt").Trim();
|
||||
newVersion = client.DownloadString("https://pascalabc.net/downloads/pabcversion.txt").Trim();
|
||||
curVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
if ((new Version(curVersion)).CompareTo(new Version(newVersion)) == -1)
|
||||
status = 0;
|
||||
|
|
|
|||
|
|
@ -96,6 +96,8 @@ type
|
|||
th: real := 1;
|
||||
fx,fy: real;
|
||||
rc: boolean := false;
|
||||
public
|
||||
///--
|
||||
function PenConstruct: GPen;
|
||||
begin
|
||||
Result := new GPen(GetBrush(c),th);
|
||||
|
|
@ -110,6 +112,7 @@ type
|
|||
Result.StartLineCap := PenLineCap.Flat;
|
||||
Result.EndLineCap := PenLineCap.Flat;
|
||||
end;
|
||||
Result.Freeze;
|
||||
end;
|
||||
public
|
||||
/// Цвет пера
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ uses NUnit.Framework;
|
|||
procedure InitPABCSystem;
|
||||
begin
|
||||
__InitPABCSystem;
|
||||
System.Console.OutputEncoding := Encoding.GetEncoding(866);
|
||||
end;
|
||||
|
||||
type
|
||||
|
|
|
|||
|
|
@ -410,6 +410,12 @@ begin
|
|||
RegisterTask('pp7',pp7);
|
||||
RegisterTask('pp8',pp8);
|
||||
|
||||
RegisterTask('br1',br1);
|
||||
RegisterTask('br2',br2);
|
||||
RegisterTask('br3',br3);
|
||||
RegisterTask('br4',br4);
|
||||
RegisterTask('br5',br5);
|
||||
|
||||
RegisterTask('examen1',examen1);
|
||||
RegisterTask('examen2',examen2);
|
||||
RegisterTask('examen3',examen3);
|
||||
|
|
@ -420,6 +426,7 @@ begin
|
|||
RegisterTask('examen8',examen8);
|
||||
RegisterTask('examen9',examen9);
|
||||
RegisterTask('examen10',examen10);
|
||||
|
||||
end;
|
||||
|
||||
procedure Task(name: string);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
170
bin/Lib/TurtleWPF.pas
Normal file
170
bin/Lib/TurtleWPF.pas
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
unit TurtleWPF;
|
||||
|
||||
{$resource 'turtle.png'}
|
||||
|
||||
uses GraphWPF,WPFObjects,GraphWPFBase;
|
||||
uses System.Windows.Media.Animation;
|
||||
uses System.Windows.Media;
|
||||
uses System.Windows.Media.Imaging;
|
||||
|
||||
var
|
||||
TurtleX: real := 400;
|
||||
TurtleY: real := 300;
|
||||
w := 24; // размер изображения Черепахи
|
||||
|
||||
type
|
||||
TurtleHelper = class(PictureWPF)
|
||||
private
|
||||
function CreateBitmapImageFromResource(resourcename: string): BitmapImage;
|
||||
begin
|
||||
var bi := new BitmapImage();
|
||||
bi.BeginInit();
|
||||
bi.StreamSource := GetResourceStream(resourcename);
|
||||
bi.EndInit();
|
||||
Result := bi;
|
||||
end;
|
||||
procedure InitObFromResource(x,y,w,h: real; fname: string);
|
||||
begin
|
||||
var b := CreateBitmapImageFromResource(fname);
|
||||
Rest(x,y,w,h,b);
|
||||
end;
|
||||
procedure AnimMoveByPE(a,b,sec: real);
|
||||
begin
|
||||
var v := CreateVisual;
|
||||
var p := Center;
|
||||
var (x,y) := (transl.X,transl.Y);
|
||||
var ax := new DoubleAnimation(a + transl.X, System.TimeSpan.FromSeconds(sec));
|
||||
var ay := new DoubleAnimation(b + transl.Y, System.TimeSpan.FromSeconds(sec));
|
||||
ax.FillBehavior := FillBehavior.Stop;
|
||||
ay.FillBehavior := FillBehavior.Stop;
|
||||
var transl1 := transl;
|
||||
ax.Completed += (o,e) -> begin
|
||||
DrawOnVisual(v,dc->dc.DrawLine(GraphWPF.Pen.PenConstruct,p,Pnt(p.X + a,p.Y + b)));
|
||||
transl1.X := x + a; // transl - ошибка с лямбдами!
|
||||
end;
|
||||
ay.Completed += (o,e) -> begin
|
||||
transl1.Y := y + b;
|
||||
end;
|
||||
ax.CurrentTimeInvalidated += (o,e) ->
|
||||
DrawOnVisual(v,dc->dc.DrawLine(GraphWPF.Pen.PenConstruct,p,Pnt(Center.X,Center.Y)));
|
||||
transl.BeginAnimation(TranslateTransform.XProperty, ax, HandoffBehavior.Compose);
|
||||
transl.BeginAnimation(TranslateTransform.YProperty, ay, HandoffBehavior.Compose);
|
||||
end;
|
||||
public
|
||||
constructor (x,y,w,h: real; fname: string) := Invoke(InitObFromResource,x,y,w,h,fname);
|
||||
procedure AnimMoveByE(a,b,sec: real);
|
||||
begin
|
||||
Invoke(AnimMoveByPE,a,b,sec);
|
||||
Sleep(Round(sec*1000 + 50)); // 50 мс - За это время анимация должна закончиться
|
||||
TurtleX += a;
|
||||
TurtleY += b;
|
||||
GraphWPF.MoveTo(TurtleX,TurtleY);
|
||||
end;
|
||||
procedure AnimRotateE(a,sec: real);
|
||||
begin
|
||||
AnimRotate(a,sec);
|
||||
Sleep(Round(sec*1000 + 50));
|
||||
end;
|
||||
end;
|
||||
Colors = GraphWPF.Colors;
|
||||
|
||||
var t: TurtleHelper;
|
||||
|
||||
var
|
||||
a: real := 0;
|
||||
dr := False;
|
||||
speed := 10;
|
||||
|
||||
procedure SetSpeed(sp: integer);
|
||||
begin
|
||||
speed := sp;
|
||||
end;
|
||||
|
||||
var sl := 30;
|
||||
|
||||
procedure Hide;
|
||||
begin
|
||||
t.Visible := False;
|
||||
end;
|
||||
|
||||
procedure Show;
|
||||
begin
|
||||
t.Visible := True;
|
||||
end;
|
||||
|
||||
/// Поворачивает Черепаху на угол da по часовой стрелке
|
||||
procedure Turn(da: real);
|
||||
begin
|
||||
a += da;
|
||||
if speed = 10 then
|
||||
begin
|
||||
t.Rotate(da);
|
||||
Sleep(sl);
|
||||
end
|
||||
else
|
||||
begin
|
||||
if dr then
|
||||
t.AnimRotateE(da,Abs(da/(60*speed)))
|
||||
else
|
||||
begin
|
||||
t.AnimRotate(da,Abs(da/(60*speed)));
|
||||
Sleep(Round(Abs(da/(60*speed))*1000)+50);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
/// Продвигает Черепаху вперёд на расстояние r
|
||||
procedure Forw(r: real);
|
||||
begin
|
||||
var v := r * Vect(Cos(DegToRad(a)),Sin(DegToRad(a)));
|
||||
if (speed = 10) or (r < 20) then
|
||||
begin
|
||||
TurtleX += v.X;
|
||||
TurtleY += v.Y;
|
||||
if dr then
|
||||
LineTo(TurtleX,TurtleY)
|
||||
else MoveTo(TurtleX,TurtleY);
|
||||
t.MoveBy(v.X,v.Y);
|
||||
Sleep(sl);
|
||||
end
|
||||
else
|
||||
begin
|
||||
if dr then
|
||||
t.AnimMoveByE(v.X,v.Y,r/(50*speed)) // 450 в секунду при скорости 9
|
||||
else
|
||||
begin
|
||||
t.AnimMoveBy(v.X,v.Y,r/(50*speed));
|
||||
Sleep(Round(r/(50*speed)*1000)+50);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
/// Опускает хвост Черепахи
|
||||
procedure Down := dr := True;
|
||||
|
||||
/// Поднимает хвост Черепахи
|
||||
procedure Up := dr := False;
|
||||
|
||||
/// Устанавливает ширину линии
|
||||
procedure SetWidth(w: real) := GraphWPF.Pen.Width := w;
|
||||
|
||||
/// Устанавливает цвет линии
|
||||
procedure SetColor(c: GColor) := GraphWPF.Pen.Color := c;
|
||||
|
||||
/// Перемещает Черепаху в точку (x,y)
|
||||
procedure MoveTo(x,y: real);
|
||||
begin
|
||||
TurtleX := x;
|
||||
TurtleY := y;
|
||||
GraphWPF.MoveTo(x,y);
|
||||
t.Center := Pnt(x,y);
|
||||
end;
|
||||
|
||||
begin
|
||||
Window.Title := 'Исполнитель Черепаха WPF';
|
||||
|
||||
t := new TurtleHelper(TurtleX-w/2,TurtleY-w/2,w,w,'turtle.png');
|
||||
//Pen.RoundCap := True;
|
||||
MoveTo(TurtleX,TurtleY);
|
||||
a -= 90;
|
||||
end.
|
||||
|
|
@ -169,13 +169,13 @@ type
|
|||
ob: FrameworkElement;
|
||||
gr: Grid; // Grid связан только с текстом
|
||||
t: TextBlock;
|
||||
ChildrenWPF := new List<ObjectWPF>;
|
||||
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
|
||||
protected
|
||||
transfgroup: TransformGroup;
|
||||
rot: RotateTransform;
|
||||
sca: ScaleTransform;
|
||||
transl: TranslateTransform;
|
||||
|
||||
ChildrenWPF := new List<ObjectWPF>;
|
||||
procedure InitOb(x,y,w,h: real; o: FrameworkElement; SetWH: boolean := True; Hidden: boolean := False);
|
||||
public
|
||||
/// Направление движения по оси X. Используется методом Move
|
||||
auto property Dx: real;
|
||||
|
|
@ -1233,7 +1233,7 @@ type
|
|||
// -----------------------------------------------------
|
||||
/// Класс графических объектов "Рисунок"
|
||||
PictureWPF = class(ObjectWPF)
|
||||
private
|
||||
protected
|
||||
function CreateBitmapImage(fname: string) := new BitmapImage(new System.Uri(fname,System.UriKind.Relative));
|
||||
procedure Rest(x,y,w,h: real; b: BitmapImage);
|
||||
begin
|
||||
|
|
@ -1244,6 +1244,7 @@ type
|
|||
|
||||
InitOb(x,y,w,h,im);
|
||||
end;
|
||||
private
|
||||
procedure InitOb3(x,y,w,h: real; fname: string);
|
||||
begin
|
||||
var b := CreateBitmapImage(fname);
|
||||
|
|
|
|||
BIN
bin/Lib/turtle.png
Normal file
BIN
bin/Lib/turtle.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
478
bin/Lib/МозаикаABC.pas
Normal file
478
bin/Lib/МозаикаABC.pas
Normal file
|
|
@ -0,0 +1,478 @@
|
|||
unit МозаикаABC;
|
||||
|
||||
interface
|
||||
|
||||
uses GraphABC;
|
||||
|
||||
var Window := GraphABC.Window;
|
||||
|
||||
procedure п;
|
||||
|
||||
procedure к;
|
||||
procedure кк1;
|
||||
procedure кк2;
|
||||
procedure кк3;
|
||||
procedure кк4;
|
||||
procedure кт1;
|
||||
procedure кт2;
|
||||
procedure кт3;
|
||||
procedure кт4;
|
||||
|
||||
procedure ко;
|
||||
procedure кок1;
|
||||
procedure кок2;
|
||||
procedure кок3;
|
||||
procedure кок4;
|
||||
procedure кот1;
|
||||
procedure кот2;
|
||||
procedure кот3;
|
||||
procedure кот4;
|
||||
|
||||
procedure ж;
|
||||
procedure жк1;
|
||||
procedure жк2;
|
||||
procedure жк3;
|
||||
procedure жк4;
|
||||
procedure жт1;
|
||||
procedure жт2;
|
||||
procedure жт3;
|
||||
procedure жт4;
|
||||
|
||||
procedure г;
|
||||
procedure гк1;
|
||||
procedure гк2;
|
||||
procedure гк3;
|
||||
procedure гк4;
|
||||
procedure гт1;
|
||||
procedure гт2;
|
||||
procedure гт3;
|
||||
procedure гт4;
|
||||
|
||||
procedure ч;
|
||||
procedure чк1;
|
||||
procedure чк2;
|
||||
procedure чк3;
|
||||
procedure чк4;
|
||||
procedure чт1;
|
||||
procedure чт2;
|
||||
procedure чт3;
|
||||
procedure чт4;
|
||||
|
||||
procedure б;
|
||||
procedure бт1;
|
||||
procedure бт2;
|
||||
procedure бт3;
|
||||
procedure бт4;
|
||||
procedure бк1;
|
||||
procedure бк2;
|
||||
procedure бк3;
|
||||
procedure бк4;
|
||||
|
||||
procedure з;
|
||||
procedure зт1;
|
||||
procedure зт2;
|
||||
procedure зт3;
|
||||
procedure зт4;
|
||||
procedure зк1;
|
||||
procedure зк2;
|
||||
procedure зк3;
|
||||
procedure зк4;
|
||||
|
||||
procedure с;
|
||||
procedure ст1;
|
||||
procedure ст2;
|
||||
procedure ст3;
|
||||
procedure ст4;
|
||||
procedure ск1;
|
||||
procedure ск2;
|
||||
procedure ск3;
|
||||
procedure ск4;
|
||||
|
||||
procedure се;
|
||||
procedure сет1;
|
||||
procedure сет2;
|
||||
procedure сет3;
|
||||
procedure сет4;
|
||||
procedure сек1;
|
||||
procedure сек2;
|
||||
procedure сек3;
|
||||
procedure сек4;
|
||||
|
||||
procedure о;
|
||||
procedure от1;
|
||||
procedure от2;
|
||||
procedure от3;
|
||||
procedure от4;
|
||||
procedure ок1;
|
||||
procedure ок2;
|
||||
procedure ок3;
|
||||
procedure ок4;
|
||||
|
||||
procedure р;
|
||||
procedure рт1;
|
||||
procedure рт2;
|
||||
procedure рт3;
|
||||
procedure рт4;
|
||||
procedure рк1;
|
||||
procedure рк2;
|
||||
procedure рк3;
|
||||
procedure рк4;
|
||||
|
||||
procedure ф;
|
||||
procedure фт1;
|
||||
procedure фт2;
|
||||
procedure фт3;
|
||||
procedure фт4;
|
||||
procedure фк1;
|
||||
procedure фк2;
|
||||
procedure фк3;
|
||||
procedure фк4;
|
||||
|
||||
procedure Ряд(p: procedure);
|
||||
procedure НарисоватьРяд(p: procedure);
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
w := 50;
|
||||
z := 2;
|
||||
x := 1;
|
||||
y := 1;
|
||||
|
||||
procedure Draw(x, y: integer) := Rectangle(x * w, y * w, w - z, w - z);
|
||||
|
||||
procedure D(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Draw(x, y);
|
||||
x += 1;
|
||||
end;
|
||||
|
||||
procedure Ц1(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Pie(x * w + w - z,y * w + w - z,w-z,90,180);
|
||||
x += 1;
|
||||
end;
|
||||
procedure Ц2(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Pie(x * w,y * w + w - z,w-z,0,90);
|
||||
x += 1;
|
||||
end;
|
||||
procedure Ц3(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Pie(x * w,y * w,w-z,270,360);
|
||||
x += 1;
|
||||
end;
|
||||
procedure Ц4(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Pie(x * w + w - z,y * w,w-z,180,270);
|
||||
x += 1;
|
||||
end;
|
||||
procedure Тр1(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Polygon(Arr(Pnt(x * w + w - z,y * w + w - z),Pnt(x * w + w - z,y * w),Pnt(x * w,y * w + w - z)));
|
||||
x += 1;
|
||||
end;
|
||||
procedure Тр2(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Polygon(Arr(Pnt(x * w,y * w + w - z),Pnt(x * w,y * w),Pnt(x * w + w - z,y * w + w - z)));
|
||||
x += 1;
|
||||
end;
|
||||
procedure Тр3(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Polygon(Arr(Pnt(x * w,y * w),Pnt(x * w + w - z,y * w),Pnt(x * w,y * w + w - z)));
|
||||
x += 1;
|
||||
end;
|
||||
procedure Тр4(c: Color);
|
||||
begin
|
||||
Brush.Color := c;
|
||||
Polygon(Arr(Pnt(x * w + w - z,y * w),Pnt(x * w,y * w),Pnt(x * w + w - z,y * w + w - z)));
|
||||
x += 1;
|
||||
end;
|
||||
|
||||
//------ Соответствие цветов
|
||||
var КрасныйЦвет := Color.Red;
|
||||
var ОранжевыйЦвет := RGB(255,127,$00);
|
||||
var ЖелтыйЦвет := Color.Yellow;
|
||||
var ЗеленыйЦвет := RGB($00,$99,$00);
|
||||
var ГолубойЦвет := RGB($61,$c3,$ff);
|
||||
var СинийЦвет := RGB(0,0,255);
|
||||
var ФиолетовыйЦвет := RGB($94,$00,$d3);
|
||||
|
||||
var РозовыйЦвет := Color.Magenta;
|
||||
var КоричневыйЦвет := RGB($96,$4B,$00);
|
||||
var СерыйЦвет := Color.Gray;
|
||||
var БелыйЦвет := Color.White;
|
||||
var ЧерныйЦвет := Color.Black;
|
||||
|
||||
//----------------
|
||||
|
||||
procedure Пусто := x += 1;
|
||||
|
||||
procedure НовыйРяд := (x, y) := (1, y + 1);
|
||||
|
||||
procedure Серый := D(СерыйЦвет);
|
||||
procedure СерыйЦКруг1 := Ц1(СерыйЦвет);
|
||||
procedure СерыйЦКруг2 := Ц2(СерыйЦвет);
|
||||
procedure СерыйЦКруг3 := Ц3(СерыйЦвет);
|
||||
procedure СерыйЦКруг4 := Ц4(СерыйЦвет);
|
||||
procedure СерыйТр1 := Тр1(СерыйЦвет);
|
||||
procedure СерыйТр2 := Тр2(СерыйЦвет);
|
||||
procedure СерыйТр3 := Тр3(СерыйЦвет);
|
||||
procedure СерыйТр4 := Тр4(СерыйЦвет);
|
||||
|
||||
procedure Оранжевый := D(ОранжевыйЦвет);
|
||||
procedure ОранжевыйЦКруг1 := Ц1(ОранжевыйЦвет);
|
||||
procedure ОранжевыйЦКруг2 := Ц2(ОранжевыйЦвет);
|
||||
procedure ОранжевыйЦКруг3 := Ц3(ОранжевыйЦвет);
|
||||
procedure ОранжевыйЦКруг4 := Ц4(ОранжевыйЦвет);
|
||||
procedure ОранжевыйТр1 := Тр1(ОранжевыйЦвет);
|
||||
procedure ОранжевыйТр2 := Тр2(ОранжевыйЦвет);
|
||||
procedure ОранжевыйТр3 := Тр3(ОранжевыйЦвет);
|
||||
procedure ОранжевыйТр4 := Тр4(ОранжевыйЦвет);
|
||||
|
||||
procedure Коричневый := D(КоричневыйЦвет);
|
||||
procedure КоричневыйЦКруг1 := Ц1(КоричневыйЦвет);
|
||||
procedure КоричневыйЦКруг2 := Ц2(КоричневыйЦвет);
|
||||
procedure КоричневыйЦКруг3 := Ц3(КоричневыйЦвет);
|
||||
procedure КоричневыйЦКруг4 := Ц4(КоричневыйЦвет);
|
||||
procedure КоричневыйТр1 := Тр1(КоричневыйЦвет);
|
||||
procedure КоричневыйТр2 := Тр2(КоричневыйЦвет);
|
||||
procedure КоричневыйТр3 := Тр3(КоричневыйЦвет);
|
||||
procedure КоричневыйТр4 := Тр4(КоричневыйЦвет);
|
||||
|
||||
procedure Белый := D(БелыйЦвет);
|
||||
procedure БелыйЦКруг1 := Ц1(БелыйЦвет);
|
||||
procedure БелыйЦКруг2 := Ц2(БелыйЦвет);
|
||||
procedure БелыйЦКруг3 := Ц3(БелыйЦвет);
|
||||
procedure БелыйЦКруг4 := Ц4(БелыйЦвет);
|
||||
procedure БелыйТр1 := Тр1(БелыйЦвет);
|
||||
procedure БелыйТр2 := Тр2(БелыйЦвет);
|
||||
procedure БелыйТр3 := Тр3(БелыйЦвет);
|
||||
procedure БелыйТр4 := Тр4(БелыйЦвет);
|
||||
|
||||
procedure Синий := D(СинийЦвет);
|
||||
procedure СинийЦКруг1 := Ц1(СинийЦвет);
|
||||
procedure СинийЦКруг2 := Ц2(СинийЦвет);
|
||||
procedure СинийЦКруг3 := Ц3(СинийЦвет);
|
||||
procedure СинийЦКруг4 := Ц4(СинийЦвет);
|
||||
procedure СинийТр1 := Тр1(СинийЦвет);
|
||||
procedure СинийТр2 := Тр2(СинийЦвет);
|
||||
procedure СинийТр3 := Тр3(СинийЦвет);
|
||||
procedure СинийТр4 := Тр4(СинийЦвет);
|
||||
|
||||
procedure Фиолетовый := D(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйЦКруг1 := Ц1(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйЦКруг2 := Ц2(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйЦКруг3 := Ц3(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйЦКруг4 := Ц4(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйТр1 := Тр1(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйТр2 := Тр2(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйТр3 := Тр3(ФиолетовыйЦвет);
|
||||
procedure ФиолетовыйТр4 := Тр4(ФиолетовыйЦвет);
|
||||
|
||||
procedure Красный := D(КрасныйЦвет);
|
||||
procedure КрасныйЦКруг1 := Ц1(КрасныйЦвет);
|
||||
procedure КрасныйЦКруг2 := Ц2(КрасныйЦвет);
|
||||
procedure КрасныйЦКруг3 := Ц3(КрасныйЦвет);
|
||||
procedure КрасныйЦКруг4 := Ц4(КрасныйЦвет);
|
||||
procedure КрасныйТр1 := Тр1(КрасныйЦвет);
|
||||
procedure КрасныйТр2 := Тр2(КрасныйЦвет);
|
||||
procedure КрасныйТр3 := Тр3(КрасныйЦвет);
|
||||
procedure КрасныйТр4 := Тр4(КрасныйЦвет);
|
||||
|
||||
procedure Черный := D(ЧерныйЦвет);
|
||||
procedure Чёрный := D(ЧерныйЦвет);
|
||||
procedure ЧерныйТр1 := Тр1(ЧерныйЦвет);
|
||||
procedure ЧерныйТр2 := Тр2(ЧерныйЦвет);
|
||||
procedure ЧерныйТр3 := Тр3(ЧерныйЦвет);
|
||||
procedure ЧерныйТр4 := Тр4(ЧерныйЦвет);
|
||||
procedure ЧерныйЦКруг1 := Ц1(ЧерныйЦвет);
|
||||
procedure ЧерныйЦКруг2 := Ц2(ЧерныйЦвет);
|
||||
procedure ЧерныйЦКруг3 := Ц3(ЧерныйЦвет);
|
||||
procedure ЧерныйЦКруг4 := Ц4(ЧерныйЦвет);
|
||||
procedure ЧёрныйЦКруг1 := Ц1(ЧерныйЦвет);
|
||||
procedure ЧёрныйЦКруг2 := Ц2(ЧерныйЦвет);
|
||||
procedure ЧёрныйЦКруг3 := Ц3(ЧерныйЦвет);
|
||||
procedure ЧёрныйЦКруг4 := Ц4(ЧерныйЦвет);
|
||||
|
||||
procedure Зелёный := D(ЗеленыйЦвет);
|
||||
procedure ЗелёныйЦКруг1 := Ц1(ЗеленыйЦвет);
|
||||
procedure ЗелёныйЦКруг2 := Ц2(ЗеленыйЦвет);
|
||||
procedure ЗелёныйЦКруг3 := Ц3(ЗеленыйЦвет);
|
||||
procedure ЗелёныйЦКруг4 := Ц4(ЗеленыйЦвет);
|
||||
procedure ЗелёныйТр1 := Тр1(ЗеленыйЦвет);
|
||||
procedure ЗелёныйТр2 := Тр2(ЗеленыйЦвет);
|
||||
procedure ЗелёныйТр3 := Тр3(ЗеленыйЦвет);
|
||||
procedure ЗелёныйТр4 := Тр4(ЗеленыйЦвет);
|
||||
|
||||
procedure Голубой := D(ГолубойЦвет);
|
||||
procedure ГолубойЦКруг1 := Ц1(ГолубойЦвет);
|
||||
procedure ГолубойЦКруг2 := Ц2(ГолубойЦвет);
|
||||
procedure ГолубойЦКруг3 := Ц3(ГолубойЦвет);
|
||||
procedure ГолубойЦКруг4 := Ц4(ГолубойЦвет);
|
||||
procedure ГолубойТр1 := Тр1(ГолубойЦвет);
|
||||
procedure ГолубойТр2 := Тр2(ГолубойЦвет);
|
||||
procedure ГолубойТр3 := Тр3(ГолубойЦвет);
|
||||
procedure ГолубойТр4 := Тр4(ГолубойЦвет);
|
||||
|
||||
procedure Розовый := D(РозовыйЦвет);
|
||||
procedure РозовыйЦКруг1 := Ц1(РозовыйЦвет);
|
||||
procedure РозовыйЦКруг2 := Ц2(РозовыйЦвет);
|
||||
procedure РозовыйЦКруг3 := Ц3(РозовыйЦвет);
|
||||
procedure РозовыйЦКруг4 := Ц4(РозовыйЦвет);
|
||||
procedure РозовыйТр1 := Тр1(РозовыйЦвет);
|
||||
procedure РозовыйТр2 := Тр2(РозовыйЦвет);
|
||||
procedure РозовыйТр3 := Тр3(РозовыйЦвет);
|
||||
procedure РозовыйТр4 := Тр4(РозовыйЦвет);
|
||||
|
||||
procedure Желтый := D(ЖелтыйЦвет);
|
||||
procedure Жёлтый := D(ЖелтыйЦвет);
|
||||
procedure ЖелтыйЦКруг1 := Ц1(ЖелтыйЦвет);
|
||||
procedure ЖелтыйЦКруг2 := Ц2(ЖелтыйЦвет);
|
||||
procedure ЖелтыйЦКруг3 := Ц3(ЖелтыйЦвет);
|
||||
procedure ЖелтыйЦКруг4 := Ц4(ЖелтыйЦвет);
|
||||
procedure ЖелтыйТр1 := Тр1(ЖелтыйЦвет);
|
||||
procedure ЖелтыйТр2 := Тр2(ЖелтыйЦвет);
|
||||
procedure ЖелтыйТр3 := Тр3(ЖелтыйЦвет);
|
||||
procedure ЖелтыйТр4 := Тр4(ЖелтыйЦвет);
|
||||
|
||||
procedure п := пусто;
|
||||
|
||||
procedure к := красный;
|
||||
procedure кк1 := красныйцкруг1;
|
||||
procedure кк2 := красныйцкруг2;
|
||||
procedure кк3 := красныйцкруг3;
|
||||
procedure кк4 := красныйцкруг4;
|
||||
procedure кт1 := красныйТр1;
|
||||
procedure кт2 := красныйТр2;
|
||||
procedure кт3 := красныйТр3;
|
||||
procedure кт4 := красныйТр4;
|
||||
|
||||
procedure ко := коричневый;
|
||||
procedure кок1 := коричневыйцкруг1;
|
||||
procedure кок2 := коричневыйцкруг2;
|
||||
procedure кок3 := коричневыйцкруг3;
|
||||
procedure кок4 := коричневыйцкруг4;
|
||||
procedure кот1 := коричневыйТр1;
|
||||
procedure кот2 := коричневыйТр2;
|
||||
procedure кот3 := коричневыйТр3;
|
||||
procedure кот4 := коричневыйТр4;
|
||||
|
||||
procedure ж := желтый;
|
||||
procedure жк1 := желтыйцкруг1;
|
||||
procedure жк2 := желтыйцкруг2;
|
||||
procedure жк3 := желтыйцкруг3;
|
||||
procedure жк4 := желтыйцкруг4;
|
||||
procedure жт1 := желтыйТр1;
|
||||
procedure жт2 := желтыйТр2;
|
||||
procedure жт3 := желтыйТр3;
|
||||
procedure жт4 := желтыйТр4;
|
||||
|
||||
procedure г := голубой;
|
||||
procedure гк1 := Голубойцкруг1;
|
||||
procedure гк2 := Голубойцкруг2;
|
||||
procedure гк3 := Голубойцкруг3;
|
||||
procedure гк4 := Голубойцкруг4;
|
||||
procedure гт1 := ГолубойТр1;
|
||||
procedure гт2 := ГолубойТр2;
|
||||
procedure гт3 := ГолубойТр3;
|
||||
procedure гт4 := ГолубойТр4;
|
||||
|
||||
procedure ч := черный;
|
||||
procedure Чк1 := ЧЕРНыйцкруг1;
|
||||
procedure Чк2 := ЧЕРНыйцкруг2;
|
||||
procedure Чк3 := ЧЕРНыйцкруг3;
|
||||
procedure Чк4 := ЧЕРНыйцкруг4;
|
||||
procedure Чт1 := ЧЕРНыйТр1;
|
||||
procedure Чт2 := ЧЕРНыйТр2;
|
||||
procedure Чт3 := ЧЕРНыйТр3;
|
||||
procedure Чт4 := ЧЕРНыйТр4;
|
||||
|
||||
procedure б := белый;
|
||||
procedure бт1 := белыйТр1;
|
||||
procedure бт2 := белыйТр2;
|
||||
procedure бт3 := белыйТр3;
|
||||
procedure бт4 := белыйТр4;
|
||||
procedure Бк1 := белыйцкруг1;
|
||||
procedure Бк2 := белыйцкруг2;
|
||||
procedure Бк3 := белыйцкруг3;
|
||||
procedure Бк4 := белыйцкруг4;
|
||||
|
||||
procedure з := зелёный;
|
||||
procedure зт1 := зелёныйТр1;
|
||||
procedure зт2 := зелёныйТр2;
|
||||
procedure зт3 := зелёныйТр3;
|
||||
procedure зт4 := зелёныйТр4;
|
||||
procedure зк1 := зелёныйцкруг1;
|
||||
procedure зк2 := зелёныйцкруг2;
|
||||
procedure зк3 := зелёныйцкруг3;
|
||||
procedure зк4 := зелёныйцкруг4;
|
||||
|
||||
procedure с := синий;
|
||||
procedure ст1 := синийТр1;
|
||||
procedure ст2 := синийТр2;
|
||||
procedure ст3 := синийТр3;
|
||||
procedure ст4 := синийТр4;
|
||||
procedure ск1 := синийцкруг1;
|
||||
procedure ск2 := синийцкруг2;
|
||||
procedure ск3 := синийцкруг3;
|
||||
procedure ск4 := синийцкруг4;
|
||||
|
||||
procedure се := серый;
|
||||
procedure сет1 := серыйТр1;
|
||||
procedure сет2 := серыйТр2;
|
||||
procedure сет3 := серыйТр3;
|
||||
procedure сет4 := серыйТр4;
|
||||
procedure сек1 := серыйцкруг1;
|
||||
procedure сек2 := серыйцкруг2;
|
||||
procedure сек3 := серыйцкруг3;
|
||||
procedure сек4 := серыйцкруг4;
|
||||
|
||||
procedure о := оранжевый;
|
||||
procedure от1 := оранжевыйТр1;
|
||||
procedure от2 := оранжевыйТр2;
|
||||
procedure от3 := оранжевыйТр3;
|
||||
procedure от4 := оранжевыйТр4;
|
||||
procedure ок1 := оранжевыйцкруг1;
|
||||
procedure ок2 := оранжевыйцкруг2;
|
||||
procedure ок3 := оранжевыйцкруг3;
|
||||
procedure ок4 := оранжевыйцкруг4;
|
||||
|
||||
procedure Р := розовый;
|
||||
procedure Рт1 := розовыйТр1;
|
||||
procedure Рт2 := розовыйТр2;
|
||||
procedure Рт3 := розовыйТр3;
|
||||
procedure Рт4 := розовыйТр4;
|
||||
procedure Рк1 := розовыйцкруг1;
|
||||
procedure Рк2 := розовыйцкруг2;
|
||||
procedure Рк3 := розовыйцкруг3;
|
||||
procedure Рк4 := розовыйцкруг4;
|
||||
|
||||
procedure ф := фиолетовый;
|
||||
procedure фт1 := фиолетовыйТр1;
|
||||
procedure фт2 := фиолетовыйТр2;
|
||||
procedure фт3 := фиолетовыйТр3;
|
||||
procedure фт4 := фиолетовыйТр4;
|
||||
procedure фк1 := фиолетовыйцкруг1;
|
||||
procedure фк2 := фиолетовыйцкруг2;
|
||||
procedure фк3 := фиолетовыйцкруг3;
|
||||
procedure фк4 := фиолетовыйцкруг4;
|
||||
|
||||
procedure Run(p: procedure) := p;
|
||||
|
||||
procedure НарисоватьРяд(p: procedure) := Run(p + НовыйРяд);
|
||||
procedure Ряд(p: procedure) := (p + НовыйРяд);
|
||||
|
||||
begin
|
||||
Window.SetSize(1024,768);
|
||||
//SetStandardCoords(1 / 1.25, 0.5, 0.5);
|
||||
//pen.Width := 1 / 1.25;
|
||||
end.
|
||||
Loading…
Reference in a new issue