Для работы с приложением Delphi 3d графика скачайте архив ниже по ссылке.
Затем неободимо его разархивировать и установить компонент Graph3D на палитру компонентов на вкладку New для работы с приложением Delphi 3d графика. Данный компонент находится в папке по адресу: iGraphics\GraphS. Сам процесс установки компонента можно посмотреть пройдя по ссылке. После установки компонента Delphi 3d графика на палитре New появится новый значёк в виде красного и зелёного кубика(см. рис.).


Delphi 3d графика


Далее заходим в папку 3D System и запускаем файл UseTGraph3D.dpr и мы видем следующую картину см. рис.


Delphi 3d графика


Следующий наш шаг – это добавление компонентов на форму для приложения Delphi 3d графика:

  • Добавляем компонент Graph3D;
  • Компонет СоlorDialog;
  • Компонет Timer;
  • Компонет GroupBox1(верхняя правя часть формы) – где соответственно размещаем компонет ListBox, ComboBox, 2 компонета Panel для выбора цвета, 3 кнопки SpeedButton, 3 компонета Label;
  • Компонет GroupBox2 - где соответственно размещаем 3 кнопки SpeedButton, 2 компонета CheckBox, 3 компонета Panel для выбора цвета, 3 компонета Label.

И так все необходимые компоненты добавлены. Далее прописываем свойство Caption согласно рисунка(см. выше).
Ниже прилагаю исходный код приложения Delphi 3d графика:
unit FormGraph3D;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Graph3D, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Panel2: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
Label4: TLabel;
ComboStyle: TComboBox;
ListShape: TListBox;
butShapeColor1: TPanel;
GroupBox2: TGroupBox;
Label2: TLabel;
Label3: TLabel;
chkAxis: TCheckBox;
chkWireframe: TCheckBox;
butAxisColor1: TPanel;
butBackColor: TPanel;
butAdd: TSpeedButton;
butRemove: TSpeedButton;
Label6: TLabel;
butSHapeColor2: TPanel;
Label5: TLabel;
butAxisColor2: TPanel;
butZoomIn: TSpeedButton;
butZoomOut: TSpeedButton;
ColorDialog: TColorDialog;
G: TGraph3D;
butAbout: TSpeedButton;
Timer: TTimer;
butEdit: TSpeedButton;
procedure FormPaint(Sender: TObject);
procedure TimerTimer(Sender: TObject);
procedure butZoomInClick(Sender: TObject);
procedure butZoomOutClick(Sender: TObject);
procedure chkAxisClick(Sender: TObject);
procedure butBackColorClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure butAddClick(Sender: TObject);
procedure butRemoveClick(Sender: TObject);
procedure butShapeColor1Click(Sender: TObject);
procedure butSHapeColor2Click(Sender: TObject);
procedure chkWireframeClick(Sender: TObject);
procedure butAxisColor1Click(Sender: TObject);
procedure butAxisColor2Click(Sender: TObject);
procedure ListShapeDblClick(Sender: TObject);
procedure butAboutClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
begin
Timer.Enabled:=true;
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
Timer.Enabled:=false;
G.Render();
end;

procedure TForm1.butZoomInClick(Sender: TObject);
begin
G.ZoomIn;
end;

procedure TForm1.butZoomOutClick(Sender: TObject);
begin
G.ZoomOut;
end;

procedure TForm1.chkAxisClick(Sender: TObject);
begin
G.Axis:=chkAxis.Checked;
G.Render();
end;

procedure TForm1.butBackColorClick(Sender: TObject);
begin
if ColorDialog.Execute then begin
butBackColor.Color:=ColorDialog.Color;
G.ColorBackground:=ColorDialog.Color;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
chkAxis.Checked:=G.Axis;
butAxisColor1.Color:=G.ColorAxis1;
butAxisColor2.Color:=G.ColorAxis2;
butBackColor.Color:=G.ColorBackground;
ComboStyle.ItemIndex:=7;
end;

procedure TForm1.butAddClick(Sender: TObject);
var s:string;
begin
case ComboStyle.ItemIndex of
0:s:='Cone(0,0,2,0,0,0,1)';
1:s:='Cube(-1,-1,-1,1,1,1)';
2:s:='Cylinder(0,0,0,1,1,1)';
3:s:='Line(-2,-2,-2,2,2,2)';
4:s:='Plane(-1,-1,1,1,-1,1,1,1,-1,-1,1,-1)';
5:s:='Sphere(0,0,0,1)';
6:s:='Triangle(0,0,0,2,0,0,2,2,0)';
7:s:='ZYX(X*X+Y*Y,-1,-1,1,1)';
end;
if InputQuery('Выражение','Тип выражения объекта',s)then
begin
ListShape.Items.Add(s);
G.Add(s,butShapeColor1.Color,butShapeColor2.Color);
G.Render();
end;
end;

procedure TForm1.butRemoveClick(Sender: TObject);
var i:integer;
begin
i:=0;
while i<ListShape.Items.Count do
if ListShape.Selected[i]then begin
ListShape.Items.Delete(i);
G.Remove(i);
end
else inc(i);
G.Render();
end;

procedure TForm1.butShapeColor1Click(Sender: TObject);
begin
if ColorDialog.Execute then butShapeColor1.Color:=ColorDialog.Color;
end;

procedure TForm1.butSHapeColor2Click(Sender: TObject);
begin
if ColorDialog.Execute then butShapeColor2.Color:=ColorDialog.Color;
end;

procedure TForm1.chkWireframeClick(Sender: TObject);
begin
G.Wireframe:=chkWireframe.Checked;
G.Render();
end;

procedure TForm1.butAxisColor1Click(Sender: TObject);
begin
if ColorDialog.Execute then begin
butAxisColor1.Color:=ColorDialog.Color;
G.ColorAxis1:=ColorDialog.Color;
end;
end;

procedure TForm1.butAxisColor2Click(Sender: TObject);
begin
if ColorDialog.Execute then begin
butAxisColor2.Color:=ColorDialog.Color;
G.ColorAxis2:=ColorDialog.Color;
end;
end;

procedure TForm1.ListShapeDblClick(Sender: TObject);
var i : integer;
s : string;
begin
for i:=0 to ListShape.Count-1 do
if ListShape.Selected[i] then break;
if (i >= ListShape.Count) then exit;
s := InputBox('Редактирование','Измените выражение для объекта', ListShape.Items[i]);
ListShape.items[i] := s;
G.Replace(i, s);
G.Render();
end;

procedure TForm1.butAboutClick(Sender: TObject);
var s : string;
begin
s := 'Программа предназначена для построения графических объектов в трехмерном поле' +
chr(13) +'Автор программы: Лямкин Илья';
MessageDlg(s ,mtInformation, [mbok],0);
end;

end.
Посмотрим что может данное приложение Delphi 3d графика.
Вибирая тип обЪекта и добавляя его мы можем получать различные фигуры см. рис ниже.

 


Delphi 3d графика

Delphi 3d графика

Delphi 3d графика

Скачать компонент Graph3D и приложение Delphi 3d графика:

 

Добавить комментарий


Защитный код
Обновить