![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Привет всем!
Помогите перевести код с Паскаль на Делфи Код:
Uses crt, graph;
Const
x: Real = 3.051522;
y: Real = 1.582542;
z: Real = 15.62388;
dt = 0.0001;
a = 5;
b = 15;
c = 1;
Var
gd, gm: Integer;
x1, y1, z1: Real;
Begin
gd:=Detect;
InitGraph(gd, gm, 'c:\bp\bgi');
While not KeyPressed Do Begin
x1 := x + a*(-x+y)*dt;
y1 := y + (b*x-y-z*x)*dt;
z1 := z + (-c*z+x*y)*dt;
x := x1;
y := y1;
z := z1;
PutPixel(Round(19.3*(y - x*0.292893) + 320),
Round(-11*(z + x*0.292893) + 392), 9);
End;
CloseGraph;
ReadKey;
End.Код:
PutPixel(Round(19.3*(y - x*0.292893) + 320),
Round(-11*(z + x*0.292893) + 392), 9) |
|
#2
|
||||
|
||||
|
Код:
Canvas.Pixel[Round(19.3*(y - x*0.292893) + 320),
Round(-11*(z + x*0.292893) + 392] := 9; |
|
#3
|
|||
|
|||
|
Это все так, только у меня выбивает ошибку
Код:
x := x1;
y := y1;
z := z1;left side cannot be assigned to delphi |
|
#4
|
||||
|
||||
|
Константам нельзя присваивать, измени:
Код:
var x : Single = 3.051522; y : Single = 1.582542; z : Single = 15.62388; dt = 0.0001; a = 5; b = 15; c = 1; |
|
#5
|
|||
|
|||
|
но ведь в паскале работает?
Последний раз редактировалось Andrey770, 04.03.2012 в 00:10. |
|
#6
|
|||
|
|||
|
Код:
Program Lorenz;
Uses CRT, Graph;
Const
x: Real = 3.051522;
y: Real = 1.582542;
z: Real = 15.62388;
dt = 0.0001;
a = 5;
b = 15;
c = 1;
Var
gd, gm: Integer;
x1, y1, z1: Real;
Begin
gd:=Detect;
InitGraph(gd, gm, 'c:\bp\bgi');
While not KeyPressed Do Begin
x1 := x + a*(-x+y)*dt;
y1 := y + (b*x-y-z*x)*dt;
z1 := z + (-c*z+x*y)*dt;
x := x1;
y := y1;
z := z1;
PutPixel(Round(19.3*(y - x*0.292893) + 320),
Round(-11*(z + x*0.292893) + 392), 9);
End;
CloseGraph;
ReadKey;
End. |
|
#7
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
procedure FormPaint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
x : Single = 3.051522;
y : Single = 1.582542;
z : Single = 15.62388;
dt : Single = 0.0001;
a : Integer = 5;
b : Integer = 15;
c : Integer = 1;
x1, y1, z1 : Single;
procedure TForm1.FormPaint(Sender: TObject);
begin
x1 := x + a * (-x + y) * dt;
y1 := y + (b * x - y - z * x) * dt;
z1 := z + (-c * z + x * y) * dt;
x := x1;
y := y1;
z := z1;
Image1.Canvas.Pixels[Round(19.3 * (y - x * 0.292893) + 320),
Round(-11 * (z + x * 0.292893) + 392)] := 9;
end;
end. |
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Andrey770 (04.03.2012)
| ||
|
#8
|
|||
|
|||
|
Спасибо огромное
Только оно рисует сразу после того как запускаешь программу, как будто оно в FormCreate, я делал через Button ничего не помогло, тоесть не рисовало а только Image появлялось и все. Делал через Events для Button всеравно рисует сразу после запуска программы. |
|
#9
|
||||
|
||||
|
В таком случае перенесите код из FormPaint в таймер, который будет запускаться при нажатии на кнопку.
|