
На pascal можно так:
Объяснение:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Windows;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,i:integer;
begin
x:=0; y:=0;
for i:=1 to 500 do
begin
x:=random(x+i);
y:=random(y+i);
if x>600 then x:=random(x-i);
if y>800 then y:=random(y-i);
canvas.Pen.Color:=RGB(i*5,128*i,-128*(i+1));
canvas.Pen.Width:=2;
canvas.LineTo(x,y);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.close;
end;
end.
графические примитивы это заранее определенные элементы, которые можно поместить в чертеж при одной команды. каждый графический примитив формируется на основании описания объекта. примитивы можно классифицировать:
односложные и составные; плоские и объемные (3d)большинство команд обрисовки базовых примитивов собраны в подменю рисовать. каждый примитив формируется своей командой, чаще всего по имени с примитивом. для некоторых примитив пользователю предлагается несколько способов построения одного и того же примитива по различным исходным данным, например окружность можно построить по центру и радиусу, по центру и диаметру, по трем точкам на плоскости и т.д. каждый примитив обладает рядом свойств (например, принадлежность слою, цвет, видимость, тип линии и т.некоторые команды требуют ввода дополнительных опций в командную строку.
источник :