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

> ВНИМАНИЕ!

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

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


Новичок
*

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

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


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


Фанат Delphi
**

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

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


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


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


Новичок
*

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

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


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

Спасибо))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Egor Vladimirovich
сообщение 24.04.2007 10:24
Сообщение #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 
 К началу страницы 
+ Ответить 
Egor Vladimirovich
сообщение 24.04.2007 12:14
Сообщение #5


Новичок
*

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

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


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

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

 

- Текстовая версия 17.07.2025 23:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"