IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Графика в Дельфи, 2D-график
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: Егор

Репутация: -  0  +


Здраствуйте. Подскажите что нибудь или помогите советами с такой задачкой !Написать программу построения 2D-графика функции, заданной параметрически.! Даже не знаю с чего начать.Может кто даст ссылки интересные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Кривые Лиссажу


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: Егор

Репутация: -  0  +


Цитата(NTL @ 22.03.2007 15:41) *

Спасибо))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: Егор

Репутация: -  0  +


Цитата(Egor Vladimirovich @ 22.03.2007 18:29) *

Спасибо))

Помогите усовершенствовать интерфейс программы с возможностью позволяющий изменять масштаб, сдвигать окно на бумаге. Также должна быть предусмотрена возможность выводить координаты курсора мыши.
Предлагайте советы.Буду очень благодарен.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Spin;

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
cd1: TColorDialog;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
procedure SpinEdit4Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Wx,Wy,W1,W2: real;
x1,y1,x2,y2:real;
x,y,t,h:real;
I1,J1,I2,J2,n,j:integer;
s:string;
implementation

{$R *.dfm}
{------------------------------------------------------------------------------}
function Fx(t:real):real;
begin
Fx:=Sin(Wx*t+W1)
end;
{------------------------------------------------------------------------------}
function Fy(t:real):real;
begin
Fy:=Sin(Wy*t+W2)
end;
{------------------------------------------------------------------------------}
function II(x:real):integer;
begin
II:=I1+Trunc((x-x1)*(I2-I1)/(x2-x1))
end;
{------------------------------------------------------------------------------}
function JJ(x:real):integer;
begin
JJ:=J1+Trunc((y-y1)*(J2-J1)/(y2-y1))
end;
{------------------------------------------------------------------------------}
procedure DrawGraphic(Wx:real;Wy:real;W1:real;W2:real);
var i:integer;
t:real;
begin
with Form1.Image1,Form1.Image1.Canvas do
begin
Rectangle(0,0,Width,Height);
MoveTo(II(x1),JJ(0));LineTo(II(x2),JJ(0));
MoveTo(II(0),JJ(y1));LineTo(II(0),JJ(Y2));

for i:=trunc(x1) to trunc(x2) do
begin
//LineTo(II(i),JJ(0)); {cena deleniya}
str(i,s);
TextOut(II(i-0.05),JJ(0.1),s)
end;
for j:=trunc(y1) to trunc(y2) do
begin
if j=0 then
else
begin
str(-j,s);
//PutPixel(II(0),JJ(j),15);
TextOut(II(0.1),JJ(j),s)
end
end;
TextOut(II(x2-0.03),JJ(0.1),'x');
TextOut(II(-0.2),JJ(y1-0.18),'y');

t:=0;x:=Fx(t);y:=Fy(t);
MoveTo(II(x),JJ(y));
for i:=1 to 5*n do
begin
t:=t+h;x:=Fx(t);
y:=Fy(t);
LineTo(II(x),JJ(y))
end;
end

end;
{------------------------------------------------------------------------------}
procedure TForm1.FormCreate(Sender: TObject);
begin
n:=200;
x1:=-1.2; y1:=-1.2;
x2:=1.2;y2:=1.2;

I1:=0;J1:=0;
I2:=Image1.Width;J2:=Image1.Height;

h:=2*Pi/n;
Wx:=2; Wy:=4;W1:=6;W2:=3;
DrawGraphic(Wx,Wy,w1,w2);
end;
{------------------------------------------------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
begin
if Cd1.Execute=true then
Form1.Image1.Canvas.Pen.Color:=cd1.Color;
DrawGraphic(Wx,wy,w1,w2);
end;
{------------------------------------------------------------------------------}

procedure TForm1.Button2Click(Sender: TObject);
begin
if Cd1.Execute=true then
Form1.Image1.Canvas.Brush.Color:=cd1.Color;
DrawGraphic(Wx,wy,w1,w2);
end;
{------------------------------------------------------------------------------}
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Wx:=SpinEdit1.Value;
DrawGraphic(Wx,wy,w1,w2);
end;
{------------------------------------------------------------------------------}
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
Wy:=SpinEdit2.Value;
DrawGraphic(Wx,wy,w1,w2)
end;
{------------------------------------------------------------------------------}
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
W1:=SpinEdit3.Value;
DrawGraphic(Wx,wy,w1,w2)
end;
{------------------------------------------------------------------------------}
procedure TForm1.SpinEdit4Change(Sender: TObject);
begin
W2:=SpinEdit4.Value;
DrawGraphic(Wx,wy,w1,w2)
end;
{------------------------------------------------------------------------------}

end.


 ! 
Теги ! klem4

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: Егор

Репутация: -  0  +


klem4 сорри спешил.
Масштаб и координаты мыши сделал.Осталось сделать движение окна по бумаге.(image1)
Есть какие нибудь соображения?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 18:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name